Supervision Switch Cisco avec Centreon (1/2)

Nous allons voir dans ce chapitre la supervision d’un switch Cisco. Nous allons notamment surveiller le trafic des  interfaces réseau, mais aussi le CPU, la mémoire, le châssis…etc, et bien sûr, pour réaliser ce projet, nous allons utiliser Centreon ainsi que ses plugins packs…

Ce que nous allons réaliser ici :

  • Supervision d’un switch Cisco en ligne de commande
  • Création de commandes sous Centreon Web

Ce qu’il vous faut :

Important : vous devez avoir la même configuration que moi, surtout l’installation des plugins et l’ajout des macros personnalisées. Tout est expliqué dans les liens ci-dessus. Dans le cas contraire, vous devez adapter la conf par rapport à votre installation. Du moment que votre supervision fonctionne, c’est parfait (on s’en fiche de ma configuration).

Voir également mes projets sur la supervision : /supervision

Supervision Switch Cisco (CLI)

N’oubliez pas d’activer SNMP sur votre switch Cisco. Vous devez ajouter une communauté et autoriser SNMP en lecture seule. Nous allons d’abord superviser le switch en ligne de commande avant de passer à la création des commandes, les modèles, hôtes, services depuis l’interface web Centreon.

Recherche de plugin pour la supervision des switchs Cisco :

[root@centreon plugins]# ./centreon_plugins.pl --list-plugin | grep cisco | grep PLUGIN
PLUGIN: apps::voip::cisco::meetingplace::plugin
PLUGIN: network::cisco::WaaS::plugin
PLUGIN: network::cisco::wlc::snmp::plugin
PLUGIN: apps::cisco::cms::restapi::plugin
PLUGIN: network::cisco::callmanager::snmp::plugin
PLUGIN: network::cisco::asa::snmp::plugin
PLUGIN: network::cisco::smallbusiness::standard::snmp::plugin
PLUGIN: hardware::server::cisco::ucs::plugin
PLUGIN: apps::cisco::ise::restapi::plugin
PLUGIN: network::cisco::prime::restapi::plugin
PLUGIN: network::cisco::meraki::cloudcontroller::snmp::plugin
PLUGIN: network::cisco::vcs::restapi::plugin
PLUGIN: network::cisco::standard::snmp::plugin
PLUGIN: network::cisco::vg::snmp::plugin
PLUGIN: network::cisco::ironport::snmp::plugin
[root@centreon plugins]#

Nous allons donc utiliser le plugin PLUGIN: network::cisco::standard::snmp::plugin

Voici les modes disponible :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --list-mode

Plugin Description:
    Check Cisco equipments (2800, 2900, 3750, Nexus,...) in SNMP.

Global Options:
    --mode  Choose a mode.

    --dyn-mode
            Specify a mode with the path (separated by '::').

    --list-mode
            List available modes.

    --mode-version
            Check minimal version of mode. If not, unknown error.

    --version
            Display plugin version.

    --pass-manager
            Use a password manager.

Modes Available:
   configuration
   cpu
   environment
   hsrp
   interfaces
   ipsla
   list-interfaces
   list-spanning-trees
   memory
   memory-flash
   qos-usage
   spanning-tree
   stack
   uptime
[root@centreon plugins]#

Check-Cisco-CPU

Supervision du CPU :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --mode=cpu --verbose
OK: All CPUs are ok. |
...
...
CPU '3': 19.00% (5sec), 22.00% (1min), 22.00% (5min)
CPU '19': 0.00% (5sec), 1.00% (1min), 1.00% (5min)
CPU '6': 1.00% (5sec), 1.00% (1min), 1.00% (5min)
CPU '24': 29.00% (5sec), 26.00% (1min), 26.00% (5min)
CPU '30': 21.00% (5sec), 28.00% (1min), 29.00% (5min)
CPU '4': 18.00% (5sec), 27.00% (1min), 28.00% (5min)
CPU '1': 23.00% (5sec), 19.00% (1min), 19.00% (5min)
CPU '5': 43.00% (5sec), 30.00% (1min), 29.00% (5min)
CPU '51': 16.00% (5sec), 28.00% (1min), 28.00% (5min)
CPU '18': 0.00% (5sec), 1.00% (1min), 1.00% (5min)
CPU '2': 19.00% (5sec), 28.00% (1min), 28.00% (5min)
[root@centreon plugins]#

