![Stacks Image 9724](files/stacks-image-2ec9da0-134x186.png)
lm_sensors est un logiciel libre pour les systèmes GNU/Linux fournissant des outils pour gérer la température, le voltage, la vitesse des ventilateurs, parfois un capteur d'humidité et/ou un capteur d'intrusion. Ce projet date d'avant 2000 et est constamment maintenu. Dans un premier temps, nous verrons l'utilisation du plugin Centreon centreon_generic_snmp.pl pour obtenir cette courbe. Puis nous utiliserons le plugin créé spécialement par l'équipe de Centreon.
1 Installation de lm-sensors
Ce package s'installe très facilement sur Debian. Actuellement, j'utilise Proxmox sur un Zotac équipé d'un valeureux Celeron 4 coeurs. Actuellement, les coeurs sont supervisés en terme de charge CPU.
![Stacks Image 37220](files/stacks-image-fa5e047-800x244.png)
Nous allons installer lm-sensors pour superviser la température des coeurs.
apt-get install lm-sensors
Ensuite, il faut découvrir l'architecture du PC en lançant la commande suivante
sensors-detect
Il suffira de lancer la commande suivante pour obtenir les informations de température
sensors
Voici le résultat après redémarrage du système
nct6779-isa-0a20
Adapter: ISA adapter
Vcore: +1.00 V (min = +0.00 V, max = +1.74 V)
in1: +0.00 V (min = +0.00 V, max = +0.00 V)
AVCC: +3.34 V (min = +2.98 V, max = +3.63 V)
+3.3V: +3.33 V (min = +2.98 V, max = +3.63 V)
in4: +0.00 V (min = +0.00 V, max = +0.00 V)
in5: +0.00 V (min = +0.00 V, max = +0.00 V)
in6: +0.00 V (min = +0.00 V, max = +0.00 V)
3VSB: +3.31 V (min = +2.98 V, max = +3.63 V)
Vbat: +3.17 V (min = +2.70 V, max = +3.63 V)
in9: +1.05 V (min = +0.00 V, max = +0.00 V) ALARM
in10: +0.15 V (min = +0.00 V, max = +0.00 V) ALARM
in11: +0.12 V (min = +0.00 V, max = +0.00 V) ALARM
in12: +1.15 V (min = +0.00 V, max = +0.00 V) ALARM
in13: +1.38 V (min = +0.00 V, max = +0.00 V) ALARM
in14: +0.16 V (min = +0.00 V, max = +0.00 V) ALARM
fan1: 0 RPM (min = 0 RPM)
fan2: 2812 RPM (min = 0 RPM)
fan3: 0 RPM (min = 0 RPM)
fan4: 0 RPM (min = 0 RPM)
fan5: 0 RPM (min = 0 RPM)
SYSTIN: +120.0°C (high = +0.0°C, hyst = +0.0°C) ALARM sensor = thermistor
CPUTIN: +33.5°C (high = +80.0°C, hyst = +75.0°C) sensor = thermistor
AUXTIN0: -128.0°C sensor = thermistor
AUXTIN1: +114.0°C sensor = thermistor
AUXTIN2: +112.0°C sensor = thermistor
AUXTIN3: +35.0°C sensor = thermal diode
PCH_CHIP_CPU_MAX_TEMP: +0.0°C
PCH_CHIP_TEMP: +0.0°C
PCH_CPU_TEMP: +0.0°C
PCH_MCH_TEMP: +0.0°C
intrusion0: OK
intrusion1: ALARM
beep_enable: disabled
acpitz-virtual-0
Adapter: Virtual device
temp1: +26.8°C (crit = +95.0°C)
coretemp-isa-0000
Adapter: ISA adapter
Core 0: +36.0°C (high = +90.0°C, crit = +90.0°C)
Core 1: +36.0°C (high = +90.0°C, crit = +90.0°C)
Core 2: +24.0°C (high = +90.0°C, crit = +90.0°C)
Core 3: +31.0°C (high = +90.0°C, crit = +90.0°C)
Interaction avec le SNMP
Gros avantage de Linux, le protocole SNMP étant installé, on peut récupérer automatiquement les informations en requêtant la MIB
Gros avantage de Linux, le protocole SNMP étant installé, on peut récupérer automatiquement les informations en requêtant la MIB
snmpwalk -v 2c -c public localhost 1.3.6.1.4.1.2021.13.16
iso.3.6.1.4.1.2021.13.16.2.1.1.21 = INTEGER: 21
iso.3.6.1.4.1.2021.13.16.2.1.1.22 = INTEGER: 22
iso.3.6.1.4.1.2021.13.16.2.1.1.23 = INTEGER: 23
iso.3.6.1.4.1.2021.13.16.2.1.1.24 = INTEGER: 24
iso.3.6.1.4.1.2021.13.16.2.1.1.25 = INTEGER: 25
iso.3.6.1.4.1.2021.13.16.2.1.1.26 = INTEGER: 26
iso.3.6.1.4.1.2021.13.16.2.1.1.27 = INTEGER: 27
iso.3.6.1.4.1.2021.13.16.2.1.1.28 = INTEGER: 28
iso.3.6.1.4.1.2021.13.16.2.1.1.29 = INTEGER: 29
iso.3.6.1.4.1.2021.13.16.2.1.1.30 = INTEGER: 30
iso.3.6.1.4.1.2021.13.16.2.1.1.31 = INTEGER: 31
iso.3.6.1.4.1.2021.13.16.2.1.1.32 = INTEGER: 32
iso.3.6.1.4.1.2021.13.16.2.1.1.33 = INTEGER: 33
iso.3.6.1.4.1.2021.13.16.2.1.1.34 = INTEGER: 34
iso.3.6.1.4.1.2021.13.16.2.1.1.35 = INTEGER: 35
iso.3.6.1.4.1.2021.13.16.2.1.2.21 = STRING: "SYSTIN"
iso.3.6.1.4.1.2021.13.16.2.1.2.22 = STRING: "CPUTIN"
iso.3.6.1.4.1.2021.13.16.2.1.2.23 = STRING: "AUXTIN0"
iso.3.6.1.4.1.2021.13.16.2.1.2.24 = STRING: "AUXTIN1"
iso.3.6.1.4.1.2021.13.16.2.1.2.25 = STRING: "AUXTIN2"
iso.3.6.1.4.1.2021.13.16.2.1.2.26 = STRING: "AUXTIN3"
iso.3.6.1.4.1.2021.13.16.2.1.2.27 = STRING: "PCH_CHIP_CPU_MAX_TEMP"
iso.3.6.1.4.1.2021.13.16.2.1.2.28 = STRING: "PCH_CHIP_TEMP"
iso.3.6.1.4.1.2021.13.16.2.1.2.29 = STRING: "PCH_CPU_TEMP"
iso.3.6.1.4.1.2021.13.16.2.1.2.30 = STRING: "PCH_MCH_TEMP"
iso.3.6.1.4.1.2021.13.16.2.1.2.31 = STRING: "temp1"
iso.3.6.1.4.1.2021.13.16.2.1.2.32 = STRING: "Core 0"
iso.3.6.1.4.1.2021.13.16.2.1.2.33 = STRING: "Core 1"
iso.3.6.1.4.1.2021.13.16.2.1.2.34 = STRING: "Core 2"
iso.3.6.1.4.1.2021.13.16.2.1.2.35 = STRING: "Core 3"
iso.3.6.1.4.1.2021.13.16.2.1.3.21 = Gauge32: 120000
iso.3.6.1.4.1.2021.13.16.2.1.3.22 = Gauge32: 33500
iso.3.6.1.4.1.2021.13.16.2.1.3.23 = Gauge32: 4294839296
iso.3.6.1.4.1.2021.13.16.2.1.3.24 = Gauge32: 114000
iso.3.6.1.4.1.2021.13.16.2.1.3.25 = Gauge32: 112000
iso.3.6.1.4.1.2021.13.16.2.1.3.26 = Gauge32: 35000
iso.3.6.1.4.1.2021.13.16.2.1.3.27 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.2.1.3.28 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.2.1.3.29 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.2.1.3.30 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.2.1.3.31 = Gauge32: 26800
iso.3.6.1.4.1.2021.13.16.2.1.3.32 = Gauge32: 36000
iso.3.6.1.4.1.2021.13.16.2.1.3.33 = Gauge32: 36000
iso.3.6.1.4.1.2021.13.16.2.1.3.34 = Gauge32: 29000
iso.3.6.1.4.1.2021.13.16.2.1.3.35 = Gauge32: 23000
iso.3.6.1.4.1.2021.13.16.3.1.1.16 = INTEGER: 16
iso.3.6.1.4.1.2021.13.16.3.1.1.17 = INTEGER: 17
iso.3.6.1.4.1.2021.13.16.3.1.1.18 = INTEGER: 18
iso.3.6.1.4.1.2021.13.16.3.1.1.19 = INTEGER: 19
iso.3.6.1.4.1.2021.13.16.3.1.1.20 = INTEGER: 20
iso.3.6.1.4.1.2021.13.16.3.1.2.16 = STRING: "fan1"
iso.3.6.1.4.1.2021.13.16.3.1.2.17 = STRING: "fan2"
iso.3.6.1.4.1.2021.13.16.3.1.2.18 = STRING: "fan3"
iso.3.6.1.4.1.2021.13.16.3.1.2.19 = STRING: "fan4"
iso.3.6.1.4.1.2021.13.16.3.1.2.20 = STRING: "fan5"
iso.3.6.1.4.1.2021.13.16.3.1.3.16 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.3.1.3.17 = Gauge32: 2812
iso.3.6.1.4.1.2021.13.16.3.1.3.18 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.3.1.3.19 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.3.1.3.20 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.4.1.1.1 = INTEGER: 1
iso.3.6.1.4.1.2021.13.16.4.1.1.2 = INTEGER: 2
iso.3.6.1.4.1.2021.13.16.4.1.1.3 = INTEGER: 3
iso.3.6.1.4.1.2021.13.16.4.1.1.4 = INTEGER: 4
iso.3.6.1.4.1.2021.13.16.4.1.1.5 = INTEGER: 5
iso.3.6.1.4.1.2021.13.16.4.1.1.6 = INTEGER: 6
iso.3.6.1.4.1.2021.13.16.4.1.1.7 = INTEGER: 7
iso.3.6.1.4.1.2021.13.16.4.1.1.8 = INTEGER: 8
iso.3.6.1.4.1.2021.13.16.4.1.1.9 = INTEGER: 9
iso.3.6.1.4.1.2021.13.16.4.1.1.10 = INTEGER: 10
iso.3.6.1.4.1.2021.13.16.4.1.1.11 = INTEGER: 11
iso.3.6.1.4.1.2021.13.16.4.1.1.12 = INTEGER: 12
iso.3.6.1.4.1.2021.13.16.4.1.1.13 = INTEGER: 13
iso.3.6.1.4.1.2021.13.16.4.1.1.14 = INTEGER: 14
iso.3.6.1.4.1.2021.13.16.4.1.1.15 = INTEGER: 15
iso.3.6.1.4.1.2021.13.16.4.1.2.1 = STRING: "Vcore"
iso.3.6.1.4.1.2021.13.16.4.1.2.2 = STRING: "in1"
iso.3.6.1.4.1.2021.13.16.4.1.2.3 = STRING: "AVCC"
iso.3.6.1.4.1.2021.13.16.4.1.2.4 = STRING: "+3.3V"
iso.3.6.1.4.1.2021.13.16.4.1.2.5 = STRING: "in4"
iso.3.6.1.4.1.2021.13.16.4.1.2.6 = STRING: "in5"
iso.3.6.1.4.1.2021.13.16.4.1.2.7 = STRING: "in6"
iso.3.6.1.4.1.2021.13.16.4.1.2.8 = STRING: "3VSB"
iso.3.6.1.4.1.2021.13.16.4.1.2.9 = STRING: "Vbat"
iso.3.6.1.4.1.2021.13.16.4.1.2.10 = STRING: "in9"
iso.3.6.1.4.1.2021.13.16.4.1.2.11 = STRING: "in10"
iso.3.6.1.4.1.2021.13.16.4.1.2.12 = STRING: "in11"
iso.3.6.1.4.1.2021.13.16.4.1.2.13 = STRING: "in12"
iso.3.6.1.4.1.2021.13.16.4.1.2.14 = STRING: "in13"
iso.3.6.1.4.1.2021.13.16.4.1.2.15 = STRING: "in14"
iso.3.6.1.4.1.2021.13.16.4.1.3.1 = Gauge32: 1000
iso.3.6.1.4.1.2021.13.16.4.1.3.2 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.4.1.3.3 = Gauge32: 3344
iso.3.6.1.4.1.2021.13.16.4.1.3.4 = Gauge32: 3328
iso.3.6.1.4.1.2021.13.16.4.1.3.5 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.4.1.3.6 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.4.1.3.7 = Gauge32: 0
iso.3.6.1.4.1.2021.13.16.4.1.3.8 = Gauge32: 3312
iso.3.6.1.4.1.2021.13.16.4.1.3.9 = Gauge32: 3168
iso.3.6.1.4.1.2021.13.16.4.1.3.10 = Gauge32: 1048
iso.3.6.1.4.1.2021.13.16.4.1.3.11 = Gauge32: 144
iso.3.6.1.4.1.2021.13.16.4.1.3.12 = Gauge32: 120
iso.3.6.1.4.1.2021.13.16.4.1.3.13 = Gauge32: 1152
iso.3.6.1.4.1.2021.13.16.4.1.3.14 = Gauge32: 1384
iso.3.6.1.4.1.2021.13.16.4.1.3.15 = Gauge32: 160
Nous avons bien nos informations de température.
2 le plugin centreon_generic_snmp.pl
Connectons-nous sur le serveur de supervision Centreon. Nous utiliserons le plugin centreon_generic_snmp.pl. Prenez l'habitude de vous connecter en tant que centreon-engine pour tester le plugin. Premier test, récupération d'une valeur avec le plugin. Nous récupérons la température du coeur 0.
/usr/lib/centreon/plugins/centreon_generic_snmp.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --hostname=192.168.1.245 --snmp-community=public --snmp-version=2c --oid=1.3.6.1.4.1.2021.13.16.2.1.3.32
OK: current value is 36000 | 'value'=36000;;;;
L'oid correspond à celui indiqué dans la liste précédente.
![Stacks Image 37289](files/stacks-image-0a17ff3-800x578.jpg)
Le résultat est un peu spartiate, nous allons l'améliorer.
/usr/lib/centreon/plugins/centreon_generic_snmp.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --hostname=192.168.1.245 --snmp-community=public --snmp-version=2c --oid=1.3.6.1.4.1.2021.13.16.2.1.3.32 --format-custom="/ 1000" --format="temp. coeur 0 : %s°" --perfdata-name='temp_core0' --warning=80 --critical=90
OK: temp. coeur 0 : 36° | 'temp_core0'=36;0:80;0:90;;
Le paramètre format-custom a diviser le résultat pour obtenir un valeur en degré, le paramètre format permet de modifier le message de sortie du plugin, le paramètre perfdata-name permet de modifier le nom de la métrique.
Notre résultat est beaucoup plus parlant mais nous n'avons qu'une seule information. L'idéal sera d'avoir les quatre informations de température à la fois. Et bien, c'est possible grâce aux développeurs Centreon en utilisant l'option config-json. Voici la commande :
Notre résultat est beaucoup plus parlant mais nous n'avons qu'une seule information. L'idéal sera d'avoir les quatre informations de température à la fois. Et bien, c'est possible grâce aux développeurs Centreon en utilisant l'option config-json. Voici la commande :
/usr/lib/centreon/plugins/centreon_generic_snmp.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --hostname=192.168.1.245 --snmp-community=public --snmp-version=2c --config-json='[ { "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.32","perfdata_name": "tempcore_0", "format": "temp. coeur 0 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.33", "perfdata_name": "tempcore_1","format": "temp. coeur 1 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.34", "perfdata_name": "tempcore_2","format": "temp. coeur 2 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.35", "perfdata_name": "tempcore_3","format": "temp. coeur 3 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"} ]'
OK: temp. coeur 0 : 37° - temp. coeur 1 : 37° - temp. coeur 2 : 24° - temp. coeur 3 : 24° | 'tempcore_0'=37;0:80;0:90;; 'tempcore_1'=37;0:80;0:90;; 'tempcore_2'=24;0:80;0:90;; 'tempcore_3'=24;0:80;0:90;;
2.1 Intégration dans Centreon
Nous utiliserons la version open-source sans plugin-pack.
2.1a Création de la commande
![Stacks Image 37298](files/stacks-image-e6f8f56-800x310.jpg)
La commande est la suivante
$CENTREONPLUGINS$/centreon_generic_snmp.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --hostname=$HOSTADDRESS$ --snmp-community='$_HOSTSNMPCOMMUNITY$' --snmp-version=$_HOSTSNMPVERSION$ --oid='$_SERVICEOID$' --format-custom='$_SERVICEFORMATCUSTOM$' --format='$_SERVICEFORMAT$' --perfdata-name='$_SERVICEPRFDATANAME$' --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_SERVICEOPTIONS$
2.1b Création du template de service
La création du template de service ne présente aucune difficulté.
![Stacks Image 37303](files/stacks-image-1101e98-800x542.jpg)
2.1c Création du service
Nous continuons avec la création du service associé à l'hôte debkvm
![Stacks Image 37308](files/stacks-image-fe72240-800x592.jpg)
Nous ajouterons l'argument —config-json dans la macro OPTIONS.
--config-json='[ { "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.32","perfdata_name": "tempcore_0", "format": "temp. coeur 0 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.33", "perfdata_name": "tempcore_1","format": "temp. coeur 1 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.34", "perfdata_name": "tempcore_2","format": "temp. coeur 2 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"},{ "oid": "1.3.6.1.4.1.2021.13.16.2.1.3.35", "perfdata_name": "tempcore_3","format": "temp. coeur 3 : %s°","format_custom": "/ 1000","warning": "80","critical": "90"} ]'
2.1d Résultat du graphe
Après application de la configuration, vous obtenez le graphe suivant.
![Stacks Image 37313](files/stacks-image-77d5564-800x234.png)
3 Le plugin centreon_lmsensors_snmp.pl
C'était sans compter sur richesse des plugins Centreon, il existe un plugin spécifique pour cette application. Il utilise un seul mode sensors. Les paramètres sont les suivants.
Tout d’abord nous allons explorer les paramètres de ce mode en utilisant la commande help en ligne de commande. Nous ferons l'impasse sur les paramètre SNMP qui font l'objet d'autres articles. Voici les principaux paramètres :
—component
choix du composant à superviser : temperature, fan, voltage, misc. Par défaut '.*'
—filter
Exclure des sondes. exemple : --filter='temperature,25', on peut cumuler plusieurs filter dans la même commande.
—no-component
retourne la valeur critique si aucun composant n'est checké
—warning
seuil warning avec la syntaxe suivante type,instance,seuil
—critical
seuil critique avec la syntaxe suivante type,instance,seuil
—component
choix du composant à superviser : temperature, fan, voltage, misc. Par défaut '.*'
—filter
Exclure des sondes. exemple : --filter='temperature,25', on peut cumuler plusieurs filter dans la même commande.
—no-component
retourne la valeur critique si aucun composant n'est checké
—warning
seuil warning avec la syntaxe suivante type,instance,seuil
—critical
seuil critique avec la syntaxe suivante type,instance,seuil
Nous commençons avec la commande très basique pour l'instant
/usr/lib/centreon/plugins$ ./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='.*' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 OK: All 35 components are ok [5/5 fans, 15/15 temperatures, 15/15 voltages]. | 'fan1#sensor.fan.speed.rpm'=0rpm;;;0; 'fan2#sensor.fan.speed.rpm'=2812rpm;;;0; 'fan3#sensor.fan.speed.rpm'=0rpm;;;0; 'fan4#sensor.fan.speed.rpm'=0rpm;;;0; 'fan5#sensor.fan.speed.rpm'=0rpm;;;0; 'SYSTIN#sensor.temperature.celsius'=120C;;;; 'CPUTIN#sensor.temperature.celsius'=33.5C;;;; 'AUXTIN0#sensor.temperature.celsius'=4294839.296C;;;; 'AUXTIN1#sensor.temperature.celsius'=114C;;;; 'AUXTIN2#sensor.temperature.celsius'=112C;;;; 'AUXTIN3#sensor.temperature.celsius'=35C;;;; 'PCH_CHIP_CPU_MAX_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_CHIP_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_CPU_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_MCH_TEMP#sensor.temperature.celsius'=0C;;;; 'temp1#sensor.temperature.celsius'=26.8C;;;; 'Core 0#sensor.temperature.celsius'=36C;;;; 'Core 1#sensor.temperature.celsius'=36C;;;; 'Core 2#sensor.temperature.celsius'=24C;;;; 'Core 3#sensor.temperature.celsius'=24C;;;; 'Vcore#sensor.voltage.volt'=1V;;;; 'in1#sensor.voltage.volt'=0V;;;; 'AVCC#sensor.voltage.volt'=3.344V;;;; '+3.3V#sensor.voltage.volt'=3.328V;;;; 'in4#sensor.voltage.volt'=0V;;;; 'in5#sensor.voltage.volt'=0V;;;; 'in6#sensor.voltage.volt'=0V;;;; '3VSB#sensor.voltage.volt'=3.312V;;;; 'Vbat#sensor.voltage.volt'=3.168V;;;; 'in9#sensor.voltage.volt'=1.048V;;;; 'in10#sensor.voltage.volt'=0.152V;;;; 'in11#sensor.voltage.volt'=0.12V;;;; 'in12#sensor.voltage.volt'=1.152V;;;; 'in13#sensor.voltage.volt'=1.384V;;;; 'in14#sensor.voltage.volt'=0.16V;;;; 'hardware.fan.count'=5;;;; 'hardware.temperature.count'=15;;;; 'hardware.voltage.count'=15;;;;
En ajoutant l'argument --verbose, nous ajoutons la liste des composants et leur instance.
Checking fans fan 'fan1' speed is 0 rpm [instance = 16] fan 'fan2' speed is 2812 rpm [instance = 17] fan 'fan3' speed is 0 rpm [instance = 18] fan 'fan4' speed is 0 rpm [instance = 19] fan 'fan5' speed is 0 rpm [instance = 20] Checking temperatures temperature 'SYSTIN' is 120 C [instance = 21] temperature 'CPUTIN' is 33.5 C [instance = 22] temperature 'AUXTIN0' is 4294839.296 C [instance = 23] temperature 'AUXTIN1' is 114 C [instance = 24] temperature 'AUXTIN2' is 112 C [instance = 25] temperature 'AUXTIN3' is 35 C [instance = 26] temperature 'PCH_CHIP_CPU_MAX_TEMP' is 0 C [instance = 27] temperature 'PCH_CHIP_TEMP' is 0 C [instance = 28] temperature 'PCH_CPU_TEMP' is 0 C [instance = 29] temperature 'PCH_MCH_TEMP' is 0 C [instance = 30] temperature 'temp1' is 26.8 C [instance = 31] temperature 'Core 0' is 36 C [instance = 32] temperature 'Core 1' is 36 C [instance = 33] temperature 'Core 2' is 24 C [instance = 34] temperature 'Core 3' is 29 C [instance = 35] Checking voltages voltage 'Vcore' is 1 V [instance = 1] voltage 'in1' is 0 V [instance = 2] voltage 'AVCC' is 3.344 V [instance = 3] voltage '+3.3V' is 3.328 V [instance = 4] voltage 'in4' is 0 V [instance = 5] voltage 'in5' is 0 V [instance = 6] voltage 'in6' is 0 V [instance = 7] voltage '3VSB' is 3.312 V [instance = 8] voltage 'Vbat' is 3.168 V [instance = 9] voltage 'in9' is 1.048 V [instance = 10] voltage 'in10' is 0.144 V [instance = 11] voltage 'in11' is 0.12 V [instance = 12] voltage 'in12' is 1.152 V [instance = 13] voltage 'in13' is 1.384 V [instance = 14] voltage 'in14' is 0.16 V [instance = 15] Checking misc
Nous allons nous intéressez aux composants fan et temperature. la modification est affiché en gras.
//usr/lib/centreon/plugins$ ./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='fan|temperature' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 OK: All 20 components are ok [5/5 fans, 15/15 temperatures]. | 'fan1#sensor.fan.speed.rpm'=0rpm;;;0; 'fan2#sensor.fan.speed.rpm'=2812rpm;;;0; 'fan3#sensor.fan.speed.rpm'=0rpm;;;0; 'fan4#sensor.fan.speed.rpm'=0rpm;;;0; 'fan5#sensor.fan.speed.rpm'=0rpm;;;0; 'SYSTIN#sensor.temperature.celsius'=120C;;;; 'CPUTIN#sensor.temperature.celsius'=33.5C;;;; 'AUXTIN0#sensor.temperature.celsius'=4294839.296C;;;; 'AUXTIN1#sensor.temperature.celsius'=114C;;;; 'AUXTIN2#sensor.temperature.celsius'=112C;;;; 'AUXTIN3#sensor.temperature.celsius'=35C;;;; 'PCH_CHIP_CPU_MAX_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_CHIP_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_CPU_TEMP#sensor.temperature.celsius'=0C;;;; 'PCH_MCH_TEMP#sensor.temperature.celsius'=0C;;;; 'temp1#sensor.temperature.celsius'=26.8C;;;; 'Core 0#sensor.temperature.celsius'=37C;;;; 'Core 1#sensor.temperature.celsius'=37C;;;; 'Core 2#sensor.temperature.celsius'=30C;;;; 'Core 3#sensor.temperature.celsius'=31C;;;; 'hardware.fan.count'=5;;;; 'hardware.temperature.count'=15;;;;
Filtrons les instances qui ne nous intéresse pas.
./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='fan|temperature' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 --filter='fan,16' --filter='fan,18' --filter='fan,19' --filter='fan,20' --filter='temperature,21' --filter='temperature,22' --filter='temperature,23' --filter='temperature,24' --filter='temperature,25' --filter='temperature,26' --filter='temperature,27' --filter='temperature,28' --filter='temperature,29' --filter='temperature,30' --filter='temperature,31' OK: All 5 components are ok [1/1 fans, 4/4 temperatures]. | 'fan2#sensor.fan.speed.rpm'=2812rpm;;;0; 'Core 0#sensor.temperature.celsius'=36C;;;; 'Core 1#sensor.temperature.celsius'=36C;;;; 'Core 2#sensor.temperature.celsius'=29C;;;; 'Core 3#sensor.temperature.celsius'=24C;;;; 'hardware.fan.count'=1;;;; 'hardware.temperature.count'=4;;;;
Insérons les seuils pour les températures et le ventilateur.
./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='fan|temperature' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 --filter='fan,16' --filter='fan,18' --filter='fan,19' --filter='fan,20' --filter='temperature,21' --filter='temperature,22' --filter='temperature,23' --filter='temperature,24' --filter='temperature,25' --filter='temperature,26' --filter='temperature,27' --filter='temperature,28' --filter='temperature,29' --filter='temperature,30' --filter='temperature,31' —warning='temperature,.*,50' --critical='temperature,.*,60' --warning='fan,.*,3000' --warning='fan,.*,3200' OK: All 5 components are ok [1/1 fans, 4/4 temperatures]. | 'fan2#sensor.fan.speed.rpm'=2812rpm;0:3200;;0; 'Core 0#sensor.temperature.celsius'=36C;0:50;0:60;; 'Core 1#sensor.temperature.celsius'=36C;0:50;0:60;; 'Core 2#sensor.temperature.celsius'=24C;0:50;0:60;; 'Core 3#sensor.temperature.celsius'=31C;0:50;0:60;; 'hardware.fan.count'=1;;;; 'hardware.temperature.count'=4;;;;
Il nous reste à supprimer les deux données de performance commençant par hardware.
./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='fan|temperature' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 --filter='fan,16' --filter='fan,18' --filter='fan,19' --filter='fan,20' --filter='temperature,21' --filter='temperature,22' --filter='temperature,23' --filter='temperature,24' --filter='temperature,25' --filter='temperature,26' --filter='temperature,27' --filter='temperature,28' --filter='temperature,29' --filter='temperature,30' --filter='temperature,31' --warning='temperature,.*,50' --critical='temperature,.*,60' --critical='fan,.*,0:' --filter-perfdata='^(?!(hardware))' OK: All 5 components are ok [1/1 fans, 4/4 temperatures]. | 'fan2#sensor.fan.speed.rpm'=2812rpm;;0:;0; 'Core 0#sensor.temperature.celsius'=38C;0:50;0:60;; 'Core 1#sensor.temperature.celsius'=38C;0:50;0:60;; 'Core 2#sensor.temperature.celsius'=25C;0:50;0:60;; 'Core 3#sensor.temperature.celsius'=33C;0:50;0:60;;
Nous finirons par modifier le nom des métriques.
./centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --component='fan|temperature' --hostname=192.168.1.245 --snmp-community=maison72 --snmp-version=2 --filter='fan,16' --filter='fan,18' --filter='fan,19' --filter='fan,20' --filter='temperature,21' --filter='temperature,22' --filter='temperature,23' --filter='temperature,24' --filter='temperature,25' --filter='temperature,26' --filter='temperature,27' --filter='temperature,28' --filter='temperature,29' --filter='temperature,30' --filter='temperature,31' --warning='temperature,.*,50' --critical='temperature,.*,60' --critical='fan,.*,0:' --filter-perfdata='^(?!(hardware))' --change-perfdata='fan.*,fan' --change-perfdata='Core 0.*,Core 0' --change-perfdata='Core 1.*,Core 1' --change-perfdata='Core 2.*,Core 2' --change-perfdata='Core 3.*,Core 3' OK: All 5 components are ok [1/1 fans, 4/4 temperatures]. | 'fan'=2812rpm;;0:;0; 'Core 0'=36C;0:50;0:60;; 'Core 1'=36C;0:50;0:60;; 'Core 2'=24C;0:50;0:60;; 'Core 3'=24C;0:50;0:60;;
3.1 Intégration dans Centreon
Nous utiliserons la version open-source sans plugin-pack.
3.1a Création de la commande
![Stacks Image 37334](files/stacks-image-4a2f87e-800x272.jpg)
La commande est la suivante
$CENTREONPLUGINS$/centreon_lmsensors_snmp.pl --plugin=apps::lmsensors::snmp::plugin --mode=sensors --hostname=$HOSTADDRESS$ --snmp-community='$_HOSTSNMPCOMMUNITY$' --snmp-version=$_HOSTSNMPVERSION$ --component='$_SERVICECOMPONENT$' --warning=$_SERVICEWARNING$ --critical=$_SERVICECRITICAL$ $_SERVICEOPTIONS$
3.1b Création du template de service
La création du template de service ne présente aucune difficulté.
![Stacks Image 37345](files/stacks-image-2fde700-800x446.jpg)
3.1c Création du service
Nous continuons avec la création du service associé à l'hôte debkvm
![Stacks Image 37352](files/stacks-image-fe72240-800x592.jpg)
Nous ajouterons les différents arguments dans la macro OPTIONS.
--filter='fan,19' --filter='fan,20' --filter='temperature,21' --filter='temperature,22' --filter='temperature,23' --filter='temperature,24' --filter='temperature,25' --filter='temperature,26' --filter='temperature,27' --filter='temperature,28' --filter='temperature,29' --filter='temperature,30' --filter='temperature,31' --warning='temperature,.*,50' --critical='temperature,.*,60' --critical='fan,.*,0:' --filter-perfdata='^(?!(hardware))' --change-perfdata='fan.*,fan' --change-perfdata='Core 0.*,Core 0' --change-perfdata='Core 1.*,Core 1' --change-perfdata='Core 2.*,Core 2' --change-perfdata='Core 3.*,Core 3'
3.1d Résultat du graphe
Après application de la configuration, vous obtenez le graphe suivant.
![Stacks Image 37363](files/stacks-image-315b856-800x284.jpg)
Cet article est terminé, vous avez vu comment on utilise un plugin SNMP et un plugin spécifique pour l'application lm-sensors. Vous aurez constaté la richesse des options des plugins.