NAGIOS – Supervision des équipements réseau

Supervision des équipements réseau

Le seul moyen pour contrôler activement n’importe quel équipement réseau est le protocole SNMP. Dans le chapitre Supervision avec SNMP – Installation et configuration de l’agent SNMP nous avons vu comment configurer un agent SNMP sur un switch Cisco. Il ne reste que la configuration de Nagios pour contrôler cet équipement. Plusieurs plugins existent pour contrôler un équipement réseau, à savoir check_snmpcheck_ifoperstatuscheck_ifstatus et check_mrtgtraf.

Dans cette partie, nous souhaitons configurer Nagios pour vérifier les informations suivantes :

  • l’état d’un port réseau (UP ou Down) ;

  • l’utilisation de bande passante d’une interface réseau.

1. Contrôle l’état d’un port réseau

Pour contrôler l’état d’un port, nous pouvons utiliser l’un des deux plugins check_ifstatus ou check_ifoperstatus qui sont fournis dans les plugins officiels.

Le plugin check_ifstatus permet de vérifier toutes les interfaces d’un équipement réseau d’un seul coup. L’utilisation de ce plugin est simple, il ne nécessite que l’adresse IP ou le nom DNS de l’hôte et la communauté SNMP configurée sur l’hôte :

./check_ifstatus -C <READ COMMUNITY> -H <HOSTNAME>

Voici un exemple où on utilise le plugin check_ifstatus :

./check_ifstatus -C Nagios@Cisco! -H 192.168.3.254 
 
CRITICAL: host ’172.16.3.254’, interfaces up: 43, down: 1, dormant: 0, excluded:
0, unused: 0<BR>Voice Over IP Peer: 107: down <BR>  
|up=43,down=1,dormant=0,excluded=0,unused=0

La commande retourne un résultat critique car il existe un port Down qui est Voice Over IP Peer: 107.

Si vous voulez contrôler chaque port à part, le plugin check_ifoperstatus permettra le suivi opérationnel de l’état d’une interface réseau spécifique sur l’hôte cible. Le plugin exige de préciser l’index de l’interface  interroger avec l’argument -K :

./check_ifoperstatus -k <IF_KEY> -H <HOSTNAME> [-C <community>]

Voici un exemple où on utilise le plugin check_ifoperstatus :

./check_ifoperstatus -k 1001 -C Nagios@Cisco!  -H 192.168.3.254 
 
OK: Interface FastEthernet0/1 (index 10001) is up.

Maintenant, nous allons reprendre les deux appels précédents  en commandes Nagios.

# commande ifstatus 
define command { 
   command_name       check_ifstatus 
   command_line       $USER1$/check_ifstatus -H $HOSTADDRESS$ -C  
$ARG1$ 
}
# commande ifoperstatus 
define command{ 
   command_name      check_ifoperstatus 
   command_line      $USER1$/check_ifoperstatus -H $HOSTADDRESS$ -C 
 $ARG1$ -k $ARG2$ 
} 

2. Contrôle de la bande passante

Parmi les solutions utilisées pour superviser la bande passante des switches et routeurs avec Nagios, il existe l’outil MRTG (Multi Router Trafic Grapher) avec le plugin check_mrtgtraf. MRTG est un logiciel écrit en perl, libre sous licence GNU GPL et fonctionne sur Unix/Linux ainsi que sur Windows. MRTG utilise SNMP pour récupérer les informations depuis les équipements puis il présente ces informations sous forme de graphes.

L’installation de MRTG est très simple, elle se fait à travers une seule commande :

yum install mrtg

Ou :

apt-get install mrtg

Le paquet d’installation de Nagios dans le répertoire sample-config/ contient un fichier de configuration de MRTG nommé mrtg.cfg. Ce fichier contient des exemples vous donnant l’idée de départ. Il suffit de copier ce fichier vers le répertoire /etc/ et d’ajouter au début de ce fichier la directive WorkDir qui contient le chemin de répertoire de travail de MRTG.

WorkDir: /var/www/mrtg

Afin de générer les graphes automatiquement, nous allons configurer une tâche cron pour lancer automatiquement le binaire /usr/bin/mrtg toutes les 5 minutes.

*/5 * * * * /usr/bin/mrtg  /etc/mrtg.cfg

Pour accéder aux graphes générés par une interface web à travers un navigateur, il faut générer un fichier index.html en utilisant l’utilitaire indexmaker.

indexmaker --output /var/www/mrtg/index.html /etc/mrtg.cfg

Maintenant, nous allons nous intéresser à l’intégration de l’outil MRTG avec Nagios. L’idée consiste à récupérer les informations capturées par MRTG sur le trafic réseau et les comparer aux seuils définis. Pour cette raison, nous allons utiliser le plugin check_mrtgtraf qui permet de vérifier le trafic entrant et sortant d’un routeur, switch, etc. enregistré dans un journal MRTG.

D’une manière générale, voici la syntaxe de la commande qui fait appel au plugin check_mrtgtraf :

./check_mrtgtraf -F <log_file> -a <AVG | MAX> -v <variable>  
                 -w <warning_pair>-c <critical_pair> 
                [-e expire_minutes]  [-t timeout] [-v]

Voyons la signification de chaque option disponible avec ce plugin :

  • -h, –help : cette option permet d’afficher l’écran d’aide détaillée.

  • -V, –version : cette option permet d’afficher les informations sur la version du plugin.

  • -F, –filename : cette option spécifie le chemin vers le fichier log de MRTG.

  • -e, –expires : cette option spécifie la période de temps en minutes après laquelle les données seront considérées expirées.

  • -a, –aggregation : cette option spécifie le type de statistique sur la bande passante à récupérer depuis les fichiers logs de MRTG (la moyenne AVG ou le maximum MAX).

  • -w, –warning : cette option spécifie le seuil d’avertissement en paire <entrant>, <sortant>.

  • -c, –critical : cette option spécifie le seuil critique en paire <entrant>, <sortant>.

Il reste à créer une commande et un service sur Nagios pour commencer la supervision de la bande passante.

define command{ 
   command_name       check_mrtgtraf 
   command_line       $USER1$/check_mrtgtraf -F $ARG1$ -w $ARG2$ -c 
 $ARG3$  -a $ARG4$  
}

Voici un exemple de service qui utilise la commande définie ci-dessus. Ce service sert à contrôler la bande passante de l’interface FastEthernet0/1 d’un switch Cisco. Le fichier de log de MRTG est stocké dans /var/lib/mrtg/192.168.3.254_1.log.

define service{ 
    use                    generic-service 
    host_name              Switch-Cisco-01 
    service_description    Bande Passante Interface FastEthernet0/1 
    check_command          check_mrtgtraf!   /var/lib/mrtg/192.168.3.254_1.log! 
    500000,1000000!3000000,5000000!AVG! 
}

L’argument AVG indique au plugin qu’il doit utiliser les valeurs basées sur la moyenne de la bande passante. Les arguments 500000,1000000 sont les seuils d’avertissement (en octets) pour le taux de trafic entrant et sortant respectivement.  Les arguments 3000000,5000000 sont des seuils critiques (en octets) pour le taux de trafic entrant et sortant respectivement.

Une fois que vous avez enregistré les fichiers de configurations et redémarré le service Nagios, vous commencez la supervision de trafic réseau.