Script Perl Centreon permettant de surveiller la CPU d’une carte Cisco WISM.

Continuons notre série de script sur les cartes WISM. Le WIFI devient presque aussi important que le filaire de nos jours. De plus en plus d’applications critiques l’utilisent. Il est donc important de surveiller ces équipements.

Aujourd’hui je vous propose un script PERL tout simple qui permet de nous remonter le pourcentage de CPU utilisé par la carte WISM.

cpu_wism_1

[information]Comme d’habitude vous retrouverez ce script et les différentes mises à jour et correctifs sur mon dépôt Github à cette adresse : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner).[/information]

cpu_wism_2

J’utilise toujours le même modèle de script depuis des années. Ce script utilise un seul module CPAN Net::SNMP (ligne 11) pour récupérer le pourcentage de CPU utilisé.

Avant de commencer le traitement, je vérifie que toutes les options soient saisies (ligne 25 à 65) :

  • La variable $opt_community permet d’indiquer la communauté de l’équipement. Généralement on accède avec la communauté Public (read) pour récupérer des informations.
  • La variable $opt_version permet d’indiquer la version de SNMP utilisée sur l’équipement (1, 2C, 3).
  • La variable $opt_host permet de saisir l’adresse ip le l’équipement à superviser.
  • La variable $opt_w permet d’indiquer un seuil à partir duquel Centreon affichera le statut WARNING.
  • La variable $opt_c permet d’indiquer un seuil à partir duquel Centreon affichera le statut CRITICAL.

cpu_wism_3

Ensuite nous nous connectons à notre équipement en SNMP (Ligne 59), avec les variables passées ci-dessus.

Nous mettons dans une variable, l’OID que l’on souhaite rechercher (Ligne 71). L’OID agentCurrentCPUUtilization se trouve dans la MIB Cisco AIRESPACE-SWITCHING-MIB.

Une fois connecté à notre équipement nous récupérons le résultat de l’OID (Ligne 77) dans la variable $resultOID.

cpu_wism_4

Ensuite il suffit de comparer la valeur retournée à nos valeurs de Warning et de Critical (Ligne 98 à 103)  pour afficher le bon message dans Centreon (Ligne 105).

Pour ce script nous générons un graphique pour avoir un historique du pourcentage d’utilisation de la CPU. La variable qui génère le graphique se situe après le pipe (|) au niveau de la ligne 105. CPU_Usage  contient la valeur de l’OID.

Le nom de la variable contenant les valeurs pour le graphique ne doit pas contenir d’espace, sinon vos graphiques ne fonctionneront pas.

Pour ma part j’utilise une CES (Centreon Entreprise Server) virtualisé. Le répertoire ou je dois copier mes plugins est le suivant : /usr/lib/nagios/plugins.

Avant d’intégrer le plugin dans Centreon je l’exécute toujours sur mon serveur pour vérifier que tout fonctionne correctement. Depuis CES les plugins sont exécutés avec l’utilisateur centreon-engine.

  • Vérification N°1 : Je m’assure que le plugin n’a pas d’erreur de programmation en affichant l’aide
#su centreon-engine
#./check_snmp_wism_cpu.pl –h

cpu_wism_5

  • Vérification N°2 : Je test le plugin sur l’équipement désiré, avec les vrais valeurs.
# ./check_snmp_wism_cpu.pl -C public -V 1 -H 192.168.4.51 -w 50 -c 70

cpu_wism_6

Une fois le plugin créé dans Centreon vous aurez ce genre de sortie :

cpu_wism_7

[information]

Si vous modifiez et/ou utiliser le plugin merci de laisser un petit commentaire cela fait toujours plaisir. N’oubliez pas le dépôt Github pour récupérer le script, à cette adresse : https://github.com/quick-tutoriel (n’hésitez pas à vous abonner).

[/information]

 That’s All.

2 Potins

  1. Hello,

    We would need to upgrade the Checkpoint plugin for CPU monitoring.

    Indeed, the values currently in place do not allow us to check the health of our firewalls.
    Would it be possible to take into account the monitoring of each CPU, of course dynamically depending on the number of CPUs?

    Exemples :

    Firewall Checkpoint avec 12 CPU

    [Expert@fwback1:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 .1.3.6.1.4.1.2620.1.6.7.2.7
    SNMPv2-SMI::enterprises.2620.1.6.7.2.7.0 = Counter32: 12

    [Expert@fwback1:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 1.3.6.1.4.1.2620.1.6.7.5.1.5
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.1.0 = Counter32: 7
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.2.0 = Counter32: 16
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.3.0 = Counter32: 4
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.4.0 = Counter32: 22
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.5.0 = Counter32: 21
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.6.0 = Counter32: 21
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.7.0 = Counter32: 3
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.8.0 = Counter32: 9
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.9.0 = Counter32: 7
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.10.0 = Counter32: 21
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.11.0 = Counter32: 22
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.12.0 = Counter32: 21

    Firewall Checkpoint avec 6 CPU

    [Expert@fwfront01:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 .1.3.6.1.4.1.2620.1.6.7.2.7
    SNMPv2-SMI::enterprises.2620.1.6.7.2.7.0 = Counter32: 6

    [Expert@saosevy01fwfront01:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 1.3.6.1.4.1.2620.1.6.7.5.1.5
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.1.0 = Counter32: 1
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.2.0 = Counter32: 0
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.3.0 = Counter32: 3
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.4.0 = Counter32: 4
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.5.0 = Counter32: 1
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.6.0 = Counter32: 2

    Firewall Checkpoint avec 2 CPU

    [Expert@va01fw01:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 .1.3.6.1.4.1.2620.1.6.7.2.7
    SNMPv2-SMI::enterprises.2620.1.6.7.2.7.0 = Counter32: 2

    [Expert@va01fw01:0]# snmpwalk -v2c -c xxxxxx 127.0.0.1 1.3.6.1.4.1.2620.1.6.7.5.1.5
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.1.0 = Counter32: 4
    SNMPv2-SMI::enterprises.2620.1.6.7.5.1.5.2.0 = Counter32: 3

    The value given is the number of CPUs for the MIB 1.6.7.2.7 and the percentage of usage for 1.6.7.5.1.5.

  2. Merci pour le script ;) de précieux OIDs dans cette MIB !

    Pour dev encore plus rapidement et avec une compatibilité full SNMP v3 , viens faire un tour sur la forge centreon-plugins ).

    On utilise SNMP.pm au lieu de Net:SNMP ;)

    Si tu souhaites contribuer poste une demande !

    Merci

    ++

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *