Introduction
A la différence de beaucoup d'autres outils de supervision, Nagios ne dispose pas de mécanisme interne pour vérifier l'état d'un service, d'un hôte, etc. A la place, il utilise des programmes externes (appelés plugins ou greffons) pour faire le sale boulot. Nagios exécutera un plugin dès qu'il a besoin de tester un service ou un hôte qui est supervisé. Les plugins font quelque chose (remarquez ce terme très général) pour exécuter le contrôle et ensuite envoient simplement le résultat à Nagios. Nagios analysera le résultat reçu du plugin et prendra les mesures nécessaires (lancer des gestionnaires d'événements, envoyer des notifications, etc).
L'image ci-dessous explique la façon dont les plugins sont séparés de la logique du programme principal de Nagios. Nagios lance les plugins qui vérifient alors les ressources ou services locaux ou distants, de quelque nature qu'ils soient. Lorsqu'ils ont achevé ce contrôle, ils envoient leur résultat pour exploitation à Nagios. Un schéma plus complexe sur la façon de travailler des plugins se trouve dans la documentation à la page contrôle de services passifs.
Avantages
Grâce à cette architecture, vous pouvez contrôler n'importe quoi, du moment que vous y pensez. Si vous pouvez automatiser le processus de contrôle de quelque chose, vous pouvez le superviser avec Nagios. Un certain nombre de plugins ont déjà été créés pour superviser les ressources élémentaires comme : la charge du processeur, l'espace libre du disque dur, les taux de retour des ping, etc. Si vous voulez superviser quelque chose d'autre, regardez la documentation sur la page comment écrire des plugins et "en voiture, Simone"! C'est simple!
Inconvénients
Le seul véritable inconvénient est que Nagios n'a aucune idée de ce que vous supervisez. Vous pouvez superviser des statistiques de trafic réseau, un taux d'erreur, la température d'une pièce, la tension de la CPU, la vitesse de rotation du ventilateur, la charge du processeur, l'espace libre du disque dur, voire la capacité de votre grille-pain intersidéral à vous préparer des tartines dorées à point... Nagios ne peut pas tracer des graphes des changements de valeur des ressources que vous supervisez. Il peut uniquement suivre leurs changements d'états. Seuls les plugins savent exactement ce qu'ils surveillent et comment le faire. Cependant, les plugin peuvent donner optionnellement des informations de performances liés aux données, en même temps que le statut. Ces informations peuvent être ensuite passées à des applications externes qui produiront des courbes à partir d'informations sépcifiques au service (c.a.d l'usage d'un disque, la charge d'un processeur). Vous trouverez plus d'informations à ce sujet là.
L'utilisation des plugins pour le contrôle des services
La correlation entre les plugins et le contrôle des services devrait être évidente. Quand Nagios a besoin de contrôler l'état d'un service particulier que vous avez défini, il exécutera le plugin spécifié dans l'argument <check_command> de la définition du service. Le plugin contrôlera l'état du service ou de la ressource donné et enverra le résultat à Nagios.
L'utilisation des plugins pour le contrôle des hôtes
L'utilisation des plugins pour le contrôle des hôtes peut être légèrement plus difficile à comprendre. Dans chaque définition d'hôte, vous pouvez utiliser l'argument <host_check_command> pour spécifier un plugin dont l'exécution vous donnera l'état de l'hôte. Les contrôles d'hôtes ne sont pas effectués régulièrement, mais seulement lorsque c'est nécessaire, généralement quand des problèmes avec un ou plusieurs des services associés à l'hôte arrivent.
Le contrôle des hôtes peut s'effectuer avec le même plugin que le contrôle des services. La seule vraie différence est l'importance des résultats du plugin. Si le résultat d'un plugin utilisé pour le contrôle d'un hôte est un état différent de OK, Nagios croira que l'hôte est 'down'.
Dans la plupart des cas, vous voudrez utiliser un plugin permettant de savoir si l'hôte peut être atteint par un ping (check_ping) , car c'est la méthode la plus utilisée pour savoir si un hôte est dans l'état 'up'. Cependant, si vous supervisez un grille-pain intersidéral, vous pourriez vouloir utiliser un plugin [Ndt: de préférence marseillais (check_paing :-) ] qui vérifiera si les résistances chauffantes fonctionnent lorsque la manette est descendue. Cela donnerait une bonne indication du statut du grille-pain, 'vivant' ou non.