Nagios et les greffons

Date: 8/10/2007 | Catégories: Open-source,Reseau | Tags: ,,,,,

Nagios est un outil libre de monitoring réseau souvent abordé dans ce blog. A mes yeux, la principale force de ce produit est sa grande modularité qui lui permet de s'adapter aux besoins des utilisateurs. Il est ainsi possible de surveiller un grands nombres de paramètres sur les machines de votre réseau. Nous allons dans ce billet évoquer les différentes méthodes que l'on peut utiliser pour récupérer ces informations.

Le protocole SNMP

C'est LE protocole pour la gestion de réseaux. Basée sur UDP (port 161), ce protocole de communication permet la remontée d'informations stockées dans la table MIB ("Management Information Base") des machines. SNMP se base sur une architecture client (Nagios) / serveur (la machine à surveiller). Il est donc nécessaire que vos machines soient compatibles SNMP. C'est le cas de la plupart des équipements réseaux de type routeurs, commutateurs Ethernet...

Sur les serveurs de type Linux, il suffit d'installer le daemon snmpd de la suite Open-SNMP. Sur Windows, il est également possible d'installer le daemon Net-SNMP. Enfin, Mac OS X inclue un daemon SNMP (UCD-SNMP), il suffit de suivre cette procédure pour l'activer.

Les plugins locaux

En standard, SNMP ne remonte que des informations systèmes basiques. Pour aller plus loin et surveiller des processus plus complexe, Nagios à mis en place un système de type plugins locaux. Un plugin local est un script localisé sur le serveur Nagios (/usr/lib/nagios/plugins sous Linux, c'est pour cela que l'on dit qu'il est local).

Ce script, lancé à la demande de Nagios, doit retourner un code dont la signification est la suivante:

  • Code 0: OK - Tout va bien
  • Code 1: WARNING - Alerte
  • Code 2: CRITICAL - Alerte critique
  • Code 3: UNKNOWN - Problème lors de l'exécution du plugin

En plus de ces codes, un plugins peut fournir d'autres informations (sous la forme d'une chaine de caractères) qui seront affichées à coté du statut de la machine.

Pour ceux que cela intéresse, j'ai écrit un petit tutoriel sur la création d'un plugin pour Nagios.

Les plugins actifs avec NRPE

A la différence des plugins locaux, le plugin NRPE permet l'exécution de plugins dit actifs directement sur les machines à surveiller.
L'architecture est la suivante (schéma trouvé sur le site officiel de Nagios):

Avec NRPE, la demande d'exécution d'un plugin actif est faite à l'initiative du serveur Nagios. La procédure interne est la suivante:

  • le serveur Nagios demande, via le client NRPE, l'exécution du plugin P sur la machine H
  • le daemon NRPE hébergé sur la machine H, reçoit la requête d'exécution du plugin P
  • le plugin P est exécuté sur la machine H
  • le daemon NRPE de la machine H envoie le résultat du plugin P au serveur Nagios
  • le serveur Nagios interprète les résultats retournés par le pugin P

Les plugins passifs avec NSCA

Comme l'on vient de le voir NRPE est déclenché à l'initiative du serveur Nagios. Ce mode de fonctionnement peut poser problème, par exemple dans le cas ou les machines à surveiller son derrières un réseau sécurisé par un Firewall ou si le processus à surveiller demande une fréquence d'exécution très courte. Le plugin NSCA répond à ce problème en proposant l'exécution de plugins passifs sur les machines à surveiller.

Ici, c'est donc le daemon NSCA qui va envoyer l'information au serveur Nagios. On peut comparer cette fonction à un TRAP SNMP.

et pour Windows ?

Les plugins NRPE et NSCA ne sont disponibles que pour Linux et Mac OS X. Si vous souhaitez surveiller des machines sous Windows (il vaut mieux les surveiller de prêt ces bêtes là...) , il va falloir utiliser le plugin NSClient.

Cliquez ici pour voir tous mes billets sur Nagios.