Chapitre 35. Notifications

Introduction

Contacts Objects 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.

Les escalades de notifications sont expliquées ici.

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 …

  • Lors d'un changement d'état HARD. Pour plus d'informations sur les états et les changement d'état HARD, lisez ceci.

  • Lorsqu'un hôte ou un service demeure dans un état hard et non-OK, et que le délai défini dans le paramètre notification_interval de la définition de l'hôte ou du service est écoulé depuis que la dernière notification a été émise (pour ce même hôte ou service).

Qui est notifié ?

Chaque définition de service comprend un paramètre contact_groups 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 le paramètre 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 avant toute chose.

Quels sont les filtres à traverser avant qu'une notification ne soit émise ?

Le simple fait qu'une notification d'hôte ou de service doit être émise ne signifie pas que des contacts vont la recevoir. Il y a plusieurs filtres qu'une notification doit traverser avant d'être jugée valable pour l'émission. 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 global au programme :

Le premier filtre que les notifications doivent traverser est un test pour savoir si les notifications sont activées au niveau global du programme ou non. Ceci est spécifié par le paramètre enable_notifications du fichier de configuration principal, mais peut être modifié en cours d'exécution via l'interface web. Si les notifications sont désactivées de manière globale, aucune notification ne sera envoyée - point final. Si elles sont activées, il y a encore d'autres tests à réussir…

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é (scheduled downtime). 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 filtre suivant. Notez également que les notifications de services sont supprimées si l'hôte auquel est associé le service est dans une période d'arrêt planifié.

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 à traverser pour les notifications d'hôte et de service est formé par les paramètres 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, CRITICAL, et RECOVERY. 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 [NdT: état DOWN], devient inaccessible [UNREACHABLE], ou se rétablit [RECOVERY]. 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…

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 comporte 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…

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 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 le paramètre notification_interval de 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 traverser avant qu'ils ne la reçoivent.

Les filtres de contact sont propres à chaque contact et n'affectent pas la façon dont les autres contacts reçoivent les 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 WARNING, CRITICAL, et RECOVERY. Chaque définition de contact contient également des options qui déterminent si les notifications d'hôtes peuvent être émises lorsqu'un hôte passe dans les états DOWN, UNREACHABLE, ou RECOVERY. 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…

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 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 notifications à 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 !

Moyens de notifications

Nagios peut vous envoyer des notificaitons sur les problèmes et retours à la normale d'a peu près toutes les façons que vous voulez: email, pager, téléphone (SMS), messageries instantanées Yahoo, ICQ, ou MSN, alertes sonores, décharge électrique, etc. La façon dont est envoyée les notifications dépend des commandes de notification qui sont définies dans les fichiers de définitions d'objets.

Si vous installez Nagios en suivant le guide de démarrage rapide, celui-ci devrait être configuré pour envoyer des emails. Vous pouvez voir la commande utilisée pour la notification par email en visualisant le contenu du fichier suivant: /usr/local/nagios/etc/objects/commands.cfg.

Les méthodes spécifiques de notification (pager, etc.) ne sont pas directement intégrées au code de Nagios parce que cela n'a pas 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çons 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 contenter d'un pneu de vélo ? Il est bien plus facile de déléguer à une application externe (c.-à-d. 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 des ressources.

Macro de type de notification

Lorsque vous bricolez vos commandes de notification, vous devez prendre en compte le type de notification qui se présente. La macro $NOTIFICATIONTYPE$ contient une chaîne de caractéres qui identifie précisément cela. Le tableau ci-dessous liste les valeurs possibles de cette macro et leur description :

Valeur

Description

PROBLEM

Un service ou un hôte vient de passer (ou est encore) dans un état dénotant un problème. S'il s'agit d'une notification de service, cela signifie que le service est dans un état WARNING, UNKNOWN ou CRITICAL. Si c'est une notification d'hôte, cela signifie que l'hôte est dans l'état DOWN ou UNREACHABLE.

RECOVERY

Un service ou un hôte s'est rétabli. S'il s'agit d'une notification de service, cela signifie que le service vient de retourner dans l'état OK. Si c'est une notification d'hôte, cela signifie que l'hôte vient de reprendre l'état UP.

ACKNOWLEDGEMENT

Cette notification est liée à l'acquittement d'un problème d'hôte ou de service. Les notifications d'acquittement sont générées via l'interface web par les contacts de l'hôte ou du service concerné.

FLAPPINGSTART

L'hôte ou le service vient de commencer à osciller.

FLAPPINGSTOP

L'hôte ou le service vient de s'arrêter d'osciller.

FLAPPINGDISABLED

L'hôte ou le service vient de s'arrêter d'osciller parce que la détection d'oscillation a été désactivée.

DOWNTIMESTART

L'hôte ou le service vient d'entrer dans une période de maintenance planifiée. Les notifications suivantes seront supprimées.

DOWNTIMESTOP

L'hôte ou le service vient de sortir d'une période de maintenance planifiée. Les notifications de problèmes peuvent donc reprendre.

DOWNTIMECANCELLED

La période de maintenance planifiée pour l'hôte ou le service vient d'être annulée. Les notifications de problèmes peuvent donc reprendre.

Ressources utiles

Il y a bien des moyens de configurer Nagios pour envoyer des notifications. C'est à vous de décider de la (des) méthode(s) que vous voulez utiliser. Une fois ce choix fait, vous devrez installer les logiciels nécessaires, et définir les commandes de notification dans vos fichiers de configuration avant de pouvoir les utiliser. Voici quelques méthodes de notification possibles :

  • Email

  • Pager

  • Téléphone (SMS)

  • Message WinPopup

  • Messageries instantanées Yahoo, ICQ, ou MSN

  • Alertes sonores

  • etc…

En gros, tout ce que vous pouvez faire en ligne de commande peut être adapté sous forme de commande de notification.

Si vous cherchez à envoyer des messages à votre pager ou à votre téléphone portable sans email, jetez un coup d'œil aux applications suivantes. 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…

  • Gnokii (logiciel SMS pour contacter des téléphones Nokia via le réseau GSM)

  • QuickPage (logiciel de pager alphanumérique)

  • Sendpage (logiciel de pager)

  • SMS Client (outil en ligne de commande pour envoyer des messages aux pagers et aux téléphones portables)

Si vous désirez une méthode atypique, vous pouvez essayer de vous amuser avec les alertes sonores. Si vous voulez des alertes sonores sur le serveur de supervision (avec voix synthéthique), essayez Festival [Anglais]. Si vous voulez les recevoir sur une autre machine, testez le Network Audio System (NAS) (NAS) [Anglais] et rplay [Anglais].