Remarque : essayez sans le paramètre  --verbose

Check-Cisco-Memory

Supervision de la mémoire :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=memory --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --warning-usage=80 --critical-usage=90 --verbose
OK: Memory is ok. | 'used_Processor'=161884680B;0.00:725975027.20;0.00:816721905.60;0;907468784 'used_I/O'=25189592B;0.00:53687091.20;0.00:60397977.60;0;67108864
Memory 'Processor' Total: 865.43 MB Used: 154.39 MB (17.84%) Free: 711.04 MB (82.16%)
Memory 'I/O' Total: 64.00 MB Used: 24.02 MB (37.54%) Free: 39.98 MB (62.46%)
[root@centreon plugins]#

Check-Cisco-Traffic

Le plus important, c’est la surveillance du trafic de votre infrastructure. A l’aide des graphs Centreon, vous avez la possibilité de visualiser et d’analyser le trafic réseau de votre organisation. C’est une source importante pour évaluer les performances de votre réseau, détecter les attaques DDoS (trafic élevé, saturation de la bande passante) …etc.

On peut commencer par afficher les interfaces disponibles :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --mode=list-interfaces --oid-filter=ifDesc --oid-display=ifDesc
List interfaces:
...
'TenGigabitEthernet1/4/8' [speed = 10000, status = up, id = 11]
'TenGigabitEthernet1/4/9' [speed = 10000, status = up, id = 12]
# 'GigabitEthernet2/3/1' [speed = 1000, status = up, id = 129]
'TenGigabitEthernet1/4/10' [speed = 10000, status = up, id = 13]
'GigabitEthernet2/3/2' [speed = 1000, status = up, id = 130]
'GigabitEthernet2/3/3' [speed = 1000, status = up, id = 131]
...
...
...
[root@centreon plugins]#

Choisissez ensuite l’interface réseau que vous souhaitez superviser. Ici, l’interface ‘GigabitEthernet2/3/1’ qui a pour l’ID = 129

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --mode=interfaces --interface=129 --add-traffic
OK: Interface 'Gi2/3/1' Traffic In : 723.54Kb/s (0.07%), Traffic Out : 57.07Kb/s (0.01%) | 'traffic_in'=723542.15b/s;;;0;1000000000 'traffic_out'=57069.81b/s;;;0;1000000000
[root@centreon plugins]#

Remarque : vous pouvez améliorer le résultat en rajoutant, la vitesse entrée/sortie, le seuil Warning/Critical…etc. A vous d’explorer le mode trafic en affichant de l’aide (–help) .

Check-Cisco-Stack

Supervision de l’état du StackWise :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --mode=stack --verbose
OK: Stack ring is redundant |
Member '5' state is ready [Role is 'member']
Member '3' state is ready [Role is 'member']
Member '2' state is ready [Role is 'member']
Member '1' state is ready [Role is 'master']
Member '4' state is ready [Role is 'member']
[root@centreon plugins]#

Check-Cisco-UpTime

Supervision du temps de fonctionnement :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --mode=uptime --verbose
OK: System uptime is: 1d 40m 10s | 'uptime'=7173610s;;;0;
[root@centreon plugins]#

Check-Cisco-ENV

Supervision de l’environnement (châssis). Ventilateurs, Alimentation, température…etc.

Check-FAN

Supervision des composants FAN :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=environment --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --component='fan' --verbose
OK: All 6 components are ok [6/6 fans]. |
Environment type: cat6000
Checking fans
fan 'chassis-1 Chassis Fan Tray 1' status is normal [instance: 11].
fan 'chassis-1 Power Supply 1 Fan' status is normal [instance: 12].
fan 'chassis-1 Power Supply 2 Fan' status is normal [instance: 13].
fan 'chassis-2 Chassis Fan Tray 1' status is normal [instance: 201].
fan 'chassis-2 Power Supply 1 Fan' status is normal [instance: 202].
fan 'chassis-2 Power Supply 2 Fan' status is normal [instance: 203].
[root@centreon plugins]#

Check-PSU

Supervision des alim :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=environment --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --component='psu' --verbose
OK: All 22 components are ok [22/22 psus]. |
Environment type: cat6000
Checking power supplies
Power supply 'chassis-1 Power Supply 1, WS-CAC' status is normal [instance: 11] [source: internalRedundant]
Power supply 'chassis-1 Power Supply 2, WS-CAC' status is normal [instance: 12] [source: internalRedundant]
...
...
Power supply 'Chassis 2 Enhanced 9-slot Fan Tray 1' status is on [instance: 15]
Power supply 'Chassis 2 AC power supply, 6000 watt 1' status is on [instance: 18]
...
...
Power supply 'Chassis 2 VS-S720-10G 5 ports Supervisor Engine 720 10GE Rev. 3.4' status is on [instance: 2000]
Power supply 'Chassis 2 WS-X6748-GE-TX CEF720 48 port 10/100/1000mb Ethernet Rev. 2.5' status is on [instance: 4000]
...
...
Power supply 'Chassis 2 WS-X6716-10GE CEF720 16 port 10GE Rev. 1.2' status is on [instance: 7000]
Power supply 'Chassis 1 Enhanced 9-slot Fan Tray 1' status is on [instance: 8013]
Power supply 'Chassis 1 AC power supply, 3000 watt 1' status is on [instance: 8016]
Power supply 'Chassis 1 AC power supply, 3000 watt 2' status is on [instance: 8027]
Power supply 'Chassis 1 VS-S720-10G 5 ports Supervisor Engine 720 10GE Rev. 4.3' status is on [instance: 9000]
Power supply 'Chassis 1 WS-SVC-NAM-1 3 ports Network Analysis Module Rev. 4.2' status is on [instance: 10000]
...
...
[root@centreon plugins]#

Check-Temp

Supervision de la température :

[root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=environment --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --component='temperature' --verbose
OK: All 58 components are ok [58/58 temperatures]
Environment type: cat6000
Checking temperatures
Temperature 'Chassis 1 VTT 1 outlet temperatu' status is normal [instance: 140040] [value: 37 C]
Temperature 'Chassis 1 VTT 2 outlet temperatu' status is normal [instance: 140050] [value: 29 C]
Temperature 'Chassis 1 VTT 3 outlet temperatu' status is normal [instance: 140060] [value: 32 C]
Temperature 'Chassis 1 module 1 outlet temper' status is normal [instance: 160170] [value: 38 C]
Temperature 'Chassis 1 module 1 inlet tempera' status is normal [instance: 160171] [value: 35 C]
...
...
Temperature 'Chassis 1 module 5 RP outlet tem' status is normal [instance: 200210] [value: 31 C]
Temperature 'Chassis 1 module 5 RP inlet temp' status is normal [instance: 200211] [value: 31 C]
Temperature 'Chassis 2 VTT 1 outlet temperatu' status is normal [instance: 240070] [value: 35 C]
Temperature 'Chassis 2 VTT 2 outlet temperatu' status is normal [instance: 240080] [value: 28 C]
Temperature 'Chassis 2 VTT 3 outlet temperatu' status is normal [instance: 240090] [value: 32 C]
Temperature 'Chassis 2 module 3 outlet temper' status is normal [instance: 260350] [value: 48 C]
Temperature 'Chassis 2 module 3 inlet tempera' status is normal [instance: 260351] [value: 27 C]
...
...
Temperature 'Chassis 2 module 5 RP outlet tem' status is normal [instance: 300370] [value: 29 C]
Temperature 'Chassis 2 module 5 RP inlet temp' status is normal [instance: 300371] [value: 30 C]
[root@centreon plugins]#

Check-Modules

Supervision des modules :

[root@hcentreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=environment --hostname=SW-HOST --snmp-community=pixelabs --snmp-version=2 --component='module' --verbose
OK: All 25 components are ok [25/25 modules]. |
Environment type: cat6000
Checking modules
Module 'Chassis 2 WS-X6716-10GE CEF720 16 port 10GE Rev. 1.1' status is ok [instance: 1000]
Module 'Chassis 2 WS-F6700-DFC3C Distributed Forwarding Card 3 Rev. 1.4' status is ok [instance: 1009]
...
Module 'Chassis 2 VS-F6K-PFC3C Policy Feature Card 3 Rev. 1.2' status is ok [instance: 2018]
Module 'Chassis 2 WS-X6748-GE-TX CEF720 48 port 10/100/1000mb Ethernet Rev. 2.5' status is ok [instance: 4000]
...
...
Module 'Chassis 1 WS-F6700-CFC Centralized Forwarding Card Rev. 2.1' status is ok [instance: 12007]
Module 'Chassis 1 WS-X6716-10GE CEF720 16 port 10GE Rev. 1.1' status is ok [instance: 13000]
...
Module 'Chassis 1 WS-F6700-DFC3C Distributed Forwarding Card 3 Rev. 1.6' status is ok [instance: 14009]
[root@centreon plugins]#

Supervision Switch Cisco (UI)

Connectez-vous à l’interface web de Centreon. Nous allons mettre en place des modèles de services/hôtes afin de nous faciliter un peu la vie pour les futures switch à superviser. Commençons d’abord par la création des commandes nécessaires.

Commande #1 : Check-Cisco-Systems

Cette commande sera utilisée par les services UPTIME et STACK.

Allez dans Configuration > Commandes >

  • Cliquez sur le bouton vert Ajouter
  • Nom de commande : Check-Cisco-Systems
  • Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ $_SERVICEOPTION$
  • Ajoutez une description à vos macros.

Create Command Cisco Centreon

  • Sauvegarder

Remarque : $USER2$= chemin des plugins Centreon. /usr/lib/centreon/plugins. Paramétrable (ainsi que les macros personnalisés) depuis : Configuration > Collecteurs > Ressources

Commande #2 : Check-Cisco-Traffic

Cette commande sera utilisée par le service TRAFFIC. Allez dans Configuration > Commandes >

  • Cliquez sur le bouton vert Ajouter
  • Nom de commande : Check-Cisco-Traffic
  • Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --hostname=$HOSTADDRESS$ --snmp-version=$_HOSTSNMPVERSION$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --mode=$_SERVICEMODE$ --interface=$_SERVICEINTERFACE$ --warning-in-traffic=$_SERVICEWARNINGIN$ --warning-out-traffic=$_SERVICEWARNINGOUT$ --critical-in-traffic=$_SERVICECRITICALIN$ --critical-out-traffic=$_SERVICECRITICALOUT$ $_SERVICEOPTION$

Check Traffic Interface Switch

  • Modèle de graphique : Traffic
  • Sauvegarder

Commande #3 : Check-Cisco-CPU

Cette commande sera utilisée par le service CPU. Allez dans Configuration > Commandes >

  • Cliquez sur le bouton vert Ajouter
  • Nom de commande : Check-Cisco-CPU
  • Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --warning-average=$_SERVICEWARNING$ --critical-average=$_SERVICECRITICAL$ $_SERVICEOPTION$
  • Modèle de graphique : Ne rien mettreIl faut penser à mettre le bon modèle graphique (cpu) lors de la création de service pour hôte.
  • Sauvegarder

********************UPDATE 1 – 29/07/2020********************

Commande #4 : Check-Cisco-Memory

Cette commande sera utilisée par le service MEMORY. Allez dans Configuration > Commandes >

  • Cliquez sur le bouton vert Ajouter
  • Nom de commande : Check-Cisco-Memory
  • Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --warning-usage=$_SERVICEWARNING$ --critical-usage=$_SERVICECRITICAL$ $_SERVICEOPTION$
  • Modèle de graphique : Ne rien mettre. Il faut penser à mettre le bon modèle graphique (memory) lors de la création de service pour hôte.
  • Sauvegarder

Commande #5 : Check-Cisco-ENV

Cette commande sera utilisée par les services FAN, PSU, TEMPERATURE, MODULES…etc. Allez dans Configuration > Commandes >

  • Cliquez sur le bouton vert Ajouter
  • Nom de commande : Check-Cisco-ENV
  • Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$HOSTADDRESS$ --snmp-community=$_HOSTSNMPCOMMUNITY$ --snmp-version=$_HOSTSNMPVERSION$ --component=$_SERVICECOMPONENT$ $_SERVICEOPTION$
  • Sauvegarder

C’est terminé pour la commandes.

Je m’arrête ici les amis. J’aimerais détailler la partie sur la création des modèles services/hôtes et la supervision des switch. Je préfère donc réaliser ce projet en deux parties.

Voir la deuxième partie : supervision-switch-cisco-centreon-partie-2-2/

Si vous aimez l’article, n’hésitez pas à lâcher une étoile ou deux (ou 5 hein :p ) ! cela m’encourage beaucoup 🙂

Bonne journée et à très bientôt.

Supervision Systèmes & Réseaux

Voir également mes projets sur la supervision : /supervision

3 Responses

  1. supastoff dit :

    Bonjour,

    Les commandes CPU et Memory restent à l’état UNKNOWN dans centreon web, alors que si je la passe en CLI directement de Centos j’obtiens les résultats.

    • sysadmin dit :

      Salut,
      C’est quoi l’erreur exactement sur Centreon Web ?
      Assures toi que tu as bien configuré SNMP depuis Centreon web (et sur le serveur que tu supervise)
      -sysadmin.

  2. sysadmin dit :

    Question posée par mail.
    Je souhaite récupérer l’état du duplex de mes switchs Cisco (halfduplex ou fullduplex) via un service ?

    Réponse : Voici un exemple :
    Le mode list-interface permet de lister simplement les interfaces disponible sur le switch :

    Interface 'GigabitEthernet1/0/8' Status : up (admin: up)
    ...
    Interface 'GigabitEthernet4/0/42' Status : up (admin: up)
    Interface 'GigabitEthernet4/0/43' Status : up (admin: up)
    ...

    Je vais donc vérifier si l’interface 'GigabitEthernet1/0/8' est en fullduplex, sinon, l’alerte CRITICAL se déclenche (si elle est en halfduplex).
    Voici donc la commande finale :

    [root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=interfaces --hostname=sw-cisco --snmp-community=pub --snmp-version=1 --oid-filter=ifDesc --oid-display=ifDesc --interface='^GigabitEthernet1/0/8$' --name --add-duplex-status --critical-status='%{admstatus} eq "up" and (%{opstatus} ne "up" or %{duplexstatus} eq "halfDuplex")'
    OK: Interface 'GigabitEthernet1/0/8' Status : up (admin: up) (duplex: fullDuplex) |
    [root@centreon plugins]#

    Explication :
    --interface='^GigabitEthernet1/0/8$' : ‘^….$’ = ‘commence strictement par….se termine strictement par’
    Si tu veux checker toutes les interfaces commençant par Gigabit, tu supprimes le ‘$’ à la fin.

    --critical-status='%{admstatus} eq "up" and (%{opstatus} ne "up" or %{duplexstatus} eq "halfDuplex")' = si l’interface est en halfDuplex, l’alerte CRITICAL se déclenche, sinon, c’est Ok.

    Si on imagine le contraire, je vérifie si l’interface est en halfDuplex, sinon, l’alerte CRITICAL se déclenche :

    [root@centreon plugins]# ./centreon_plugins.pl --plugin=network::cisco::standard::snmp::plugin --mode=interfaces --hostname=sw-cisco --snmp-community=pub --snmp-version=1 --oid-filter=ifDesc --oid-display=ifDesc --interface='^GigabitEthernet1/0/8$' --name --add-duplex-status --critical-status='%{admstatus} eq "up" and (%{opstatus} ne "up" or %{duplexstatus} eq "fullDuplex")'
    CRITICAL: Interface 'GigabitEthernet1/0/8' Status : up (admin: up) (duplex: fullDuplex) |

    J’ai ajouté la commande dans l’article (partie Cisco) pour centreon-web.

    Bonne journée.
    -Pixel.

Laisser un commentaire

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