[Abandonné] Cacti : récupérer les températures d'une machine Windows

Bonjour,

J’ai actuellement un conteneur qui exécute cacti et je lui fais tracer de nombreux graphiques.
Dans mon parc, j’ai une machine sous Windows pour laquelle j’ai dû configurer de façon particulière les récupérations de données : j’ai un modèle spécifique que l’utilisation du CPU et la RAM est considérée comme un espace de stockage comme le disque dur.
J’aimerai également récupérer les températures, mais je ne trouve pas la donnée dans le retour du service SNMP de la machine, alors que Windows a bien la donnée (au moins pour le GPU) car elle est affichée dans le gestionnaire de tâches.

Lors de mes recherches, j’ai trouvé comment installer un logiciel qui permet d’afficher les valeurs des capteurs (vitesse des ventillateurs, températures, tensions) à l’écran, mais pas comment les récupérer par SNMP.
Est-ce que quelqu’un sait ?

Bonjour,

Peux-tu interroger directement WMI?
sinon tu vas être obligé d’utiliser un batch du type

@echo off
for /f "skip=1 tokens=2 delims==" %%A in ('wmic /namespace:\\root\wmi PATH MSAcpi_ThermalZoneTemperature get CurrentTemperature /value') do set /a "HunDegCel=(%%~A*10)-27315"
echo %HunDegCel:~0,-2%.%HunDegCel:~-2% Degrees Celsius

ou bien

function Get-Temperature {
    $t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"

    $currentTempKelvin = $t.CurrentTemperature / 10
    $currentTempCelsius = $currentTempKelvin - 273.15

    $currentTempFahrenheit = (9/5) * $currentTempCelsius + 32

    return $currentTempCelsius.ToString() + " C : " + $currentTempFahrenheit.ToString() + " F : " + $currentTempKelvin + "K"  
}

# Save in your c:\users\yourName\Documents\WindowsPowerShell\modules\ directory
# in sub directory get-temperature as get-temperature.psm1
# You **must** run as Administrator.
# It will only work if your system & BIOS support it. If it doesn't work, I can't help you.

# Just type get-temperature in PowerShell and it will spit back the temp in Celsius, Farenheit and Kelvin.

Ça me retourne ça :

Noeud - SINGHARA
ERREUR :
Description = Non pris en charge
~0,-2HunDegCel:~-2 Degrees Celsius

Je pense que la réponse est non…

J’ai tenté, mais je ne comprends pas les erreurs de PowerShell :

Get-WmiObject : Non pris en charge
Au caractère C:\Users\Admin\Documents\WindowsPowerShell\Modules\get-temperature\get-temperature.psm1:2 : 10
+     $t = Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root ...
+          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation : (:) [Get-WmiObject], ManagementException
    + FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand

-273,15 C : -459,67 F : 0K

Il y a deux possibilités: le WMI n’est pas activé sur tes machines (quel Windows est installé dessus?)
Il faut une élévation admin pour le script (malheureusement).

Chez moi:

PS C:\Windows\system32> Get-WmiObject MSAcpi_ThermalZoneTemperature -Namespace "root/wmi"


__GENUS              : 2
__CLASS              : MSAcpi_ThermalZoneTemperature
__SUPERCLASS         : MSAcpi
__DYNASTY            : MSAcpi
__RELPATH            : MSAcpi_ThermalZoneTemperature.InstanceName="ACPI\\ThermalZone\\TZ10_0"
__PROPERTY_COUNT     : 12
__DERIVATION         : {MSAcpi}
__SERVER             : ZARGOSPC
__NAMESPACE          : root\wmi
__PATH               : \\MONPC\root\wmi:MSAcpi_ThermalZoneTemperature.InstanceName="ACPI\\ThermalZone\\TZ10_0"
Active               : True
ActiveTripPoint      : {0, 0, 0, 0...}
ActiveTripPointCount : 0
CriticalTripPoint    : 2940
CurrentTemperature   : 2900
InstanceName         : ACPI\ThermalZone\TZ10_0
PassiveTripPoint     : 2900
Reserved             : 0
SamplingPeriod       : 10
ThermalConstant1     : 0
ThermalConstant2     : 0
ThermalStamp         : 810442
PSComputerName       : MONPC

__GENUS              : 2
__CLASS              : MSAcpi_ThermalZoneTemperature
__SUPERCLASS         : MSAcpi
__DYNASTY            : MSAcpi
__RELPATH            : MSAcpi_ThermalZoneTemperature.InstanceName="ACPI\\ThermalZone\\PCT0_0"
__PROPERTY_COUNT     : 12
__DERIVATION         : {MSAcpi}
__SERVER             : MONPC
__NAMESPACE          : root\wmi
__PATH               : \\MONPC\root\wmi:MSAcpi_ThermalZoneTemperature.InstanceName="ACPI\\ThermalZone\\PCT0_0"
Active               : True
ActiveTripPoint      : {0, 0, 0, 0...}
ActiveTripPointCount : 0
CriticalTripPoint    : 2940
CurrentTemperature   : 2900
InstanceName         : ACPI\ThermalZone\PCT0_0
PassiveTripPoint     : 2900
Reserved             : 0
SamplingPeriod       : 10
ThermalConstant1     : 0
ThermalConstant2     : 0
ThermalStamp         : 810450
PSComputerName       : MONPC

ceci dit j’ai deux ThermalZone (TZ10_0 et PCT0_0) donc le script serait à adapter à cause de ça, car le calcul en Kelvin, Celsius et Fahrenheit ne marche pas sur une valeur en tableau.

En résultat, mon processeur est à 16,85 °C (ce qui est normal, j’ai un très gros ventirad :slight_smile: )

J’ai tout lancé en tant qu’administrateur.

C’est un Windows 10 version pas professionnelle.

Ah. moi c’est un Pro, j’avis oublié ce détail.

Tu as le service WMI d’activé?

J’ai une fonctionnalité « Fournisseur SNMP WMI » qui est installée, mais je ne le vois pas dans les services.
Je ne le vois pas non plus dans les fonctionnalités que je peux installer.

dans la console en administrateur essaye pour vour:

dism /online /enable-feature /featureName:SNMP /featureName:WMISnmpProvider

J’ai déjà activé le service SNMP et le fournisseur WMI pour SNMP. Je ne l’ai pas fait en ligne de commande, mais je l’ai fait quand j’ai ajouté cette machine à mon cacti.
Dans le doute, j’ai quand même lancé la commande et voici le résultat :


Outil Gestion et maintenance des images de déploiement
Version : 10.0.19041.844

Version de l’image : 10.0.19044.1741


Erreur : 0x800f080c

Le nom de fonctionnalité SNMP est inconnu.
Le nom de fonctionnalité WMISnmpProvider est inconnu.
Un nom de fonctionnalité Windows n’a pas été reconnu.
Utilisez l’option /Get-Features pour retrouver le nom de la fonctionnalité dans l’image et réessayez la commande.

Le fichier journal DISM se trouve à l’emplacement C:\Windows\Logs\DISM\dism.log

Si tu essaye ce qu’il y a là: Can’t install the SNMP and WMI SNMP Provider features - Windows Client | Microsoft Docs

Oui, mais ça, je l’ai déjà fait quand j’ai mis en place le SNMP pour cette machine et l’intégrer à cacti. Je peux voir le débit réseau, l’espace disque, la mémoire utilisée (à peu près) et l’utilisation du processeur, je souhaite ajouter la température du matériel.

Je n’ai plus cette machine, je n’ai donc plus ce besoin. J’ai donc abandonné mes recherches.