Checkmk
to checkmk.com
Important

This is a machine translation based on the English version of the article. It might or might not have already been subject to text preparation. If you find errors, please file a GitHub issue that states the paragraph that has to be improved.

1. Introduction

Notification icon.

Dans Checkmk, la notification signifie que les utilisateurs sont activement informés en cas de problèmes ou d’autres événements détectés par la supervision. Cela se fait le plus souvent par courrier électronique. Il existe toutefois de nombreuses autres méthodes, telles que l’envoi de SMS ou le transfert vers un système de tickets. Checkmk fournit une interface simple permettant d’écrire des scripts pour vos propres méthodes de notification.

Le point de départ de toute notification à un utilisateur est un événement signalé par le noyau de supervision. Nous appelons cela un « événement de supervision » dans cet article afin d’éviter toute confusion avec les événements traités par l’Event Console. Un événement de supervision est toujours lié à un ordinateur hôte ou à un service particulier. Les types d’événements de supervision possibles sont les suivants :

Checkmk utilise un système basé sur des règles qui vous permet de créer des notifications utilisateur à partir de ces événements de supervision — et cela peut également servir à mettre en œuvre des exigences très pointues. Une simple notification par courrier électronique — qui est tout à fait satisfaisante dans de nombreux cas — est néanmoins rapide à mettre en place.

Cet article traite principalement des principes de base et des questions générales concernant les notifications.

Si vous préférez passer directement à la mise en œuvre : Checkmk distingue généralement deux façons de définir les notifications. D'une part, les règles de notification sont définies de manière globale. Ces règles s'appliquent à tous les utilisateurs et groupes concernés en fonction de l'événement. La création de ces notifications est décrite dans la section « Configuration des notifications par règles ».

Parallèlement, chaque utilisateur a la possibilité de personnaliser ses paramètres de notification. Par exemple, une personne de contact peut désactiver l’envoi de notifications vers sa propre boîte de réception lorsqu’elle est en vacances. Vous pouvez découvrir comment mettre en œuvre ces paramètres personnels dans l’article Règles de notification personnelles.

