Aujourd’hui, je me suis penché sur la supervision des packages HP-UX.
Préambule :
Je dispose de deux serveurs HP-UX que l’on considère comme des node, chacun ayant 2 packages, il est possible d’exécuter un package sur l’une ou l’autre de ces node. Par defaut un package possède une node « Primary », ainsi qu’une autre, « Alternate ».
Mon But :
Savoir sur quelle node s’exécute au moment du check (effectué par Nagios) le package X.
- Si le package tourne sur sa node Primaire, alors on envoi un OK à Nagios
- Si le package s’execute sur la node Alternate, alors l’info warning est renvoyé à Nagios
Comment faire :
La commande « cmviewcl » des HP-UX, permet de visionner entierement la configuration des nodes,packages,… (docs cmviewcl par HP).
Cette commande me permet de connaitre le nom de la node par défaut ainsi que l’alternate, et ce pour tous les packages declarés.
J’affiche donc le résultat pour le package X, puis je compare la node Primary avec la node sur laquelle tourne le package.
Voici donc le script que j’ai créé pour arriver à avoir ceci :
#!/bin/sh
#
# check_package.sh
# Connaitre sur quel node le package s’execute
# JMON – 04092008
#PATH=/sbin:/usr/sbin:/usr/bin
export PATHPACKAGE=$1
OWNER=$(/usr/sbin/cmviewcl -v -p $PACKAGE -f line | grep owner | awk -F\= ‘{print $2}’)
CURRENT_NODE=$(/usr/sbin/cmviewcl -v -p $PACKAGE -f line | grep Primary | cut -d \: -f 2 | cut -d \| -f 1)if [ "$OWNER" = "$CURRENT_NODE" && "$OWNER" != ""];
then
echo « Le package $PACKAGE s’execute sur noeud primaire $OWNER »
exit 0
else
echo « Le package $PACKAGE ne s’execute pas sur noeud primaire $OWNER mais sur $CURRENT_NODE »
exit 1
fi
Application à Nagios :
J’utilise le plugin NRPE pour monitorer mes serveurs HP-UX, j’ai donc declaré ma commande dans mon fichier « nrpe.cfg » (sur mes deux serveurs) :
command[check_package]=sh /usr/local/nagios/libexec/check_package_hpux.sh NOMDUPACKAGE 2> /dev/null
Voila, maintenant à vous de jouer …
Commentaires récents