Sommaire
Configuration pour la notification par Jabber (XMPP)
Le plugin (version python)
/usr/lib/nagios/plugins/nagiosjabber.py
#!/usr/bin/python # -*- coding: utf-8 -* import sys,os,xmpp,string # Argument parsing if len(sys.argv) != 2 or sys.argv[1] == "-h" or sys.argv[1] == "--help": print "Usage : echo message | "+sys.argv[0]+" user@server" sys.exit(1) #maintenant nous devons definir le compte qui va etre connecté pour lancer le message source = {"compte" : "nagios.jabber@domain.com", "password" : "super-malin!"} # destinataire dest=sys.argv[1] #on peut se connecter au serveur #On créé l'objet de connexion jid = xmpp.protocol.JID(source['compte']) #on cherche le domaine du serveur par rapport à l'adresse client = xmpp.Client(jid.getDomain(), debug=[]) #on s'y connecte ... client.connect() #on s'authentifie avec le mot de passe : client.auth(jid.getNode(), source['password']) #et pour finir on envoie le message : client.send(xmpp.protocol.Message(dest, string.strip(sys.stdin.read())))
Intégration dans Nagios
/etc/nagios3/commands.cfg : ajouter les lignes suivantes
# 'notify-by-jabber' command definition define command{ command_name notify-by-jabber command_line /usr/bin/printf "%b" "Service: $SERVICEDESC$\nHost: $HOSTNAME$\nAddress: $HOSTADDRESS$\nState: $SERVICESTATE$\nInfo: $SERVICEOUTPUT$\nDate: $LONGDATETIME$" | /usr/lib/nagios/plugins/nagiosjabber.py $CONTACTPAGER$ } # 'host-notify-by-jabber' command definition define command{ command_name host-notify-by-jabber command_line /usr/bin/printf "%b" "Host '$HOSTALIAS$' is $HOSTSTATE$\nInfo: $HOSTOUTPUT$\nTime: $LONGDATETIME$" | /usr/lib/nagios/plugins/nagiosjabber.py $CONTACTPAGER$ }
/etc/nagios3/conf.d/contacts_nagios2.cfg : pour chacune des personnes à alerter, ajouter la notification par jabber
define contact{ contact_name moussa ... service_notification_commands notify-by-jabber,notify-by-email host_notification_commands host-notify-by-jabber,host-notify-by-email ... }
Paquets à installer
- python-xmpp
- python-dns
Relancer nagios
vérification : nagios3 -v /etc/nagios3/nagios.cfg
si zéro erreur : /etc/init.d/nagios3 restart