2. Faut-il envoyer des notifications, ou pas (pour l'instant) ?

Les notifications sont en principe facultatives, et Checkmk peut tout à fait être utilisé efficacement sans elles. Certaines grandes organisations disposent d’une sorte de poste de contrôle où une équipe opérationnelle surveille en permanence l’interface Checkmk, rendant ainsi les notifications supplémentaires superflues. Si votre environnement Checkmk est encore en cours de mise en place, il convient de garder à l’esprit que les notifications ne seront utiles à vos collègues que s’il n’y a pas — ou seulement occasionnellement — de fausses alertes (faux positifs). Il faut d’abord maîtriser les valeurs seuils et tous les autres paramètres, afin que tous les états soient OK / UP — ou, en d’autres termes : que tout soit « vert ».

L'adhésion à ce nouveau système de supervision s'estompera rapidement si la boîte de réception est inondée chaque jour de centaines de courriers électroniques inutiles.

La procédure suivante s’est avérée efficace pour le réglage fin des notifications :

Étape 1 : Effectuez le réglage fin de la supervision, d’une part en corrigeant les problèmes réels récemment détectés par Checkmk et, d’autre part, en éliminant les fausses alertes. Procédez ainsi jusqu’à ce que tout soit « normalement » OK / UP. Consultez le Guide du débutant pour obtenir des recommandations visant à réduire les fausses alertes courantes.

Étape 2 : Ensuite, configurez les notifications pour qu’elles ne s’adressent qu’à vous-même. Réduisez le « bruit » causé par des problèmes sporadiques et de courte durée. Pour ce faire, ajustez davantage les valeurs seuils, utilisez l’analyse prédictive si nécessaire, augmentez le nombre de tentatives de vérification ou essayez les notifications différées. Et bien sûr, si de véritables problèmes en sont la cause, essayez de les maîtriser.

Étape 3 : Une fois que votre propre boîte de réception est relativement calme, activez les notifications pour vos collègues. Créez des groupes de contact efficaces afin que chaque contact ne reçoive que les notifications qui le concernent.

Ces procédures permettront de mettre en place un système fournissant des informations pertinentes qui contribuent à réduire les pannes.

3. Quand les notifications sont-elles générées et comment y réagir ?

3.1. Introduction

Une grande partie de la complexité du système de notification de Checkmk tient à ses nombreuses options de réglage, qui permettent d’éviter les notifications sans importance. Dans la plupart des cas, il s’agit de situations où les notifications sont déjà retardées ou supprimées lorsqu’elles surviennent. De plus, le noyau de supervision dispose d’une intelligence intégrée qui supprime certaines notifications par défaut. Nous souhaitons aborder tous ces aspects dans ce chapitre.

3.2. Périodes de maintenance planifiées

Icon of a scheduled downtime.

Lorsqu’un ordinateur hôte ou un service est en période de maintenance planifiée, les notifications de l’objet sont supprimées. C’est là — parallèlement à une évaluation correcte des disponibilités — la raison la plus importante justifiant la prise en compte des périodes de maintenance dans la supervision. Les détails suivants sont pertinents à cet égard :

  • Si un ordinateur hôte est signalé comme étant en période de maintenance planifiée, tous ses services seront alors automatiquement en période de maintenance planifiée, sans qu'il soit nécessaire de saisir une entrée explicite pour chacun d'entre eux.

  • Si un objet entre dans un état de problème pendant une période de maintenance planifiée, lorsque la période de maintenance prend fin comme prévu, ce problème sera notifié rétroactivement précisément à la fin de la période de maintenance.

  • Le début et la fin d’une période de maintenance constituent en eux-mêmes un événement de supervision qui fera l’objet d’une notification.

3.3. Périodes de notification

Icon of an inactive notification period.

Vous pouvez définir une période de notification pour chaque ordinateur hôte et chaque service lors de la configuration. Il s'agit d'une période de temps qui définit le délai dans lequel la notification doit être limitée.

La configuration s'effectue à l'aide de l'Monitoring Configuration > Notification period for hosts, ou respectivement du jeu de règles Notification period for services, que vous pouvez trouver rapidement via la recherche dans le menu de configuration. Un objet qui ne se trouve pas actuellement dans une période de notification sera signalé par une icône de pause grise Icon of an inactive notification period..

Les événements de supervision concernant un objet qui ne se trouve pas actuellement dans sa période de notification ne feront pas l'objet d'une notification. Ces notifications seront « réémises » lorsque la période de notification sera à nouveau active – si l'ordinateur hôte/le service se trouve toujours dans un état problématique. Seul l'état le plus récent fera l'objet d'une notification, même si plusieurs changements d'état de l'objet se sont produits pendant la période hors de la période de notification.

Par ailleurs, dans les règles de notification, il est également possible de limiter une notification à une période de temps spécifique. De cette manière, vous pouvez restreindre davantage les périodes. Toutefois, les notifications qui ont été ignorées en raison d’une règle comportant des conditions temporelles ne seront pas automatiquement répétées ultérieurement !

3.4. L'état de l'ordinateur hôte sur lequel un service est exécuté

Si un ordinateur hôte a complètement échoué, ou est au moins inaccessible à la supervision, ses services ne peuvent évidemment plus être surveillés. Les vérifications actives enregistreront alors en règle générale « CRIT » ou « UNKNOWN », car elles tenteront activement d’accéder à l’ordinateur hôte et rencontreront ainsi une erreur. Dans une telle situation, toutes les autres vérifications — soit la grande majorité — seront omises et resteront donc dans leur ancien état. Celles-ci seront signalées par l’icône « stale time » (Temps de surveillance) icon stale.

Il serait naturellement très fastidieux que toutes les vérifications actives se trouvant dans un tel état signalent leurs problèmes. Par exemple, si un serveur web n’est pas accessible — et que cela a déjà été signalé —, il ne serait pas très utile de générer en plus un courrier électronique pour chacun de ses services HTTP dépendants.

Afin de minimiser ce type de situations, le noyau de supervision ne génère en principe des notifications pour les services que si l’ordinateur hôte se trouve dans l’état « UP ». C’est également la raison pour laquelle l’accessibilité de l’ordinateur hôte est vérifiée séparément. Sauf configuration contraire, cette vérification s’effectue à l’aide d’un Smart Ping ou d’un ping.

CRE Si vous utilisez Checkmk Community (ou l’une des éditions commerciales avec un noyau du processeur Nagios), il peut néanmoins arriver, dans des cas isolés, qu’un problème d’ordinateur hôte génère une notification pour un service actif. La raison en est que Nagios considère que les résultats des vérifications d’ordinateur hôte restent valides pendant un court laps de temps. Même si seules quelques secondes se sont écoulées entre le dernier ping réussi vers le serveur et la vérification active suivante, Nagios peut encore considérer l’ordinateur hôte comme «UP» alors qu’il est en réalité «DOWN». En revanche, le Checkmk Micro Core (CMC) maintiendra la notification de service en mode «standby» jusqu’à ce que l’état de l’ordinateur hôte ait été vérifié, minimisant ainsi de manière fiable les notifications indésirables.

3.5. Hôtes parents

Imaginez qu’un routeur réseau important pour un site d’entreprise comptant des centaines d’ordinateurs hôtes tombe en panne. Tous ses ordinateurs hôtes seront alors indisponibles pour la supervision et passeront à l’état « DOWN ». Des centaines de notifications seront donc déclenchées. Ce n’est pas souhaitable.

Afin d’éviter de tels problèmes, le routeur peut être défini comme hôte parent pour ses hôtes. S’il existe des hôtes redondants, plusieurs hôtes parents peuvent également être définis. Dès que tous les hôtes parents entrent en état d’DOWN, les hôtes qui ne sont plus joignables seront signalés comme étant en état d’UNREACH et leurs notifications seront supprimées. Le problème concernant le routeur lui-même fera bien sûr toujours l’objet d’une notification.

CEE À noter que le CMC fonctionne en interne d’une manière légèrement différente de Nagios. Afin de réduire les fausses alertes tout en traitant les notifications valides, le CMC accorde une attention particulière aux heures exactes des vérifications des ordinateurs hôtes concernés. Si une vérification d’ordinateur hôte échoue, le noyau du processeur attendra le résultat de la vérification de l’ordinateur hôte parent avant de générer une notification. Cette attente est asynchrone et n'a aucun effet sur la supervision générale. Les notifications provenant des ordinateurs hôtes peuvent ainsi ne subir que des retards minimes.

4. Gestion des notifications

4.1. Le principe

Checkmk est configuré « par défaut » de telle sorte que, lorsqu’un événement de supervision se produit, un courrier électronique de notification est envoyé à chaque contact associé à l’ordinateur hôte ou au service concerné. Cela semble certes judicieux au premier abord, mais dans la pratique, de nombreuses autres exigences apparaissent, par exemple :

  • La suppression de notifications spécifiques, moins utiles.

  • L’« abonnement » aux notifications provenant de services pour lesquels on n’est pas contact.

  • Une notification peut être envoyée par courrier électronique, SMS ou pager, en fonction de l’heure de la journée.

  • L'escalade des problèmes lorsqu'aucune confirmation n'a été reçue au-delà d'un certain délai.

  • La possibilité de ne pas envoyer de notification pour les états « WARN » ou « UNKNOWN ».

  • et bien plus encore…

Checkmk vous offre une flexibilité maximale pour mettre en œuvre ces exigences grâce à son mécanisme basé sur des règles.

Dans la configuration des notifications, vous gérez la chaîne de règles de notification, qui détermine qui doit être averti et de quelle manière. Lorsqu’un événement de supervision se produit, cette chaîne de règles est exécutée de haut en bas. Chaque règle comporte une condition qui détermine si la règle s’applique effectivement à la situation en question.

Si la condition est remplie, la règle détermine deux choses :

  • Une sélection de contacts (Qui doit être notifié ?).

  • Une méthode de notification (comment notifier ?), par exemple un courrier électronique HTML, et, en option, des paramètres supplémentaires pour la méthode choisie.

Important : contrairement aux règles pour les ordinateurs hôtes et les services, ici l'évaluation se poursuit même après que la règle applicable a été satisfaite. Les règles suivantes peuvent ajouter d'autres notifications. Les notifications générées par les règles précédentes peuvent également être supprimées.

Le résultat final de l'évaluation de la règle sera un tableau dont la structure ressemblera à ceci :

Qui (contact) Comment (méthode) Paramètres de la méthode

Harry Hirsch

Courrier électronique

Reply-To: linux.group@example.com

Bruno Weizenkeim

Courrier électronique

Reply-To: linux.group@example.com

Bruno Weizenkeim

SMS

Désormais, pour chaque entrée de ce tableau, le script de notification qui exécute effectivement la notification de l'utilisateur correspondant à la méthode sera appelé.

4.2. Désactivation des notifications

Désactivation à l'aide de règles

Avec les jeux de règles Enable/disable notifications for hosts ou Enable/disable notifications for services, vous pouvez spécifier les ordinateurs hôtes et les services pour lesquels aucune notification ne doit généralement être émise. Comme mentionné ci-dessus, le noyau du processeur supprime alors les notifications. Une règle de notification ultérieure qui « s'abonne » aux notifications pour ces services sera sans effet, car les notifications ne sont tout simplement pas générées.

Désactivation à l'aide d'instructions

Icon of a disabled notification.

Il est également possible de désactiver temporairement les notifications pour des ordinateurs hôtes ou des services individuels à l'aide d'une instruction.

Toutefois, cela nécessite que l'autorisation « Commands on host and services > Enable/disable notifications » soit attribuée au rôle de l'utilisateur. Par défaut, ce n'est le cas pour aucun rôle.

Une fois l'autorisation attribuée, vous pouvez désactiver (et réactiver ultérieurement) les notifications provenant des ordinateurs hôtes et des services à l'aide de l'instruction Commands > Notifications :

Command to enable and disable notifications.

Ces ordinateurs hôtes ou services seront alors signalés par une icône « icon notif man disabled ».

Étant donné que les instructions — contrairement aux règles — ne nécessitent ni autorisations de configuration ni l’activation des modifications, elles peuvent constituer une solution rapide pour réagir sans délai à une situation.

Important : contrairement aux périodes de maintenance planifiées d’Icon of a scheduled downtime., les notifications désactivées n’ont aucune incidence sur les évaluations de disponibilité. Si, lors d’une interruption imprévue, vous souhaitez uniquement désactiver les notifications sans fausser les statistiques de disponibilité, vous ne devez pas enregistrer une période de maintenance planifiée !

Désactivation globale

Dans le snap-in « Master control » de la barre latérale, vous trouverez un commutateur master pour l’Notifications :

Master control snap-in.

Ce commutateur est extrêmement utile si vous prévoyez d’effectuer des modifications importantes du système, au cours desquelles une erreur pourrait, dans certaines circonstances, forcer de nombreux services à passer en état d’CRIT. Vous pouvez utiliser ce commutateur pour éviter de déranger vos collègues avec un flot de courriers électroniques inutiles. N’oubliez pas de réactiver les notifications lorsque vous avez terminé.

Chaque instance de la supervision distribuée dispose d'un de ces commutateurs. La désactivation des notifications de l'instance centrale permet toujours aux instances distantes d'activer les notifications, même si celles-ci sont dirigées vers l'instance centrale et transmises à partir de celle-ci.

Important : les notifications qui auraient été déclenchées pendant la période où les notifications étaient désactivées ne seront pas répétées ultérieurement lorsqu'elles seront réactivées.

4.3. Retarder les notifications

Il se peut que vous disposiez de services qui entrent occasionnellement dans un état de problème pendant de courtes périodes, mais les interruptions sont très brèves et ne sont pas critiques pour vous. Dans de tels cas, les notifications sont très gênantes, mais peuvent être facilement désactivées. Les jeux de règles Delay host notifications et Delay service notifications sont adaptés à cette situation.

Vous spécifiez ici une durée en minutes — et une notification sera retardée jusqu’à ce que ce délai soit écoulé. Si l’état « OK » / « UP » se reproduit avant cela, aucune notification ne sera déclenchée. Naturellement, cela signifie également que la notification d’un véritable problème sera retardée.

Il va sans dire que l’élimination de la cause réelle des problèmes sporadiques serait bien préférable au report des notifications — mais c’est bien sûr une autre histoire…​

4.4. Tentatives de checks répétées

Une autre méthode très similaire pour retarder les notifications consiste à autoriser plusieurs tentatives de vérification lorsqu’un service entre dans un état de problème. Ceci est réalisé à l’aide de l’Maximum number of check attempts for hosts, ou respectivement, du jeu de règles Maximum number of check attempts for service.

Si vous définissez ici une valeur de 3, par exemple, une check dont le résultat est CRIT ne déclenchera dans un premier temps aucune notification. On parle alors de soft state (CRIT). L’état dur reste OK. Ce n’est que si trois tentatives successives renvoient un état « not-OK » que le service passera à l’état dur et qu’une notification sera déclenchée.

Contrairement aux notifications différées, vous avez ici la possibilité de définir des vues de manière à ce que ces problèmes ne s’affichent pas. Une agrégation BI peut également être configurée de sorte à n’inclure que les états durs, et non les états mous.

4.5. Hôtes et services instables

Icon indicating flapping state.

Lorsqu’un ordinateur hôte ou un service change fréquemment d’état sur une courte période, on parle d’« état instable ». Il s’agit d’un état réel. Le principe ici est de réduire les notifications excessives pendant les phases où un service ne fonctionne pas (tout à fait) de manière stable. Ces phases peuvent également faire l’objet d’une évaluation spécifique dans les statistiques de disponibilité.

Les objets instables sont signalés par l’icône «Icon indicating flapping state.». Tant qu’un objet est instable, les changements d’état successifs ne déclenchent aucune notification supplémentaire. Une notification sera toutefois déclenchée chaque fois que l’objet entre ou sort de l’état d’instabilité.

La détection de l’instabilité par le système peut être influencée de la manière suivante :

  • L'Master control dispose d'un commutateur principal permettant de contrôler la détection des états instables (Flap Detection).

  • Vous pouvez exclure des objets de la détection en utilisant l'Enable/disable flapping detection for hosts, ou respectivement, le jeu de règles Enable/disable flapping detection for services.

  • Dans les éditions commerciales, l' Global settings > Monitoring core > Tuning of flap detectionvous permet de définir les paramètres de détection de l'instabilité et de les régler pour qu'ils soient plus ou moins sensibles :

Global settings for flap detection handling.

Consultez l'aide contextuelle d'Help > Show inline help pour plus de détails sur les valeurs personnalisables.

5. Le chemin d'accès d'une notification, du début à la fin

5.1. L'historique des notifications

Pour commencer, nous allons vous montrer comment consulter l'historique des notifications au niveau de l'ordinateur hôte et au niveau de service dans Checkmk afin de pouvoir suivre le processus de notification.

Un événement de supervision qui déclenche une notification dans Checkmk est, par exemple, le changement d'état d'un service. Vous pouvez déclencher manuellement ce changement d'état à l'aide de l'instruction « Fake check results » à des fins de test.

Pour tester la notification, vous pouvez ainsi faire passer un service de l'état « OK » à « CRIT ». Si vous affichez maintenant les notifications pour ce service sur la page de détails du service à l'aide de Service > Service notifications , vous verrez les entrées suivantes :

List of accumulated notifications for a service.

L'entrée la plus récente se trouve en haut de la liste. Cependant, la première entrée se trouve en bas ; examinons donc les entrées une par une, de bas en haut :

  1. Le noyau de supervision consigne l'événement de supervision du changement d'état. L'icône icon alert crit dans la 1re colonne indique l'état (CRIT dans l'exemple).

  2. Le noyau de supervision génère une notification brute d’icon alert cmk notify. Celle-ci est transmise par le noyau de supervision au module de notification, qui procède à l’évaluation des règles de notification applicables.

  3. L'évaluation des règles aboutit à une notification utilisateur d'icon alert notify adressée à l'utilisateur hh via la méthode mail.

  4. Le résultat de la notification icon alert notify result indique que le courrier électronique a bien été transmis au serveur SMTP pour être remis.

Afin de faciliter la bonne compréhension des contextes de toutes les différentes options de configuration et conditions de base, et de permettre un diagnostic précis des problèmes lorsqu’une notification apparaît ou ne s’affiche pas comme prévu, nous décrivons ici tous les détails du processus de notification, y compris l’ensemble des composants impliqués.

Tip

L'historique des notifications que nous avons présenté ci-dessus pour un service peut également être affiché pour un ordinateur hôte : sur la page de détails de l'ordinateur hôte dans le menu « Host » de l'ordinateur hôte lui-même (entrée « Notifications of host ») ainsi que pour l'ordinateur hôte avec tous ses services (Notifications of host & services).

5.2. Les composants

Les composants suivants interviennent dans le système de notification de Checkmk :

Composant Fonction Fichier journal

Nagios

Le noyau de supervision d'CREe Checkmk Community qui détecte les événements de supervision et génère des notifications brutes.

~/var/log/nagios.log
~/var/nagios/debug.log

Checkmk Micro Core (CMC)

Le noyau de supervision des éditions commerciales qui remplit la même fonction que Nagios dans Checkmk Community.

~/var/log/cmc.log

Module de notification

Traite les règles de notification afin de créer une notification utilisateur à partir d'une notification brute. Il appelle les scripts de notification.

~/var/log/notify.log

Spouleur de notification (éditions commerciales uniquement)

Envoi asynchrone des notifications et centralisation des notifications dans les environnements distribués.

~/var/log/mknotifyd.log

Script de notification

Pour chaque méthode de notification, il existe un script qui traite la livraison proprement dite (par exemple, génère et envoie un courrier électronique au format HTML).

~/var/log/notify.log

5.3. Le noyau de supervision

Notifications brutes

Comme décrit ci-dessus, chaque notification commence par un événement de supervision dans le noyau de supervision. Si toutes les conditions sont remplies et qu’un « feu vert » peut être donné pour une notification, le noyau génère une notification brute à l’intention du contact d’assistance interne d’check-mk-notify. La notification brute ne contient pas encore les détails des contacts réels ni de la méthode de notification.

La notification brute se présente ainsi dans l'historique des notifications du service :

A raw notification in the notification history.
  • L'icône est un haut-parleur gris clair d'icon alert cmk notify

  • check-mk-notify est indiquée comme contact.

  • check-mk-notify est indiquée comme instruction de notification.

La notification brute est ensuite transmise au module de notification Checkmk, qui traite les règles de notification. Ce module est appelé en tant que programme externe par Nagios (cmk --notify). Le CMC maintient le module en veille en tant que processus d'aide permanent (notification helper), réduisant ainsi la création de processus et économisant du temps machine.

Diagnostic des erreurs dans le noyau de supervision Nagios

CRE Le noyau Nagios utilisé dans CRE Checkmk Community consigne tous les événements de supervision dans le fichier ~/var/log/nagios.log. Ce fichier sert également à stocker l’historique des notifications, que l’on peut également consulter via l’ interface graphique si, par exemple, vous souhaitez voir les notifications d’un ordinateur hôte ou d’un service.

Les messages que vous trouverez dans le fichier ~/var/nagios/debug.log, que vous recevrez si vous définissez la variable debug_level sur 32 dans etc/nagios/nagios.d/logging.cfg, sont toutefois plus intéressants.

Après un redémarrage du noyau du processeur …​

OMD[mysite]:~$ omd restart nagios
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

… vous trouverez des informations utiles sur les raisons pour lesquelles des notifications ont été créées ou supprimées :

~/var/nagios/debug.log
[1592405483.152931] [032.0] [pid=18122] ** Service Notification Attempt ** Host: 'localhost', Service: 'backup4', Type: 0, Options: 0, Current State: 2, Last Notification: Wed Jun 17 16:24:06 2020
[1592405483.152941] [032.0] [pid=18122] Notification viability test passed.
[1592405485.285985] [032.0] [pid=18122] 1 contacts were notified.  Next possible notification time: Wed Jun 17 16:51:23 2020
[1592405485.286013] [032.0] [pid=18122] 1 contacts were notified.

Diagnostic des erreurs dans le noyau de supervision CMC

CEE Dans les éditions commerciales, vous trouverez un protocole provenant du noyau de supervision dans le fichier journal~/var/log/cmc.log . Dans l'installation standard, ce fichier ne contient aucune information concernant les notifications. Vous pouvez toutefois activer une fonction de journalisation très détaillée à l'aide de l'Global settings > Monitoring Core > Logging of the notification mechanics. Le noyau fournira alors des informations sur les raisons pour lesquelles — ou pourquoi pas (encore) — un événement de supervision l'incite à transmettre une notification au système de notification :

OMD[mysite]:~$ tail -f var/log/cmc.log
2021-08-26 16:12:37 [5] [core 27532] Executing external command: PROCESS_SERVICE_CHECK_RESULT;mysrv;CPU load;1;test
2021-08-26 16:12:43 [5] [core 27532] Executing external command: LOG;SERVICE NOTIFICATION: hh;mysrv;CPU load;WARNING;mail;test
2021-08-26 16:12:52 [5] [core 27532] Executing external command: LOG;SERVICE NOTIFICATION RESULT: hh;mysrv;CPU load;OK;mail;success 250 - b'2.0.0 Ok: queued as 482477F567B';success 250 - b'2.0.0 Ok: queued as 482477F567B'
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Remarque : l'activation de la journalisation des notifications peut générer un grand nombre de messages. Elle s'avère toutefois utile lorsque l'on cherche à comprendre, a posteriori, pourquoi une notification n'a pas été générée dans une situation particulière.

5.4. Évaluation des règles par le module de notification

Une fois que le noyau du processeur a généré une notification brute, celle-ci passe par la chaîne de règles de notification, ce qui donne lieu à un tableau de notifications. Outre les données de la notification brute, chaque notification contient les informations supplémentaires suivantes :

  • Le contact à notifier

  • La méthode de notification

  • Les paramètres de cette méthode

Dans le cas d'une transmission synchrone, un script de notification approprié est alors exécuté pour chaque entrée du tableau. Dans le cas d'une transmission asynchrone, une notification est transmise sous forme de fichier au spouleur de notification.

Analyse de la chaîne de règles

Lorsque vous créez des régimes de règles plus complexes, la question de savoir quelles règles s'appliqueront à une notification spécifique se posera certainement. Pour cela, Checkmk fournit une fonction d'analyse intégrée sous Setup > Setup > Analyze recent notifications.

En mode d'analyse, les dix dernières notifications brutes générées par le système et traitées par les règles s'affichent par défaut :

List of the last 10 raw notifications in analysis mode.

Si vous avez besoin d'analyser un plus grand nombre de notifications brutes, vous pouvez facilement augmenter le nombre de notifications stockées pour l'analyse via Global settings > Notifications > Store notifications for rule analysis :

Global setting for the number of raw notifications displayed.

Pour chacune de ces notifications brutes, trois actions sont à votre disposition :

Icon to test the rule chain.

Teste la chaîne de règles, au cours de laquelle chaque règle sera vérifiée pour déterminer si toutes ses conditions ont été satisfaites pour l'événement de supervision sélectionné. Le tableau des notifications résultant s'affichera avec les règles.

Icon to display the notification context.

Affiche le contexte complet de la notification.

Raw notification reload icon.

Répète cette notification brute comme si elle venait d'apparaître. Sinon, l'affichage est le même que dans l'analyse. Cela vous permet non seulement de vérifier les conditions de la règle, mais aussi de tester l'aspect visuel d'une notification.

Diagnostic des erreurs

Si vous avez effectué le test de la chaîne de règles (for testing the rule chain.), vous pouvez voir quelles règles Symbol in green ont été appliquées ou Symbol in gray n’ont pas été appliquées à un événement de supervision :

List of applied and not applied rules.

Si une règle n'a pas été appliquée, passez la souris sur le cercle gris pour afficher l'indice (texte d'aide au survol) :

Hint when a rule has not been applied.

Toutefois, ce texte d'aide utilise des abréviations pour désigner les raisons pour lesquelles une règle n'a pas été appliquée. Celles-ci font référence aux conditions Host events ou Service events de la règle.

Types d'événements hôte

Abréviation

Signification

Description

rd

UP ➤ DOWN

L'état de l'ordinateur hôte est passé de « UP » à « DOWN »

ru

UP ➤ UNREACHABLE

L'état de l'ordinateur hôte est passé de « UP » à « UNREACH »

dr

DOWN ➤ UP

L'état de l'ordinateur hôte est passé de DOWN à UP

du

DOWN ➤ UNREACHABLE

L'état de l'ordinateur hôte est passé de DOWN à UNREACH

ud

UNREACHABLE ➤ DOWN

L'état de l'ordinateur hôte est passé de UNREACH à DOWN

ur

UNREACHABLE ➤ UP

L'ordinateur hôte est passé de UNREACH à UP

?r

any ➤ UP

L'ordinateur hôte est passé de « n'importe quel État » à UP

?d

any ➤ DOWN

L'état de l'ordinateur hôte est passé de n'importe quel état à DOWN

?u

any ➤ UNREACHABLE

L'état de l'ordinateur hôte est passé de « n'importe quel état » à « UNREACH »

f

Start or end of flapping state

s

Start or end of a scheduled downtime

x

Acknowledgment of problem

as

Alert handler execution, successful

af

Alert handler execution, failed

Types d'événements de service

Abréviation

Signification

Description

rw

OK ➤ WARN

L'état du service est passé de « OK » à « WARN »

rr

OK ➤ OK

L'état du service est passé de « OK » à « OK »

rc

OK ➤ CRIT

L'état du service est passé de « OK » à « CRIT »

ru

OK ➤ UNKNOWN

L'état du service est passé de « OK » à « UNKNOWN »

wr

WARN ➤ OK

L'état du service est passé de « WARN » à « OK »

wc

WARN ➤ CRIT

L'état du service est passé de « WARN » à « CRIT »

wu

WARN ➤ UNKNOWN

L'état du service est passé de « WARN » à « UNKNOWN »

cr

CRIT ➤ OK

L'état du service est passé de « CRIT » à « OK »

cw

CRIT ➤ WARN

L'état du service est passé de « CRIT » à « WARN »

cu

CRIT ➤ UNKNOWN

L'état du service est passé de « CRIT » à « UNKNOWN »

ur

UNKNOWN ➤ OK

L'état du service est passé de UNKNOWN à OK

uw

UNKNOWN ➤ WARN

L'état du service est passé de UNKNOWN à WARN

uc

UNKNOWN ➤ CRIT

L'état du service est passé de UNKNOWN à CRIT

?r

any ➤ OK

L'état du service est passé d'un état quelconque à « OK »

?w

any ➤ WARN

L'état du service est passé d'un état quelconque à « WARN »

?c

any ➤ CRIT

L'état du service est passé d'un état quelconque à « CRIT »

?u

any ➤ UNKNOWN

L'état du service est passé de n'importe quel état à « UNKNOWN »

À partir de ces indications, vous pouvez checker et réviser vos règles.

Le fichier journal « ~/var/log/notify.log » constitue une autre option de diagnostic importante. Lors des tests avec les notifications, l'instruction courante « tail -f » s'avère utile à cet effet :

OMD[mysite]:~$ tail -f var/log/notify.log
2025-04-09 08:02:49,302 [15] [cmk.base.notify]  -> does not match: Event type 'rd' not handled by this rule. Allowed are: du, ?r
2025-04-09 08:02:49,303 [20] [cmk.base.notify] User cmkadmin's rule 'my test notification'...
2025-04-09 08:02:49,303 [20] [cmk.base.notify]  -> matches!
2025-04-09 08:02:49,303 [20] [cmk.base.notify]    - adding notification of cmkadmin via mail
2025-04-09 08:02:49,303 [20] [cmk.base.notify] User peter's rule 'test notification of peter'...
2025-04-09 08:02:49,303 [20] [cmk.base.notify]  -> matches!
2025-04-09 08:02:49,303 [20] [cmk.base.notify]    - modifying notification of peter via mail
2025-04-09 08:02:49,303 [20] [cmk.base.notify] Executing 2 notifications:
2025-04-09 08:02:49,303 [20] [cmk.base.notify]   * would notify peter via mail, parameters: graphs_per_notification, notifications_with_graphs, matching_rule_nr, matching_rule_text, bulk: no
2025-04-09 08:02:49,303 [20] [cmk.base.notify]   * would notify cmkadmin via mail, parameters: graphs_per_notification, notifications_with_graphs, matching_rule_nr, matching_rule_text, bulk: no
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Avec l'option « Global settings > Notifications > Notification log level », vous pouvez contrôler le niveau de détail des notifications sur trois niveaux. Définissez cette option sur « Full dump of all variables and command » et vous trouverez dans le fichier journal une liste complète de toutes les variables disponibles pour le script de notification :

Global setting to specify the log level.

Par exemple, la liste se présentera comme suit (extrait) :

~/var/log/notify.log
2025-04-09 08:47:39,186 [10] [cmk.base.notify] Raw context:
                    CONTACTS=hh
                    HOSTACKAUTHOR=
                    HOSTACKCOMMENT=
                    HOSTADDRESS=127.0.0.1
                    HOSTALIAS=localhost
                    HOSTATTEMPT=1
                    HOSTCHECKCOMMAND=check-mk-host-smart

5.5. Envoi asynchrone via le spouleur de notification

CEE Le spouleur de notification est une fonction complémentaire puissante des éditions commerciales. Il permet une transmission asynchrone des notifications. Que signifie « asynchrone » dans ce contexte ?

  • Livraison synchrone : Le module de notification attend que le script de notification ait fini de s'exécuter. Si l'exécution prend beaucoup de temps, les notifications s'accumulent. Si la supervision est arrêtée, ces notifications sont perdues. De plus, si de nombreuses notifications sont générées sur une courte période, un retard peut s'accumuler jusqu'au noyau du processeur, provoquant un blocage de la supervision.

  • Livraison asynchrone : Chaque notification est enregistrée dans un fichier spool sous ~/var/check_mk/notify/spool. Aucun engorgement ne peut se former. Si la supervision est arrêtée, les fichiers spool sont conservés et les notifications peuvent être livrées correctement ultérieurement. Le spouleur de notification prend en charge le traitement des fichiers spool.

Une livraison synchrone est alors envisageable si le script de notification s'exécute rapidement et, surtout, ne peut entraîner aucun timeout. Avec les méthodes de notification qui accèdent à des spoolers existants, cela va de soi. Les services de spool du système peuvent être utilisés notamment avec les courriers électroniques et les SMS. Le script de notification transmet un fichier au spooler — avec cette procédure, aucun état d'attente ne peut se produire.

Lorsque vous utilisez la livraison traçable via SMTP ou d’autres scripts établissant des connexions réseau, vous devez toujours recourir à la livraison asynchrone. Cela s’applique également aux scripts qui envoient des messages texte (SMS) via HTTP sur internet. Les timeouts lors de l’établissement d’une connexion à un service réseau peuvent durer jusqu’à plusieurs minutes, provoquant un engorgement comme décrit ci-dessus.

La bonne nouvelle, c’est que la livraison asynchrone est activée par défaut dans Checkmk. D’une part, le spouleur de notification (mknotifyd) est également lancé au démarrage de l’instance, ce que vous pouvez vérifier à l’aide de l’instruction suivante :

OMD[mysite]:~$ omd status mknotifyd
mknotifyd:      running
-----------------------
Overall state:  running
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

D'autre part, la transmission asynchrone (Asynchronous local delivery by notification spooler) est sélectionnée dans Global settings > Notifications > Notification Spooling :

Global setting for the notification spooler delivery method.

Diagnostic des erreurs

Le spouleur de notification gère son propre fichier journal : ~/var/log/mknotifyd.log. Celui-ci dispose de trois niveaux de journalisation qui peuvent être définis sous Global settings > Notifications > Notification Spooler Configuration à l'aide du paramètre Verbosity of logging. La valeur par défaut est Normal logging (only startup, shutdown and errors. Au niveau intermédiaire, Verbose logging (i.e. spooled notifications),, le traitement des fichiers spool est visible :

~/var/log/mknotifyd.log
2025-04-09 08:47:37,928 [15] [cmk.mknotifyd] processing spoolfile: /omd/sites/mysite/var/check_mk/notify/spool/dad64e2e-b3ac-4493-9490-8be969a96d8d
2025-04-09 08:47:37,928 [20] [cmk.mknotifyd] running cmk --notify --log-to-stdout spoolfile /omd/sites/mysite/var/check_mk/notify/spool/dad64e2e-b3ac-4493-9490-8be969a96d8d
2025-04-09 08:47:39,848 [20] [cmk.mknotifyd] got exit code 0
2025-04-09 08:47:39,850 [20] [cmk.mknotifyd] processing spoolfile dad64e2e-b3ac-4493-9490-8be969a96d8d successful: success 250 - b'2.4.0 Ok: queued as 1D4FF7F58F9'
2025-04-09 08:47:39,850 [20] [cmk.mknotifyd] sending command LOG;SERVICE NOTIFICATION RESULT: hh;mysrv;CPU load;OK;mail;success 250 - b'2.4.0 Ok: queued as 1D4FF7F58F9';success 250 - b'2.0.0 Ok: queued as 1D4FF7F58F9'

6. Livraison traçable via SMTP

6.1. Le courrier électronique n'est pas fiable

CEE La supervision n'est utile que si l'on peut s'y fier. Cela implique que les notifications soient reçues de manière fiable et rapide. Malheureusement, la livraison des courriers électroniques n'est toutefois pas tout à fait optimale. L'envoi est généralement traité en transmettant le courrier électronique au serveur SMTP local. Celui-ci tente de livrer le courrier électronique de manière autonome et asynchrone.

En cas d’erreur temporaire (par exemple, lorsque le serveur SMTP destinataire n’est pas joignable), le courrier électronique est placé dans une file et une nouvelle tentative est effectuée ultérieurement. Ce « ultérieurement » intervient généralement après 15 à 30 minutes. À ce moment-là, la notification pourrait bien arriver bien trop tard !

Si le courrier électronique ne peut vraiment pas être remis, le serveur SMTP génère un message d’erreur clair dans son fichier journal et tente d’envoyer un courrier électronique d’erreur à l’« expéditeur ». Mais le système de supervision n’est pas un véritable expéditeur et ne peut pas non plus recevoir de courriers électroniques. Il s’ensuit que ces erreurs disparaissent tout simplement et que les notifications font alors défaut.

6.2. L'utilisation du SMTP sur une connexion directe permet l'analyse des erreurs

Les éditions commerciales offrent la possibilité d’une livraison traçable via SMTP. Cela se fait intentionnellement sans l’aide du serveur de messagerie local. Au lieu de cela, Checkmk envoie lui-même le courrier électronique à votre hôte intelligent via SMTP, puis évalue lui-même la réponse SMTP.

De cette manière, non seulement les erreurs SMTP sont traitées de manière intelligente, mais une livraison correcte est également documentée avec précision. C'est un peu comme une lettre recommandée : Checkmk reçoit un accusé de réception de l'hôte intelligent SMTP (serveur de réception) confirmant que le courrier électronique a bien été accepté — y compris un identifiant de courrier.

Le processus pratique de configuration des notifications avec suivi de la livraison via SMTP est décrit dans les règles de notification globales et dans les règles de notification personnelles.

6.3. SMS et autres méthodes de notification

À ce jour, la livraison synchrone incluant les messages d’erreur et la traçabilité n’a été mise en œuvre que pour les courriers électroniques HTML. Vous trouverez dans le chapitre consacré à la rédaction de vos propres scripts comment renvoyer un statut d’erreur dans un script de notification que vous avez vous-même écrit.

7. Notifications dans les systèmes distribués

Dans les environnements distribués — c'est-à-dire ceux comportant plusieurs instances Checkmk —, la question se pose de savoir comment traiter les notifications générées sur les instances distantes. Dans une telle situation, il existe essentiellement deux possibilités :

  1. Envoi local

  2. Livraison centralisée sur l'instance centrale (éditions commerciales uniquement)

Vous trouverez des informations détaillées à ce sujet dans l'article consacré à la supervision distribuée.

8. Scripts de notification

8.1. Le principe

Les notifications peuvent prendre des formes multiples et variées. En voici quelques exemples typiques :

  • Transfert des notifications vers un ticket ou un système de notification externe

  • Envoi d'un SMS via divers services internet

  • Appels téléphoniques automatisés

  • Transfert vers un système de supervision global de niveau supérieur

C'est pourquoi Checkmk fournit une interface très simple qui vous permet d'écrire vos propres scripts de notification. Ceux-ci peuvent être écrits dans n'importe quel langage de programmation pris en charge par Linux, même si Shell, Perl et Python représentent à eux trois 95 % du « marché ».

Les scripts standard fournis avec Checkmk se trouvent dans ~/share/check_mk/notifications. Ce répertoire fait partie intégrante du logiciel et n’est pas destiné à être modifié. Enregistrez plutôt vos propres scripts dans ~/local/share/check_mk/notifications. Assurez-vous que vos scripts sont exécutables (chmod +x). Ils seront alors détectés automatiquement et mis à disposition pour être sélectionnés dans les règles de notification.

Si vous souhaitez personnaliser un script standard, il vous suffit de le copier depuis ~/share/check_mk/notifications vers ~/local/share/check_mk/notifications et d’y apporter vos modifications dans la copie. Si vous conservez le nom d’origine, votre script remplacera automatiquement la version standard et aucune modification ne sera nécessaire dans les règles de notification existantes.

En cas de notification, votre script sera exécuté avec les autorisations de l'utilisateur de l'instance. Dans les variables d'environnement commençant par NOTIFY_, le script recevra toutes les informations concernant l'ordinateur hôte/le service concerné, l'événement de supervision, les contacts à notifier et les paramètres spécifiés dans la règle de notification.

Les textes que le script écrit dans la sortie standard (avec print, echo, etc.) apparaissent dans le fichier journal du module de notification ~/var/log/notify.log.

8.2. Notifications traçables

Les scripts de notification ont la possibilité d’utiliser un code de sortie pour indiquer si une erreur réplicable ou finale s’est produite :

Code de sortie Description

0

Le script a été exécuté avec succès.

1

Une erreur temporaire s'est produite. L'exécution doit être réessayée à plusieurs reprises après un court délai d'attente, jusqu'à ce que le nombre maximal de tentatives configuré soit atteint. Exemple : une connexion HTTP ne peut pas être établie avec un service SMS.

2 et supérieur

Une erreur fatale s'est produite. La notification ne sera pas réessayée. Une erreur de notification s'affichera dans l'interface graphique. L'erreur sera consignée dans l'historique de l'ordinateur hôte/du service. Exemple : le service SMS enregistre une erreur « authentification non valide ».

De plus, dans tous les cas, la sortie standard du script de notification, ainsi que le statut, seront enregistrés dans l’historique des notifications de l’ordinateur hôte/du service et seront donc visibles dans l’interface graphique.

Important : les notifications traçables ne sont pas disponibles pour les notifications groupées !

CEE Le traitement des erreurs de notification du point de vue de l’utilisateur sera expliqué dans le chapitre consacré à la livraison traçable via SMTP.

8.3. Exemple de script simple

À titre d'exemple, vous pouvez créer un script qui écrit toutes les informations relatives à la notification dans un fichier. Le langage de programmation utilisé est le shell Bash de Linux :

~/local/share/check_mk/notifications/foobar
#!/bin/bash
# Foobar Teleprompter

env | grep NOTIFY_ | sort > $OMD_ROOT/tmp/foobar.out
echo "Successfully written $OMD_ROOT/tmp/foobar.out"
exit 0
Copier le contenu du fichier dans le presse-papiers
Contenu du fichier copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Rendez ensuite le script exécutable :

OMD[mysite]:~$ chmod +x local/share/check_mk/notifications/foobar
Copier les instructions dans le presse-papiers
Les instructions ont été copiées avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Voici quelques explications concernant le script :

  • La première ligne contient une #! et le chemin d'accès à l'interpréteur du langage du script (ici /bin/bash).

  • À la deuxième ligne, après le caractère de commentaire #, se trouve le titre du script. En règle générale, celui-ci s'affiche lors de la sélection de la méthode de notification.

  • L'instruction `env` affiche toutes les variables d'environnement reçues par le script.

  • Avec grep NOTIFY_, les variables Checkmk seront filtrées…

  • … et triées par ordre alphabétique avec sort.

  • > $OMD_ROOT/tmp/foobar.out écrit le résultat dans le fichier « ~/tmp/foobar.out » situé dans le répertoire d'instances.

  • L'exit 0 serait en réalité superflue à cet endroit, car le shell prend toujours le code de sortie de la dernière instruction. Ici, il s'agit de echo et l'opération aboutit toujours — mais il vaut toujours mieux être explicite.

8.4. Test du script d’exemple

Pour que le script soit utilisé, vous devez le définir comme méthode dans une règle de notification. Les scripts écrits par vos soins ne comportent pas de déclaration de paramètres ; par conséquent, toutes les cases à cocher telles que celles proposées, par exemple, dans la méthode « HTML Email », seront absentes. À la place, vous pouvez saisir une liste de textes en tant que paramètres qui seront disponibles pour le script sous la forme « NOTIFY_PARAMETER_1 », « NOTIFY_PARAMETER_2 », etc. Pour un test, fournissez les paramètres « Fröhn », « Klabuster » et « Feinbein » :

Rule with selection of sample script as notification method.

Pour effectuer le test, configurez le service CPU load sur l'ordinateur hôte myserver pour qu'il envoie des notifications à CRIT — à l'aide de l'instruction Fake check results. Dans le fichier journal du module de notification ~/var/log/notify.log, vous verrez alors l'exécution du script, y compris les paramètres et le fichier spool généré :

~/var/log/notify.log
2021-08-25 13:01:23,887 [20] [cmk.base.notify] Executing 1 notifications:
2021-08-25 13:01:23,887 [20] [cmk.base.notify]   * notifying hh via foobar, parameters: Fröhn, Klabuster, Feinbein, bulk: no
2021-08-25 13:01:23,887 [20] [cmk.base.notify] Creating spoolfile: /omd/sites/mysite/var/check_mk/notify/spool/e1b5398c-6920-445a-888e-f17e7633de60

Le fichier ~/tmp/foobar.out contient désormais une liste alphabétique de toutes les variables d’environnement Checkmk qui incluent des informations concernant la notification. Vous pouvez ainsi vous repérer pour savoir quelles valeurs sont disponibles pour votre script. Voici les dix premières lignes :

OMD[mysite]:~$ head tmp/foobar.out
NOTIFY_ALERTHANDLERNAME=debug
NOTIFY_ALERTHANDLEROUTPUT=Arguments:
NOTIFY_ALERTHANDLERSHORTSTATE=OK
NOTIFY_ALERTHANDLERSTATE=OK
NOTIFY_CONTACTALIAS=Harry Hirsch
NOTIFY_CONTACTEMAIL=harryhirsch@example.com
NOTIFY_CONTACTNAME=hh
NOTIFY_CONTACTPAGER=
NOTIFY_CONTACTS=hh
NOTIFY_DATE=2021-08-25
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Les paramètres sont également disponibles :

OMD[mysite]:~$ grep PARAMETER tmp/foobar.out
NOTIFY_PARAMETERS=Fröhn Klabuster Feinbein
NOTIFY_PARAMETER_1=Fröhn
NOTIFY_PARAMETER_2=Klabuster
NOTIFY_PARAMETER_3=Feinbein
Copier les instructions dans le presse-papiers
Instruction(s) copiée(s) avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

8.5. Variables d'environnement

Dans l'exemple ci-dessus, vous avez vu un certain nombre de variables d'environnement qui seront transmises au script. Les variables disponibles dépendent précisément du type de notification, de la version et de l'édition de Checkmk, ainsi que du noyau de supervision utilisé (CMC ou Nagios). Outre l'astuce avec l'instruction « env », il existe deux autres moyens d'obtenir la liste complète de toutes les variables :

  • Modifier le niveau de journalisation pour ~/var/log/notify.log via Global settings > Notifications > Notification log level.

  • Pour les notifications par HTML Email, il existe une case à cocher Information to be displayed in the email body avec l'option « Complete variable list (for testing) ».

Vous trouverez ci-dessous une liste des variables les plus importantes :

Variable d'environnement Description

OMD_ROOT

Répertoire personnel de l'instance, par exemple /omd/sites/mysite.

OMD_SITE

Nom de l'instance, par exemple mysite.

NOTIFY_WHAT

Pour les notifications d'ordinateur hôte, le mot « HOST », sinon « SERVICE ». Grâce à ces informations, vous pouvez rendre votre script suffisamment intelligent pour qu'il enregistre des informations utiles dans les deux cas.

NOTIFY_CONTACTNAME

Nom d'utilisateur (login) du contact.

NOTIFY_CONTACTEMAIL

L'adresse électronique du contact.

NOTIFY_CONTACTPAGER

Entrée dans le champ Pager du profil utilisateur du contact. Étant donné que ce champ n'est généralement pas réservé à un usage spécifique, vous pouvez simplement l'utiliser pour chaque utilisateur afin d'enregistrer les informations requises pour les notifications.

NOTIFY_DATE

Date de la notification au format ISO-8601, par exemple 2021-08-25.

NOTIFY_LONGDATETIME

Date et heure selon l'affichage par défaut du système Linux non localisé, par exemple : Wed Aug 25 15:18:58 CEST 2021.

NOTIFY_SHORTDATETIME

Date et heure au format ISO, par exemple 2021-08-25 15:18:58

NOTIFY_HOSTNAME

Nom de l'ordinateur hôte concerné.

NOTIFY_HOSTOUTPUT

Sortie du plugin de supervision de l'ordinateur hôte, par exemple : Packet received via smart PING. Cette sortie n'est pertinente que pour les notifications d'ordinateur hôte, mais elle est également présente dans les notifications de service.

NOTIFY_HOSTSTATE

L'un des mots suivants : UP, DOWN ou UNREACH

NOTIFY_NOTIFICATIONTYPE

Type de notification tel que décrit dans l’introduction de cet article . Il sera exprimé par l’un des mots suivants :
PROBLEM : Problème normal d’hôte
ou de service RECOVERY : L’hôte/le service est à nouveauUP /
OK ACKNOWLEDGEMENT (…​) : Confirmation d’un incident
FLAPPINGSTART : L’hôte/le service a commencé à être instable
FLAPPINGSTOP :- : L’instabilité a pris fin
DOWNTIMESTART : Début d’une période de maintenance
DOWNTIMEEND : Fin normale d’une période de maintenance
DOWNTIMECANCELLED : Interruption prématurée d’une période de maintenance
CUSTOM : Notification émise par une instruction manuelle
ALERTHANDLER (…​) : Exécution du gestionnaire d’alertes (éditions commerciales uniquement)
Pour les types comportant l’(…​) , les crochets contiennent des informations supplémentaires sur le type de notification.

NOTIFY_PARAMETERS

Tous les paramètres du script séparés par des espaces.

NOTIFY_PARAMETER_1

Le premier paramètre du script.

NOTIFY_PARAMETER_2

Le deuxième paramètre du script, etc.

NOTIFY_SERVICEDESC

Nom du service concerné. Cette variable n’est pas présente dans les notifications d’ordinateur hôte.

NOTIFY_SERVICEOUTPUT

Sortie du plugin de supervision du service (ne s’applique pas aux notifications d’ordinateur hôte)

NOTIFY_SERVICESTATE

L'un des mots suivants : « OK », « WARN », « CRIT » ou « UNKNOWN »

8.6. Notifications groupées

Si votre script doit prendre en charge les notifications groupées, il devra être spécialement préparé, car il doit envoyer plusieurs notifications simultanément. Pour cette raison, une transmission via des variables d'environnement ne fonctionne pas non plus de manière pratique.

Donnez un nom à votre script à la troisième ligne de l'en-tête comme ci-dessous — le module de notification enverra alors les notifications via l'entrée standard :

~/local/share/check_mk/notifications/mybulk
#!/bin/bash
# My Bulk Notification
# Bulk: yes
Copier le contenu du fichier dans le presse-papiers
Contenu du fichier copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

The script will receive blocks of variables via the standard input. Each line has the form: NAME=VALUE. The blocks are separated by blank lines. The ASCII character with code 1 (\a) is used to represent line breaks in the text.

Le premier bloc contient une liste de variables générales (par exemple, des paramètres d'appel). Chaque bloc suivant assemble les variables en une notification.

La meilleure recommandation est de l'essayer vous-même avec un test simple qui écrit les données complètes dans un fichier afin que vous puissiez voir comment les données sont envoyées. Vous pouvez utiliser le script de notification suivant à cette fin :

~/local/share/check_mk/notifications/mybulk
#!/bin/bash
# My Bulk Notification
# Bulk: yes

cat > $OMD_ROOT/tmp/mybulktest.out
Copier le contenu du fichier dans le presse-papiers
Contenu du fichier copié avec succès dans le presse-papiers !
L'accès en écriture au presse-papiers a été refusé !

Testez le script comme décrit ci-dessus et activez en outre l'option « Notification Bulking » dans la règle de notification.

8.7. Scripts de notification fournis

Dès son installation, Checkmk fournit déjà toute une gamme de scripts permettant de réaliser des connexions aux services de messagerie instantanée, aux plateformes de gestion des incidents et aux systèmes de tickets les plus courants et les plus utilisés. Vous trouverez des informations sur l'utilisation de ces scripts dans les articles suivants :

9. Fichiers et répertoires

9.1. Chemins d'accès de Checkmk

Chemin d'accès aux fichiers Fonction

~/var/log/cmc.log

Le fichier journal CMC. Si le débogage des notifications est activé, vous trouverez ici des informations précises sur les raisons pour lesquelles des notifications ont été générées ou non.

~/var/log/notify.log

Le fichier journal du module de notification.

~/var/log/mkotifyd.log

Le fichier journal du spouleur de notification.

~/var/log/mkotifyd.state

État actuel du spouleur de notification. Ceci est principalement pertinent pour les notifications dans les environnements distribués.

~/var/nagios/debug.log

Le fichier journal de débogage de Nagios. Activez les messages de débogage dans ~/etc/nagios/nagios.d/logging.cfg à l'aide de la variable debug_level.

~/var/check_mk/notify/spool/

Emplacement de stockage des fichiers spool à traiter par le spouleur de notification.

~/var/check_mk/notify/deferred/

En cas d'erreurs temporaires, le spouleur de notification déplace les fichiers à cet emplacement et réessaie après quelques minutes.

~/var/check_mk/notify/corrupted/

Les fichiers spool défectueux seront déplacés ici.

~/share/check_mk/notifications

Scripts de notification fournis en standard avec Checkmk. N'apportez aucune modification ici.

~/local/share/check_mk/notifications

Emplacement de stockage de vos scripts de notification définis par l'utilisateur. Si vous souhaitez personnaliser un script standard, copiez-le depuis ~/share/check_mk/notifications vers cet emplacement, en conservant le nom de fichier d'origine.

9.2. Fichiers journaux du serveur SMTP

Les fichiers journaux du serveur SMTP sont des fichiers système et leurs chemins d'accès absolus sont répertoriés ci-dessous. L'emplacement exact où les fichiers journaux sont stockés dépendra de votre distribution Linux.

Chemin d'accès Fonction

/var/log/mail.log

Fichier journal du serveur SMTP sous Debian et Ubuntu

/var/log/mail

Fichier journal du serveur SMTP sous SUSE Linux Enterprise Server (SLES)

/var/log/maillog

Fichier journal du serveur SMTP sous Red Hat Enterprise Linux (RHEL)


Last modified: Mon, 15 Dec 2025 14:06:15 GMT via commit 27339fb94
Sur cette page