Vérifier la température d’un Raspberry avec un plugin bash
![Stacks Image 5251](files/stacks-image-0185765.jpg)
Voici un exemple de plugin bash qui nous permettra d’utiliser une commande unix pour contrôler la température du CPU d’un Raspberry. Vous trouverez l’article qui m’a permis de trouver cette informatique à cette adresse http://www.cyberciti.biz/faq/linux-find-out-raspberry-pi-gpu-and-arm-cpu-temperature-command/
1 Le plugin
Cette fois-ci, j’utilise un script bash afin d’utiliser la commande que j’ai récupéré dans le lien précédent. Pour vérifier les arguments, j’utilise des procédures récupérées sur le web bien pratiques. Dernière modification, mettre le statut Unknown si le plugin retourne une erreur.
#!/bin/bash #=============================================================================== # Centreon Plugin Bash Script - check_temp_cpu.sh # Auteur : kermith72 # Date : 08/04/2020 # But : This script checks the temperature of cpu in Raspberry #=============================================================================== # # Usage info show_help() { cat << EOF Usage: ${0##*/} [-w=<warning temperature>] [-c=<critical temperature>] This script checks the temperature of cpu in Raspberry (-25°/80°) -w|--warning Threshold warning. -c|--critical Threshold critical. -h|--help help EOF } for i in "$@" do case $i in -w=*|--warning=*) WARNING="${i#*=}" shift # past argument=value ;; -c=*|--critical=*) CRITICAL="${i#*=}" shift # past argument=value ;; -h|--help) show_help exit 3 ;; *) # unknown option ;; esac done # Check for missing parameters if [[ -z "$WARNING" ]] || [[ -z "$CRITICAL" ]] ; then echo "UNKNOWN - Missing parameters!" show_help exit 2 fi # Check warning is lower than critical if [[ "$WARNING" -gt "$CRITICAL" ]]; then echo "UNKNOWN - WARNING must be lower than CRITICAL ! " exit 2 fi # read temperature of raspberry cpu=$(</sys/class/thermal/thermal_zone0/temp) tempcpu=$((cpu/1000)) # Check if temperature is lower than WARNING threshold parameter if [[ "$tempcpu" -lt "$WARNING" ]]; then echo "OK - $tempcpu C | temp=${tempcpu}C;$WARNING;$CRITICAL;0;100" exit 0 fi # Check if temperature is greater than WARNING threshold parameter and lower than CRITICAL threshold parameter if [[ "$tempcpu" -ge "$WARNING" ]] && [[ "$tempcpu" -lt "$CRITICAL" ]]; then echo "WARNING - $tempcpu C | temp=${tempcpu}C;$WARNING;$CRITICAL;0;100" exit 1 fi # Check if temperature is greater than CRITICAL threshold parameter if [[ "$tempcpu" -ge "$CRITICAL" ]]; then echo "CRITICAL - $tempcpu C | temp=${tempcpu}C;$WARNING;$CRITICAL;0;100" exit 2 fi
2 Test du plugin
Voici le test du plugin avec toutes les possibilités. Attention, ne pas mettre d’espace entre le paramètre et sa valeur associée.
Commande passée sans argument, erreur car ils sont obligatoires
./check_temp_cpu.sh Missing parameters! Usage: check_temp_cpu.sh [-w=La valeur Critique doit être supérieure à la valeur Warning.] [-c= ] This script checks the temperature of cpu in Raspberry (-25°/80°) -w|--warning Threshold warning. -c|--critical Threshold critical. -h|--help help
./check_temp_cpu.sh -w=40 -c=39 WARNING must be lower than CRITICAL !Retour OK
./check_temp_cpu.sh -w=55 -c=65 OK - 44 C | temp=44C;55;65;0;100Retour Warning
./check_temp_cpu.sh -w=40 -c=65 WARNING - 45 C | temp=45C;40;65;0;100Retour Critical
./check_temp_cpu.sh -w=40 -c=41 CRITICAL - 43 C | temp=43C;40;41;0;100
3 Configuration Centreon
3.1 Création de la commande check_temperature
![Stacks Image 1195414](files/stacks-image-17f4ec5.png)
Création de la commande check_temperature
Command line
$USER1$/check_temp_cpu.sh -w=$_SERVICEWARNING$ -c=$_SERVICECRITICAL$
3.2 Création du service Temperature_CPU
![Stacks Image 1195441](files/stacks-image-4082fe5-800x374.png)
Création du service Temperature_CPU
Pour la création du service, utilisez le modèle generic-service et la commande créée précedemment check_temperature. Pour ma part, j’ai positionné les macro Warning à 50 et Critical à 65.
3.3 Paramétrage du graphe de performance
Comme ce plugin retourne des données de performance, nous allons afficher des graphes. Par défaut, voici le résultat.
![Stacks Image 5307](files/stacks-image-601808d.png)
Affichage du graphe par défaut
Nous allons l’améliorer avec le choix des couleurs en fonction du statut du service et en affichant les valeurs Warning et Critical. Commençons par la courbe, nous nommerons la courbe temp en association avec la valeur temp des données de performances.
![Stacks Image 1195456](files/stacks-image-f855afe-738x800.png)
création de la courbe temp
Voici notre courbe modifiée, mais il serait intéressant de voir les seuils warning et critical.
![Stacks Image 1195471](files/stacks-image-8bfae90.png)
Affichage du graphe avec la courbe temp
Nous allons créer un modèle de graphique nommé temperature afin d’afficher les seuils en augmentant la valeur des ordonnées.
![Stacks Image 1195486](files/stacks-image-9295337.png)
création du modèle de graphique temperature
Il faut associer ce modèle à la commande check_temperature
![Stacks Image 1195501](files/stacks-image-29bf8de.png)
Application du modèle de graphe à la commande check_temperature
Et voici le résultat, en modifiant les valeurs Warning et Critical, nous pouvons visualiser le changement des couleurs de la courbes en fonction des états du service.
![Stacks Image 1195516](files/stacks-image-475b64f.png)
Le graphe dans sa version finale
![Stacks Image 1195525](files/stacks-image-45ae868.png)
Le graphe avec les valeurs Warning à 30 et Critical à 42
![Stacks Image 1195534](files/stacks-image-4e54e2c.png)
Le graphe avec les valeurs Warning à 42 et Critical à 65