Modifications entre les versions 1 et 2
Version 1 à la date du 2010-10-25 20:53:53
Taille: 2462
Éditeur: MoussaNombre
Commentaire:
Version 2 à la date du 2010-10-29 15:09:21
Taille: 2529
Éditeur: MoussaNombre
Commentaire: C'est un projet spécifique à Montréal
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
## page was renamed from Projet/Supervision/NotificationParJabber

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

ZA/Montréal/Supervision/NotificationParJabber (dernière édition le 2010-10-29 15:09:21 par MoussaNombre)