Vous êtes ici:

Menu


Vérifier la température d’un Raspberry avec un plugin bash

Stacks Image 5251
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.
#!/bin/bash
#===============================================================================
# Centreon Plugin Bash Script - check_temp_cpu.sh
# Auteur : kermith72
# Date   : 12/06/2016
# But    : This script checks the temperature of cpu in Raspberry
#===============================================================================
#
# Usage info
show_help() {
cat << EOF
Usage: ${0##*/} [-w=] [-c=]
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 2
      ;;
    *)
            # unknown option
    ;;
  esac
done


# Check for missing parameters
if [[ -z "$WARNING" ]] || [[ -z "$CRITICAL" ]] ; then
    echo "Missing parameters!"
    show_help
    exit 2
fi

# Check warning is lower  than critical
if [[ "$WARNING" -gt "$CRITICAL" ]]; then
        echo "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;;80"
        exit 0
fi
# Check if temperature is greater than WARNING threshold parameter and lower than CRITICAL threshold parameter
if [[ "$tempcpu" -gt "$WARNING" ]] && [[ "$tempcpu" -lt "$CRITICAL" ]]; then
        echo "WARNING - $tempcpu C | temp=${tempcpu}C;$WARNING;$CRITICAL;;80"
        exit 1
fi
# Check if temperature is greater than CRITICAL threshold parameter
if [[ "$tempcpu" -gt "$CRITICAL" ]]; then
        echo "CRITICAL - $tempcpu C | temp=${tempcpu}C;$WARNING;$CRITICAL;;80"
        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=] [-c=]
This script checks the temperature of cpu in Raspberry (-25°/80°)

    -w|--warning  Threshold warning.
    -c|--critical Threshold critical.
    -h|--help     help
La valeur Critique doit être supérieure à la valeur Warning.
./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;;80
Retour Warning
./check_temp_cpu.sh -w=40 -c=65
WARNING - 45 C | temp=45C;40;65;;80
Retour Critical
./check_temp_cpu.sh -w=40 -c=41
CRITICAL - 43 C | temp=43C;40;41;;80

3 Configuration Centreon

3.1 Création de la commande check_temperature

Stacks Image 1195414
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
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
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
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
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
création du modèle de graphique temperature
Il faut associer ce modèle à la commande check_temperature
Stacks Image 1195501
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
Le graphe dans sa version finale
Stacks Image 1195525
Le graphe avec les valeurs Warning à 30 et Critical à 42
Stacks Image 1195534
Le graphe avec les valeurs Warning à 42 et Critical à 65
comments powered by Disqus
 Vous êtes ici: