Notifications


Introduction

J'ai reçu de nombreuses questions sur le fonctionnement des notifications. Ce document essaiera d'expliquer exactement quand et comment les notifications pour les hôtes et les services sont émises, et qui les reçoit.

Index

Quand y a t'il notification ?
Qui reçoit la notification ?
Quels sont les filtres appliqués avant l'émission d'une notification ?
Pourquoi aucune méthode de notification n'est-elle intégrée directement à Nagios ?
Ressources utiles

Quand y a t'il notification ?

La décision d'émettre des notifications est prise dans le cadre du contrôle de service et du contrôle d'hôte. Les notifications d'hôte et de service ont lieu dans les cas suivants ...

Qui est notifié ?

Chaque définition de service comprend une option <contactgroups> qui définit quels groupes de contacts recevront les notifications de ce service. Chaque groupe de contacts peut contenir un ou plusieurs contacts individuels. Quand Nagios émet une notification de service, il notifie chaque contact membre d'un des groupes de contacts spécifiés dans l'option <contactgroups> de la définition du service. Nagios est conscient qu'un contact peut être membre de plus d'un groupe, donc il commence par supprimer les doublons.

Chaque hôte peut faire partie d'un ou plusieurs groupes d'hôtes. Chaque groupe d'hôtes comprend une option <contactgroups> qui détermine les groupes de contacts qui recevront les notifications pour les hôtes de ce groupe d'hôtes. Quand Nagios émet une notification d'hôte, il notifie les contacts qui sont membres de tous les groupes de contacts à notifier, tels que définis dans tous les groupes d'hôtes dont cet hôte fait partie. Nagios supprime les doublons avant toute chose.

Quels filtres doivent être appliqués avant l'émission d'une notification ?

Le simple fait qu'une notification d'hôte ou de service puisse être émise ne signifie pas que des contacts vont la recevoir. Il y a plusieurs filtres qu'une notification doit traverser avant d'être émise. Même alors, des contacts peuvent ne pas la recevoir si leurs filtres de notification ne le permettent pas. Voyons en détail les filtres à traverser...

Filtre du mode de programme :

Le premier filtre à traverser est un test pour savoir si les notifications ont activées au niveau global pour Nagios ou non. Ceci est spécifié par la directive enable-notifications dans le fichier de configuration principal, mais ce peut être modifié en cours d'exécution via l'intreface web. Si les notifications sont désactivés de manière globale, aucun notification ne sera envoyée- point final . Si elles sont activées, il y a encore d'autres tests à passer avant .

Filtres d'hôte et de service :

Le premier filtre des notifications d'hôte et de service consiste à vérifier que l'hôte ou le service n'est pas dans une période d'arrêt planifié. Si c'est le cas, personne n'est notifié. S'il n'est pas dans une période d'arrêt planifié, la notification est passée au deuxième filtre.

