Comment créer des plugins Nagios avec Python sur Ubuntu 12.10
Introduction
Python est un processeur de commandes populaire disponible par défaut sur Linux.
Nous avons précédemment expliqué comment installer le serveur de surveillance Nagios sur Ubuntu 12.10 x64.
Cette fois, nous allons développer cette idée et créer des plugins Nagios en utilisant Python.
Ces plugins seront exécutés sur le VPS du client et seront lancés via NRPE.
Étape 1 - Installer NRPE sur le VPS client
apt-get install -y python nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults
Étape 2 - Créez votre script Python
Il serait bon de garder vos plugins dans le même répertoire que les autres plugins Nagios (/usr/lib/nagios/plugins/ par exemple).
Pour notre exemple, nous allons créer un script qui vérifie l'utilisation actuelle du disque en appelant "df" depuis le shell, et déclenche une alerte si elle dépasse 85 %.
#!/usr/bin/python
import os, sys
used_space=os.popen("df -h / | grep -v Filesystem | awk '{print $5}'").readline().strip()
if used_space < "85%":
print "OK - %s of disk space used." % used_space
sys.exit(0)
elif used_space == "85%":
print "WARNING - %s of disk space used." % used_space
sys.exit(1)
elif used_space > "85%":
print "CRITICAL - %s of disk space used." % used_space
sys.exit(2)
else:
print "UKNOWN - %s of disk space used." % used_space
sys.exit(3)
Nous allons enregistrer ce script dans /usr/lib/nagios/plugins/usedspace.py et le rendre exécutable :
chmod +x /usr/lib/nagios/plugins/usedspace.py
L'ensemble du plugin Nagios NRPE se résume à l'utilisation de codes de sortie pour déclencher des alertes.
Vous introduisez votre niveau de logique dans le script, et si vous souhaitez déclencher une alerte (qu'elle soit OK, AVERTISSEMENT, CRITIQUE ou INCONNU) - vous spécifiez un code de sortie.
Référez-vous aux codes de sortie Nagios suivants :
Codes de sortie de Nagios
| Code de Sortie | Statut |
| D'accord | |
| 1 | Avertissement |
| 2 | CRITIQUE |
| 3 | inconnue |
Étape 3 - Ajoutez votre script à la configuration NRPE sur l'hôte client
Supprimez l'original /etc/nagios/nrpe.cfg et ajoutez les lignes suivantes :
log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=198.211.117.251
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/
command[usedspace_python]=/usr/lib/nagios/plugins/usedspace.py
Où 198.211.117.251 est notre serveur de surveillance des articles précédents. Changez-les avec vos propres valeurs.
Assurez-vous de redémarrer le service Nagios NRPE :
service nagios-nrpe-server restart
Étape 4 - Ajouter votre nouvelle commande aux vérifications Nagios sur le serveur de surveillance Nagios
Définir une nouvelle commande dans /etc/nagios/objects/commands.cfg
define command{
command_name usedspace_python
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_python
}
Comme vous pouvez le voir, il utilise NRPE pour établir des connexions TCP sur le port 5666 et exécuter la commande 'usedspace_python', que nous avons définie dans /etc/nagios/nrpe.cfg sur cet hôte distant.
Ajoutez cette vérification à votre fichier de configuration Nagios pour le VPS client.
Pour notre exemple, nous allons surveiller un serveur appelé UbuntuDroplet et éditer /etc/nagios/servers/UbuntuDroplet.cfg.
define service {
use generic-service
host_name UbuntuDroplet
service_description Custom Disk Checker In Python
check_command usedspace_python
}
Redémarrer Nagios :
service nagios restart
Vérifiez que la nouvelle vérification fonctionne :
Et vous avez terminé !



