Announcement

Collapse
No announcement yet.

Problème PerfData Plugin Python

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problème PerfData Plugin Python

    Bonsoir,

    J'utilise un plugin écrit en python qui interroge par SNMP un équipement et écrit le résultat dans un fichier texte. Le plugin compte ensuite le nombre de 1 que comporte ce fichier et affiche la valeur.

    En ligne de commande, tout fonctionne bien, j'ai le résultat voulu mais lorsque je l'utilise sous Centreon, je me retrouve avec (null) dans Status Information et je n'ai pas de performance data, donc pas de graph (ce que je cherche à avoir). Je n'ai pas besoin de warning ou de critical car quelque soit le résultat, il ne sera jamais warning ou critical.

    Code:
    #!/usr/bin/python
    import sys, os
    import re
    
    if (os.system("snmpwalk @IP_hôte -c public -v 2c .1.3.6.1.4.1.5003.9.10.1.4.1.1.1 > /tmp/active_calls_BHG") > 0) or (os.system("snmpwalk @IP_hôte -c public -v 2c .1.3.6.1.4.1.5003.9.10.1.4.1.1.1 >> /tmp/active_calls_BHG") > 0):
        os._exit(2)
    else:
        f = open("/tmp/active_calls_BHG",'r')
        string = f.read()
        f.close()
        nombre = len(re.findall("\(1\)", string))
        print "nb_active_calls: %(nombre)d | nb_active_calls=%(nombre)d" % {'nombre':nombre}
        os._exit(0)
    Que manque t-il au script pour que je puisse avoir le graph ?
    Last edited by magicbret; 5 November 2009, 21:04. Reason: Solved
    Ubuntu server 10.04 LTS 64 Bits - Haute dispo 4 serveurs centraux (réplication MySQL + VIP + Rsync)
    Nagios 3.3.1 | Centreon 2.3.9 | Centreon-Broker 2.1.1 | 2000 hôtes - 5000 services | 6 Remote Pollers

    Dev : CES 2.2 - Centengine - Centreon 2.4.1

  • #2
    Dans la première partie tu n'a pas de message de sortie. Donc si ca plante alors on ne sait pas pourquoi.
    Centreon Syslog Module Manager/Developper
    Centreon E2S Module Manager/Developper
    Centreon Enterprise Server (2.x / 3.x) : Centreon Engine 1.3.x / 1.4.x, Centreon Broker 2.6.x / 2.8.x , Centreon 2.x, Centreon-Syslog 1.5.x, Centreon E2S 2.0
    Nagios 3.x et NDOutil 1.x

    Comment


    • #3
      Je pense que ca vient du os.system. Il faut donner un chemin complet dans Nagios car le PATH n'est pas présent lorsqu'il lance ses checks.
      Auteur de Shinken, outil de supervision compatible avec Nagios et orientée supervision distribuée hautement disponible et mulitplateforme.

      Comment


      • #4
        C'est résolu.
        Le plugin à été reécrit.

        Pour ceux qui seraient intéressé, voici le code complet :

        #!/usr/bin/env python

        import sys, getopt
        import os, re

        nagios_codes = {'OK': 0,
        'WARNING': 1,
        'CRITICAL': 2,
        'UNKNOWN': 3}

        def nagios_return(code, response):
        print code + ": " + response
        sys.exit(nagios_codes[code])

        def check_condition():
        if (os.system("/usr/bin/env snmpwalk @IP_BHG -c public -v 2c .1.3.6.1.4.1.5003.9.10.1.4.1.1.1 > /tmp/active_calls_BHG") > 0) or (os.system("/usr/bin/env snmpwalk @IP_BHG -c public -v 2c .1.3.6.1.4.1.5003.9.10.1.4.1.1.1 >> /tmp/active_calls_BHG") > 0):
        nag_code = "CRITICAL"
        nombre = -1 #nonesense, on purpose
        else:
        f = open("/tmp/active_calls_BHG",'r')
        string = f.read()
        f.close()
        nombre = len(re.findall("\(1\)", string))
        nag_code = "OK"
        return {"code" : nag_code, "message": "nb_active_calls: %(nombre)d | nb_active_calls=%(nombre)d" % {'nombre':nombre} }

        def main():
        result = check_condition()
        nagios_return(result['code'], result['message'])

        if __name__ == "__main__":
        main()


        Ce plugin interroge des BHG Mediant Audiocodes (Gateway VOIP) et retourne le nombre de canaux actif, donc le nombre d'appels en cours.

        Le principe est le suivant :
        - Interrogation du nombre de canaux actifs des 2 BHG
        - Renvoi du résultat du snmpwalk dans un fichier (/tmp)
        - Comptage du nombre de ligne à 1
        - Renvoi du résultat et traitement par Nagios

        Cdt,
        Ubuntu server 10.04 LTS 64 Bits - Haute dispo 4 serveurs centraux (réplication MySQL + VIP + Rsync)
        Nagios 3.3.1 | Centreon 2.3.9 | Centreon-Broker 2.1.1 | 2000 hôtes - 5000 services | 6 Remote Pollers

        Dev : CES 2.2 - Centengine - Centreon 2.4.1

        Comment

        Working...
        X