Le deuxième filtre des notifications d'hôte et de service consiste à vérifier si l'hôte ou le service oscille (à condition que vous ayez activé la détection d'oscillation). Si le service ou l'hôte oscille, personne n'est notifié. Sinon, la notification est passée au filtre suivant.

Le troisième filtre des notifications d'hôte et de service à traverser est formé par les options de notification. Chaque définition de service contient des paramétres qui déterminent si les notifications doivent être envoyées pour les états "warning(alerte)", "critical(critique)", et "recovery (rétablissement)". De la même manière, chaque définition d'hôte contient des paramétres qui déterminent si les notifications doivent être envoyées quand l'hôte s'arrête, devient inaccessible, ou se rétablit. Si la notification d'hôte ou de service est bloquée par ces paramétres, personne n'est notifié. Dans le cas contraire, la notification est passée au filtre suivant... Note : les notifications concernant les rétablissement d'hôtes et de services ne sont émises que si une notification a été envoyée à l'apparition du problème. Cela n'a pas de sens de recevoir une notification de rétablissement pour un problème dont vous n'aviez pas connaissance...

Le quatrième filtre des notifications d'hôte et de service à traverser concerne la période. Chaque définition d'hôte et de service a un paramétre <notification_period> qui spécifie quelle période contient les heures de notification valides pour cet hôte ou service. Si le moment où la notification apparaît n'est pas dans une plage valide de la période spécifiée, personne n'est contacté. Dans le cas contraire, la notification est passée au filtre suivant... Note : si le filtre de période n'est pas traversé, Nagios réordonnancera la prochaine notification pour l'hôte ou le service (s'il est dans un état non-OK) dans la prochaine plage de temps valide pour la période. Cela permet de s'assurer que les contacts sont notifiés des problèmes dès que possible quand arrive le prochain moment valide de la période.

Le dernier jeu de filtres d'hôte et de service à traverser est conditionnée par deux éléments : (1) une notification a déjà été émise par le passé concernant un problème avec l'hôte ou le service, et (2) l'hôte ou le service est resté dans le même état non-OK depuis la dernière notification. Si ces deux conditions sont réunies, Nagios vérifie que le temps écoulé depuis l'émission de la dernière notification est supérieur ou égal à la valeur spécifiée par l'option <intervalle_de_notification> dans la définition de l'hôte ou du service. Si le temps écoulé depuis la dernière notification est insuffisant, personne n'est contacté. Si un temps suffisant s'est écoulé, ou si les deux conditions de ce filtre n'ont pas été réunies, la notification sera émise ! Le fait qu'elle parvienne ou non aux contacts individuels relève d'un autre jeu de filtres...

Filtres de contact :

A ce point la notification a traversé le filtre du mode de programme et tous les filtres d'hôte et de service, et Nagios commence à envoyer des notifications à tous ceux qui doivent en recevoir. Cela signifie-t'il que tous les contacts vont recevoir la notification ? Non ! Chaque contact possède son propre jeu de filtres que la notification doit passer avant qu'il ne la reçoive. Note : les filtres de contact sont propres à chaque contact et n'affectent pas la façon qu'ont les autres contacts de recevoir des notifications.

Le premier filtre à passer pour chaque contact concerne les paramétres de notification. Chaque définition de contact comprend des paramétres qui déterminent si les notifications de service peuvent être émises pour les états alerte, critique, et rétablissement. Chaque définition de contact contient également des options qui déterminent si les notifications d'hôte peuvent être émises lorsqu'un hôte passe hors fonction, devient inaccessible, ou se rétablit. Si la notification d'hôte ou de service ne remplit pas ces conditions, les contacts ne recevront pas de notification. Dans le cas contraire, la notification est passée au prochain filtre... Note : Les notifications de rétablissement d'hôte ou de service ne sont émises que si une notification a été précédemment émise pour ce problème. Cela n'aurait aucun sens de recevoir une notification de rétablissement concernant un problème dont vous n'avez jamais reçu la notification...

Le dernier filtre à passer pour chaque contact concerne la période. Chaque définition de contact comprend un paramétre <notification_period> qui spécifie la période durant laquelle on peut envoyer des notification à ce contact. Si l'heure à laquelle la notification est faite n'est pas comprise dans la plage de temps de la période spécifiée, le contact ne recevra pas la notification. Dans le cas contraire, le contact la reçoit !

Pourquoi aucune méthode de notification n'est-elle intégrée directement à Nagios ?

On m'a plusieurs fois demandé pourquoi les méthodes de notification (pager, etc.) ne sont pas directement intégrées au code de Nagios. La réponse est simple - cela n'aurait pas beaucoup de sens. Nagios n'est pas prévu pour être une application "tout-en-un". Si les contrôles de service étaient intégrés dans le cœur de Nagios, il serait très difficile pour les utilisateurs d'ajouter de nouvelles méthodes de contrôle, de modifier celles qui existent, etc. Les notifications fonctionnent de la même manière. Il y a mille et une façon d'envoyer des notifications et de nombreux modules ont déjà été développés pour faire le sale boulot, alors pourquoi réinventer la roue, et vous limiter à un pneu de vélo ? Il est bien plus facile de déléguer à une application externe (i.e. un simple script ou un système de messagerie complet) ce travail complexe. Des modules de messagerie qui peuvent traiter les notifications pour les pagers ou les téléphones portables sont listés ci-dessous, dans la section de ressources.

Ressources utiles

Si vous voulez envoyer une notification alphanumérique à votre pager ou à votre téléphone portable via email, c'est à vous de décider comment vous allez faire. Pour faire cela, il faut installer les logiciels nécessaires et configurer les commandes de notifications avant de pouvoir les utiliser. Voici quelques méthodes utilisables:

En fait, tout ce que vous pouvez taper en ligne de commande peut être utilisé comme une commande de notification.

Si vous voulez envoyer une notification alphanumérique à votre pager ou à votre téléphone portable via email, vous trouverez peut-être les informations suivantes utiles. Voici quelques hyperliens vers divers fournisseurs de service de messagerie, qui expliquent comment envoyer des messages alphanumériques aux pagers et aux téléphones...

Si vous cherchez à envoyer des messages à votre pager ou à votre téléphone portable sans email, jetez un coup d'œil à ces applications. Elles peuvent être utilisées en conjonction avec Nagios pour envoyer une notification via un modem quand un problème arrive. De cette façon, vous n'êtes pas dépendant de l'email pour émettre des notifications (gardez à l'esprit que l'email peut *ne pas* fonctionner s'il y a des problèmes réseau). Je n'ai pas personnellement essayé ces applications, mais certains m'ont dit l'avoir fait avec succès...

Si vous désirez une méthode atypique, vous pouvez essayer de vous amuser avec des alertes audio. Si vous voulez des alertes audio sur l'hôte Nagios (avec voix synthéthisée), essayez Festival [Anglais]. Si vous voulez les recevoir sur une autre machine, testez le Network Audio system (NAS) [Anglais]et rplay [Anglais].

Enfin, il y a un espace dans la section des contributions de la page d'accueil de Nagios [Anglais] pour les scripts de notification réalisés par des utilisateurs. Vous pouvez y trouver votre bonheur, dans la mesure où ils gèrent le sale boulot nécessaire à l'émission de notifications alphanumériques...