Système de monitoring de la température avec graph
Un article de Casys (Canadian Sysadmins).
Auteur: Thomas Boutry
Sommaire |
Réalisation d'un script
Réalisation d'un script afin de récupérer la température rapidement et de configurer snmp pour qu'il intéroge
ce script localement.
sudo vi /usr/local/bin/gettemperature.sh
---
#!/bin/bash
#
# Récupère la température du système avec sensor
# -c pour la température du core (CPU)
# -t température du reste du système.
#
APP_SENSOR=/usr/bin/sensors
CRITERIA=""
usage()
{
echo "$0 -c|-t|-h"
echo " -c get core temperature CPU"
echo " -t get other temperature"
echo " -h see this message"
}
while getopts “ct” OPTION
do
case $OPTION in
c)
CRITERIA=Core[0-9]
;;
t)
CRITERIA=temp[0-9]
;;
h)
usage
exit 1
;;
*)
usage
exit 1
;;
esac
done
RESULT=`$APP_SENSOR | egrep $CRITERIA `
echo $RESULT
---
Configuration du système snmp
Mise en place de l'exécution des scripts par le système snmpd.
Attention il est important que l'usagé qui execute snmpd soit en mesure de l'executé
sudo vi /etc/snmp/snmpd.conf --- exec CoreTemp /usr/local/bin/gettemperature.sh -c exec OtherTemp /usr/local/bin/gettemperature.sh -t ---
Redémarrage du service
sudo /etc/init.d/snmpd restart
Configuration de nagios
Mise en place du check de température pour tout les hosts Unix
Attention tout les systèmes non pas de sensor disponible
sudo vi /etc/nagios2/conf.d/template_unix_snmp.cfg
--- ADD
define service {
use generic-service
hostgroup_name Unix
service_description Temperature Core
check_command check_snmp_custom_process_v3!CoreTemp
}
define service {
use generic-service
hostgroup_name Unix
service_description Temperature Other
check_command check_snmp_custom_process_v3!OtherTemp
}
---
Configuration des graphs
Mise en place de l'interprétation des données recu par nagios
sudo vi /usr/local/nagiosgraph/etc/map
--- ADD
# Service check temperature
# Analyse le système de temperature
# Output : Core0 Temp: +38.0°C Core0 Temp: +27.0°C Core1 Temp: +35.0°C Core1 Temp: +25.0°C
/output:.*Core0 Temp: \+(\d+).*Core0 Temp: \+(\d+).*Core1 Temp: \+(\d+).*Core1 Temp: \+(\d+).*/
and push @s, [ 'CoreTemp',
[ 'Core0_v1', GAUGE, $1 ],
[ 'Core0_v2', GAUGE, $2 ],
[ 'Core1_v1', GAUGE, $3 ],
[ 'Core1_v2', GAUGE, $4 ]];
# Analyse du système de temperature divers
#
# Output : temp1: +40.0°C (low = -1.0°C, high = +127.0°C) sensor = thermal diode temp2: +35.0°C (low = -1.0°C, high = +127.0°C) sensor = transistor temp3: +25.0°C (low = -1.0°C, high = +127.0°C) sensor = transistor
#
/output:.*temp1: \+(\d+).*sensor = ([a-zA-Z]+) ([a-zA-Z]+) temp2: \+(\d+).*sensor = (.*) temp3: \+(\d+).*sensor = (.*)/
and push @s, [ 'Temperature',
[ "$2_$3", GAUGE, $1 ],
[ $5, GAUGE, $4 ],
[ "$7_2", GAUGE, $6 ]];
Configurationd de l'acces web
Une fois les modifications effectuées vous devriez voir des fichiers .rrd dans le répertoire de nagiosgraph, pour tout les rrd
configuration du système nagios afin d'avoir l'acces direct par l'interface web
sudo vi /etc/nagios2/conf.d/extinfo_nagios2.cfg
--- ADD
define serviceextinfo {
service_description Temperature Core
hostgroup_name Unix
notes_url /nagiosgraph/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&fixedscale
icon_image graph.gif
icon_image_alt View graphs
}
define serviceextinfo {
service_description Temperature Other
hostgroup_name Unix
notes_url /nagiosgraph/show.cgi?host=$HOSTNAME$&service=$SERVICEDESC$&fixedscale
icon_image graph.gif
icon_image_alt View graphs
}
