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. Le principe de base
1.1. Retour sur le passé
Comme Checkmk surveille en permanence tous les ordinateurs hôtes et services à intervalles de temps réguliers, il offre une base exceptionnelle pour l’évaluation ultérieure de leur disponibilité. Et ce n’est pas tout : il est également possible de calculer pendant quel pourcentage d’une période donnée un objet s’est trouvé dans un ou plusieurs états spécifiques, à quelle fréquence cet état s’est produit, la durée de son arrêt le plus long, et bien plus encore.
Chaque calcul repose sur une sélection d’objets et une période spécifiée dans le passé. Checkmk reconstitue alors, au sein de cette période, une séquence chronologique des états de tous les objets sélectionnés. Pour chaque état, les durées sont additionnées et affichées dans un tableau. Ce tableau peut, par exemple, montrer qu’un service particulier a connu des états de 99,95 % d’OK, et de 0,005 % d’WARN au cours de la période définie.
Lors de ces calculs, Checkmk prend également correctement en compte des facteurs tels que les périodes de maintenance planifiées, les périodes de maintenance des services, les périodes non surveillées et d'autres facteurs particuliers, permet de résumer les états et d'ignorer les « brèves interruptions ». De nombreuses options de personnalisation sont également disponibles. Des agrégations BI sont également possibles.
1.2. États possibles
En raison de la prise en compte des périodes de maintenance planifiées et d’autres états spéciaux similaires, il existe en théorie un grand nombre de combinaisons d’états possibles, par exemple : «CRIT» + «In Period of Maintenance» + «In Service Time» + «Instable». Comme la plupart de ces combinaisons ne sont pas très utiles, Checkmk les réduit à un petit nombre et procède ainsi selon un principe de priorités. Étant donné que, dans l’exemple ci-dessus, le service était en période de maintenance, l’état « in scheduled downtime » s’applique simplement, et l’état réel est ignoré. Cela réduit la liste des états possibles à ce qui suit :

Ce graphique montre l'ordre de priorité des états. Nous verrons plus tard comment certains états peuvent être ignorés ou combinés. Voici à nouveau les états, en détail :
| État | Abréviation | Description |
|---|---|---|
unmonitored |
N/A |
Périodes pendant lesquelles l’objet n’était pas surveillé. Il existe deux raisons possibles à cela : l’objet ne figurait pas dans la configuration de la supervision, ou la supervision elle-même ne fonctionnait pas pendant la période spécifiée. |
out of service period |
L'objet se trouvait en dehors de sa période de service |
|
in scheduled downtime |
Downtime |
L'objet se trouvait dans une période de maintenance planifiée. Cet état sera également attribué à un service si son ordinateur hôte est en période de maintenance planifiée. |
on down host |
H.Down |
Cet état n’est disponible que pour les services — lorsque l’ordinateur hôte du service est DOWN. La supervision du service n’est pas possible à ce moment-là. Pour la plupart des services, cela revient à dire que le service est inCRIT — mais pas pour tous ! Par exemple, l’état d’un (File system-Check) est bien sûr indépendant de l’accessibilité de l’ordinateur hôte. |
flapping |
Phases au cours desquelles l’état est « |
|
UP DOWN UNREACH |
Supervision des statuts des ordinateurs hôtes |
|
OK WARN CRIT UNKNOWN |
Statuts de la supervision pour les services et les agrégations BI |
2. Recherche de disponibilité
2.1. De la vue de la table à l'analyse
La génération d'une analyse de disponibilité est très simple. Commencez par afficher n'importe quelle vue des ordinateurs hôtes, des services ou des agrégations BI. Vous y trouverez, dans le menu «Services» ou «Hosts», l'élément «Availability», qui vous mènera directement au calcul de la disponibilité des objets sélectionnés. Les données s'afficheront sous forme de tableau :

Le tableau présente les mêmes objets que ceux affichés dans la vue de la table précédente. Chaque colonne indique la proportion de la période demandée pendant laquelle un objet se trouvait dans l’état faisant l’objet de la requête. La valeur est exprimée en pourcentage, par défaut avec deux décimales — ce que vous pouvez également personnaliser facilement.
La requête de période peut être personnalisée à l’aide de l’entrée « Availability > Change display options > Time Range ». Nous y reviendrons plus tard…
Vous avez la possibilité de recevoir le tableau au format PDF (éditions commerciales uniquement). Il est également possible de télécharger les données au format CSV via (Export as CSV). Voici à quoi cela ressemblera pour l'exemple ci-dessus :
Host;Service;OK;WARN;CRIT;UNKNOWN;Flapping;H.Down;Downtime;N/A
mail.mydomain.test;Check_MK;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Check_MK Discovery;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Filesystem /var/spool;0.00%;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTP https://mail.mydomain.test/;99.85%;0.15%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;HTTPS https://mail.mydomain.test/;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;MTA performance check;99.23%;0.30%;0.46%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix Queue;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Postfix status;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
mail.mydomain.test;Uptime;100.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%;0.00%
Summary;;89.91%;10.05%;0.05%;0.00%;0.00%;0.00%;0.00%;0.00%À l’aide d’un utilisateur de l’automatisation, qui peut
s’authentifier via l’URL, vous pouvez également récupérer des données — par exemple avec
wgetou curl — et traiter automatiquement ces données sous le contrôle d’un script.
2.2. Affichage de la chronologie
Le symbole
se trouve sur chaque ligne du tableau.
Ce bouton vous permet d’accéder à un affichage chronologique de l’objet concerné,
dans lequel sont répertoriés avec précision les éléments d’état survenus au cours de
la période spécifiée (résumée ici) :

Quelques conseils utiles :
Passez le pointeur de la souris sur un symbole de chronologie dans la ligne d’un objet de l’affichage ; celui-ci sera mis en surbrillance dans le tableau.
Dans la chronologie, vous pouvez également utiliser les entrées « Availability > Change display options » ou « Availability > Change computation options » pour personnaliser les options d’affichage et d’évaluation.
Grâce au symbole «
», vous pouvez ajouter une « Annotation » à l'élément sélectionné. Vous pouvez également y enregistrer rétrospectivement des périodes de maintenance (plus d'informations à ce sujet dans la section suivante).Dans la section « Disponibilité des agrégations BI », le symbole de la baguette magique «
» vous permet de remonter le temps jusqu’à l’état de l’agrégation pour la tranche de temps en question. Vous trouverez plus d’informations à ce sujet ci-dessous.En utilisant l'entrée « Availability > Timeline » dans la vue de la table principale, vous pouvez afficher les chronologies de tous les objets sélectionnés sur une seule et longue page.
2.3. Annotations et périodes de maintenance ultérieures
Comme nous venons de le mentionner, grâce au symbole «
», les chronologies
offrent la possibilité d’ajouter une annotation à une période de temps.
Un formulaire prérempli (« Propriétés ») est fourni, dans lequel vous pouvez saisir des commentaires :

Cela vous permet de définir et d’étendre la période avec différentes valeurs selon vos besoins. Cela s’avère pratique, par exemple, si vous souhaitez annoter une période plus large ayant subi des changements d’état répétés. Si vous omettez de saisir un service, l’annotation sera créée pour l’ordinateur hôte. Elle sera alors automatiquement associée à tous les services de l’ordinateur hôte.
Dans chaque vue de la table, toutes les annotations applicables à la période et aux objets affichés seront automatiquement visibles.
Mais les annotations ont une fonction supplémentaire. Les périodes de maintenance peuvent être saisis rétrospectivement — ou, à l’inverse, supprimées. L’analyse de disponibilité prend en compte ces corrections exactement de la même manière que pour les périodes de maintenance « normales ». Il existe au moins deux justifications légitimes à cela :
Au cours des opérations, il peut arriver que des périodes de maintenance planifiées soient saisis de manière erronée. Cela nuit bien sûr à la précision des statistiques de disponibilité. La saisie rétrospective de ces durées permet ainsi de rectifier le reporting.
Certains utilisateurs abusent des périodes de maintenance lors d’une panne spontanée afin de supprimer une notification. Cela fausse effectivement l’analyse ultérieure. Cela peut être corrigé a posteriori en supprimant la période de maintenance erronée.
Pour reclasser les périodes de maintenance, il suffit de cocher la case à cocher «Reclassify downtime of this period» :

2.4. Affichage de l'historique de supervision
Dans le tableau de disponibilité, à côté du symbole de la chronologie, vous trouverez un autre
symbole : «
». Celui-ci vous permet d’accéder à une
vue de l’historique de la supervision avec un filtre prérempli pour l’objet concerné
et la période de la requête. Vous y verrez non seulement l’événement
sur lequel repose l’analyse de disponibilité (les changements d’état),
mais aussi les notifications associées et les événements similaires :

Ce qui n’apparaît pas ici, c’est l’état de l’objet au début de la période de temps couverte par la requête. Le calcul de la disponibilité remonte encore plus loin dans le temps afin de déterminer de manière fiable l’état initial.
3. Options de calcul

Outre le calcul lui-même, l'affichage de la disponibilité peut également être géré à l'aide de nombreuses options. Vous les trouverez dans les entrées du menu « Availability > Change display options » et « Availability > Change computation options ».
Une fois les options modifiées et confirmées via Apply, la disponibilité sera recalculée et affichée. Toutes les options modifiées seront enregistrées dans le profil de l’utilisateur en tant que paramètres par défaut, de sorte que les requêtes suivantes utiliseront les mêmes paramètres.
Parallèlement, les options seront intégrées à l’URL de la page actuelle. Si vous enregistrez maintenant un signet sur la page — par exemple, à l’aide de l’élément pratique Bookmarks — les options en feront partie, et lorsque vous cliquerez dessus ultérieurement, la page sera générée exactement de la même manière.
3.1. Choix de la période

La première option, et la plus importante, dans tout calcul de disponibilité est bien sûr
la période à examiner. Dans Date range, il est possible de spécifier une période avec des dates de début
et de fin précises.
Le dernier jour — jusqu’à minuit — sera inclus.

Les spécifications temporelles relatives sont bien plus pratiques, comme par exemple « une semaine ». La période exacte qui sera affichée — intentionnellement — dépend du moment où le calcul est effectué. Remarque — ici, « une semaine » fait toujours référence à une période allant du lundi 00 h 00 au dimanche 24 h 00.
3.2. Options affectant les affichages
De nombreuses options influencent le format des affichages, tandis que d’autres influencent les méthodes de calcul. Pour commencer, examinons les affichages :
Masquer les lignes avec une disponibilité de 100 %

L’option « Only show objects with outages » limite l’affichage aux objets
qui ont réellement subi des interruptions — c’est-à-dire aux moments où l’état n’était pas « OK » ou « UP ».
Cela s’avère utile lorsqu’il existe un grand nombre de services, parmi lesquels seuls les
rares qui présentent réellement des problèmes présentent un intérêt.
Options d’étiquetage

Les Labelling options permettent d’activer ou de désactiver divers champs d’étiquette. Certaines options présentent un intérêt particulier pour le reporting. Si, par exemple, un rapport doit être généré pour un seul ordinateur hôte, la colonne correspondant au nom de domaine n’est pas vraiment nécessaire.
Les alternative display namess des services peuvent être définies à l’aide d’une règle, ce qui permet, par exemple, d’attribuer aux affichages des services importants un nom explicite et significatif pour le lecteur du rapport.
Utilisation des couleurs lors de l'affichage des SLA avec des valeurs seuils

Grâce à l’Visual levels, vous pouvez mettre en évidence les objets qui n’ont pas maintenu une disponibilité spécifiée au cours de la période interrogée. Cela s’applique uniquement à la colonne relative à l’état de l’OK. Celle-ci est normalement toujours verte. Un écart par rapport à la valeur seuil défini entraînera un changement de couleur de cette cellule, qui passera du vert au jaune, ou au rouge. On pourrait décrire cela comme un aperçu très simple des SLA.
Affichage du nombre et de la durée des pannes individuelles

L'option « Outage statistics » (Afficher les informations supplémentaires) ajoute des colonnes d'informations supplémentaires dans le tableau de disponibilité. Sur la capture d'écran ci-dessous, on peut voir que les informations supplémentaires pour « max. duration » et « count » ont été activées pour la colonne d'état « Crit/Down ». Cela signifie que pour les interruptions présentant un état « CRIT » / « DOWN », le nombre d'incidents, ainsi que la durée de l'incident le plus long, sont respectivement affichés.

Ces colonnes supplémentaires seront créées dans le tableau.
Affichage des spécifications de temps

Il n’est pas toujours judicieux d’exprimer les (in)disponibilités en pourcentages. L'option « Format time ranges » permet de passer à un affichage qui présente les périodes sous forme de valeurs absolues. Ainsi, la durée totale des pannes peut être visualisée à la minute près. L'affichage indique même les secondes, mais notez que cela n'a de sens que si la supervision est effectuée à des intervalles de temps d'une seconde, et non pas, comme c'est habituellement le cas, avec une vérification par minute. De même, la précision de la spécification (le nombre de décimales dans les valeurs en pourcentage) peut être définie.

Le formatage des horodatages s'applique aux paramètres de l'Timeline. Le passage aux époques Unix (secondes écoulées depuis le 1er janvier 1970) simplifie la corrélation des périodes avec les emplacements appropriés dans les données du journal de l'historique de la supervision.
Personnalisation de la ligne de résumé

Non seulement le résumé figurant dans la dernière ligne du tableau peut être activé/désactivé à l’aide de cette option, mais vous pouvez également choisir entre une somme totale et une moyenne. Pour les colonnes contenant une valeur en pourcentage, l’utilisation du paramètre « Display total sum » entraînera l’affichage d’une moyenne, car l’addition de valeurs en pourcentage n’a guère de sens.
Affichage de la petite chronologie

Cette option ajoute une version miniature de la chronologie de disponibilité directement dans le tableau des résultats. Elle correspond à la barre graphique de la chronologie détaillée, mais est plus petite et intégrée directement dans le tableau. De plus, elle est à l'échelle, ce qui permet de comparer plusieurs objets dans le même tableau.
Regroupement par ordinateur hôte, groupe d’hôtes ou groupe de service

Quel que soit l'écran d'où vous venez, la disponibilité affiche toujours tous les objets dans un tableau commun. Grâce à cette option, vous pouvez sélectionner un regroupement par ordinateur hôte, par groupe d'hôtes ou par groupe de service — chaque groupe disposera alors de sa propre ligne d'Summary.
Notez qu’avec un regroupement par groupe de service, les services peuvent apparaître plusieurs fois, car ils peuvent être affectés à plusieurs groupes simultanément.
Afficher uniquement la disponibilité

L'option « Availability » garantit que seule la colonne correspondant aux états « OK » ou « UP » sera affichée — sous le titre « Avail. ». De cette manière, seule la disponibilité des « actual » sera affichée. Cette option peut être combinée avec les autres options expliquées ci-dessous, avec d'autres états (par exemple, « WARN »), et peut également inclure l'état « OK » et donc être considérée comme disponible.
3.3. Regroupement des états
Les états décrits dans l'introduction peuvent être personnalisés et condensés de très nombreuses façons. De cette manière, des formes d'évaluation très différentes peuvent être générées de manière flexible. Il existe diverses options pour cela.
Gestion des états WARN, UNKNOWN et Host DOWN

L'option « Service status grouping » permet d'afficher divers « états intermédiaires ». Une situation courante consiste à forcer le statut « WARN » à être traité comme « OK ». Cela peut s’avérer très utile si vous vous intéressez à la disponibilité réelle d’un service. Souvent, le statut « WARN » ne signifie pas qu’un véritable problème existe déjà, mais qu’il pourrait bientôt se développer. Ainsi, vu sous cet angle, le statut « WARN » doit être considéré comme disponible. Avec des services réseau tels qu’un serveur HTTP, il est certainement judicieux de traiter les périodes pendant lesquelles l’ordinateur hôte est « DOWN » de la même manière que lorsque le service est « CRIT ».
Les états omis en raison du regroupement seront bien sûr également absents du tableau des résultats, qui comportera moins de colonnes.

L'option « Host status grouping » est très similaire, mais elle concerne la disponibilité des ordinateurs hôtes. L'état « UNREACH » signifie qu'un ordinateur hôte, en raison de problèmes réseau, ne peut pas être supervisé par Checkmk. Dans de telles situations, aux fins des calculs de disponibilité, vous pouvez décider si vous préférez traiter l'état « UNREACH » comme « UP » ou « DOWN ». Par défaut, « UNREACH » est traité comme un état distinct.
Handling des périodes de temps non surveillées et instables

Dans l’option «Status classification
», des synthèses supplémentaires seront effectuées.
La case à cocher «Consider periods of flapping states
» est activée par
défaut — avec cette option, les phases de changements d’état fréquents constituent leur propre
état : «
» — « instable
». L’idée sous-jacente est
que même si l’on peut affirmer qu’à ces moments-là, le service concerné revient toujours
à l’état «OK
», en raison des interruptions fréquentes, le service est
de fait inutilisable.
En désactivant cette option, le concept d’« instabilité » sera alors complètement
ignoré, et l’état réel correspondant réapparaîtra — et la colonneflapping
sera également supprimée du tableau.
La suppression de l’option « Consider times where the host is down » fonctionne de manière similaire. Le concept de « Host down » est désactivé. Cette option n’a de sens que pour la disponibilité des services. Au cours des phases pendant lesquelles l’ordinateur hôte n’est pas UP, l’état réel du service servira de base pour la disponibilité — ou plus précisément, l’état de la dernière check avant que l’ordinateur hôte ne devienne indisponible. Cela peut s’avérer judicieux pour les services dont l’accessibilité via le réseau n’est pas pertinente.
L'option « Include unmonitored time » (Supervision de l'état de l'hôte) est similaire. Supposons qu'une analyse pour le mois de février doive être effectuée et qu'un service particulier ne soit soumis à la supervision que depuis le 15 février. Ce service a-t-il alors une disponibilité de seulement 50 % ? Avec le paramètre par défaut — l’option activée — ce sera effectivement le cas. Les 50 % manquants ne seront pas considérés comme une interruption, mais seront plutôt regroupés dans une colonne distincte intitulée «N/A». Sans cette option, cela correspondra à 100 % du temps compris entre le 15 et le 28 février. Cela signifie toutefois qu’une interruption d’une heure pour ce service sera reflétée comme le double du pourcentage d’un service qui a fait l’objet d’une supervision pendant tout le mois.
Gestion des périodes de maintenance planifiées

Avec l’option « Scheduled Downtimes », vous pouvez spécifier comment les périodes de maintenance affectent l’analyse de disponibilité :
Honor scheduled downtimes est le paramètre par défaut. Dans ce cas, les périodes de maintenance sont traitées comme un état distinct et regroupées dans leur propre colonne. Avec l’option « Treat phases of UP/OK as non-downtime », vous pouvez soustraire les périodes pendant lesquelles, malgré la période de maintenance, le service était OK.
Ignore scheduled downtimes est traité comme si aucune période de maintenance n’avait été saisie. Les pannes sont des pannes, point final. Bien sûr, cela ne vaut que si une panne s’est réellement produite.
Exclude scheduled downtimes signifie que les périodes de maintenance planifiées sont simplement exclues de la période de temps analysée. Le pourcentage de disponibilité correspond alors aux périodes en dehors des périodes de maintenance planifiées.
Fusionner des phases identiques

Lors du passage d’un état à un autre (par exemple, de « WARN » à « OK »), il peut arriver que des sections consécutives de la chronologie d’un objet aient le même état. Normalement, ces sections seront fusionnées en une seule section. C’est généralement une bonne chose, et cela rend les choses claires, mais cela a un effet sur l’ affichage des détails dans la chronologie, et éventuellement aussi sur le comptage des événements avec l’option « Outage statistics ». Vous pouvez donc désactiver le fait de fusionner à l’aide de l’ option Do not merge consecutive phases with equal state.
3.4. Ignorer les courtes interruptions
La supervision génère parfois des messages d’erreur momentanés, mais dans des conditions normales, l’objet est déjà réOKé au moment où le check suivant s’exécute (après une minute) — et aucun moyen n’a été trouvé, par le réglage des valeurs seuils ou autre, pour gérer correctement ces cas. Une solution courante consiste à régler le Maximum number of check attempts entre 1 et 3 afin d’autoriser davantage de défaillances avant qu’une notification ne soit déclenchée. C’est ainsi que le concept d’Soft states a été développé — c’est-à-dire les états WARN, CRIT ou UNKNOWN — tant que toutes les tentatives autorisées n’ont pas été « épuisées ».
Les utilisateurs de cette fonctionnalité nous demandent parfois pourquoi le module de disponibilité de Checkmk ne dispose pas d’une fonction permettant de calculer en utilisant uniquement les états «Hard states». La raison en est simple : il existe une meilleure solution ! On pourrait utiliser les états durs comme base…
… de sorte que les pannes réelles, dues à l’échec des première et deuxième tentatives de check, soient évaluées comme étant trop courtes de deux minutes.
… et il ne serait pas possible de réajuster rétrospectivement le comportement pour les pannes de courte durée.

L'option « Short time Intervals » est bien plus flexible et, en même temps, très simple. Il suffit de définir une durée qui doit être dépassée avant que les états ne soient évalués.
Supposons que la valeur temporelle ait été fixée à 2,5 minutes (150 secondes). Si un service a été en état « OK » de manière continue, puis en état « CRIT » pendant 2 minutes, avant de revenir à l’état « OK », le court intervalle « CRIT » sera simplement évalué comme « OK » ! La situation inverse fonctionne d’ailleurs également ! Un court intervalle « OK » au sein d’une longue phase « WARN » sera de même évalué comme « WARN ».
D’une manière générale, les intervalles courts pour lesquels, avant et après, le même état prévaut se verront attribuer ce même état. Pour une séquence deOK , puis unWARN de 2 minutes, suivi deCRIT , l’WARN persistera — même si sa durée était inférieure à la durée définie !
Gardez à l’esprit, lors de la définition de la durée, que dans Checkmk, l’intervalle de vérification standard est d’une minute. Ainsi, chaque état a une durée qui est un multiple d’ environ une minute. Comme les temps de réponse réels de l’agent varient légèrement, cela peut facilement correspondre à 61 ou 59 secondes. Il est donc plus prudent de ne pas saisir de durée exacte en minutes, mais plutôt d’inclure une marge de sécurité — d’où l’exemple de 2,5 minutes.
3.5. Effet des périodes de temps
Une fonction importante des calculs de disponibilité dans les éditions commerciales de Checkmk réside dans le fait que ces calculs peuvent être rendus dépendants de périodes de temps. Cela permet de définir des plages horaires pour chaque ordinateur hôte ou service individuel. Pendant ces plages horaires, l’ordinateur hôte/le service est censé être disponible et l’état correspondant est alors utilisé pour les calculs. C’est pourquoi chaque objet dispose de l’attribut « Service period ». La procédure est la suivante :
Définissez une période de temps pour les heures de service.
Attribuez-les aux objets à l'aide des jeux de règles « Host & Service parameters > Monitoring configuration > Service period for hosts » ou « … for services ».
Activez les modifications.
Utilisez l’option de disponibilité de l’Service time pour contrôler le comportement :

Il existe ici trois possibilités simples. L’ Base report only on service timespar défaut masque les heures situées en dehors des heures de service définies. Ces heures masquées ne sont alors pas prises en compte dans le calcul des 100 %. Seules les périodes comprises dans les heures de service seront effectivement prises en compte. Dans l’affichage de la chronologie, les heures restantes seront « grisées ».
Base report only on non-service times effectue l’inverse, et calcule en fait l’affichage inverse : quelle était la disponibilité en dehors des heures de service ?
La troisième option, Include both service and non-service times, désactive le concept des heures de service et affiche les calculs pour toutes les heures comprises entre le lundi 00h00 et le dimanche 24h00.
À propos : si un ordinateur hôte n’est pas dans la période de service, cela ne signifie pas automatiquement pour Checkmk que cela s’applique également aux services sur cet ordinateur hôte. Les services nécessitent toujours leur propre règle dans « Service period for services ».
La période de notification

Il existe d'ailleurs une autre option connexe : Notification period. Ici, la période de notification pour l'évaluation peut également être définie. Cette option a en réalité été conçue uniquement pour qu'aucune notification de problème ne soit générée à certaines heures, et ne couvre pas nécessairement les heures de service. Cette option a été introduite par le passé, lorsque le logiciel ne fonctionnait pas encore avec des heures de service, et n'est aujourd'hui conservée que pour des raisons de compatibilité. Il est préférable de ne pas l'utiliser.
3.6. Limitation de la période de calcul
Lors du calcul de la disponibilité, l’historique complet de l’objet sélectionné doit
être rouvert. Vous trouverez
plus bas des informations détaillées sur le fonctionnement de ce processus. En particulier dans l’
e Checkmk Community, l’analyse
peut prendre un certain temps, car son noyau ne dispose pas de cache pour les données requises et les
données de journalisation textuelles doivent être recherchées de manière séquentielle.
Afin qu’une requête excessivement complexe — qui aurait pu être lancée par inadvertance — ne bloque pas un processus Apache, ne consomme pas de CPU et ne provoque ainsi de « blocage », deux options permettent de limiter la durée du calcul. Les deux sont activées par défaut :

L'option « Query time limit » limite la durée de la requête sous-jacente vers le noyau de supervision à un temps spécifié. Ce temps est prédéfini à trente secondes. Si ce délai est dépassé, l'analyse sera interrompue et une erreur sera signalée. Si vous êtes certain que l'analyse peut s'exécuter plus longtemps, il vous suffit d'augmenter manuellement le timeout.

L'option « Limit processed data » protège contre les calculs portant sur un grand nombre d'objets. Une limite sera alors appliquée, fonctionnant de manière analogue à celle des vues de la table. Si la requête adressée au noyau de supervision produit plus de 5 000 périodes de temps, le calcul sera interrompu et un avertissement s'affichera. La limitation aura été prétraitée dans le noyau du processeur — là où les données sont collectées.
4. Disponibilité dans le domaine de l'informatique décisionnelle
4.1. Le principe de base
Une fonctionnalité puissante du calcul de disponibilité de Checkmk réside dans la possibilité de calculer la disponibilité à partir des agrégations BI. Le principal attrait réside ici dans le fait que, à cette fin, Checkmk reconstitue rétroactivement l’état précis des agrégations concernées à un moment donné en utilisant les protocoles relatifs aux états des ordinateurs hôtes et des services individuels.
Pourquoi tant de temps et d’efforts ? Pourquoi ne pas simplement interroger l’agrégation BI avec un check actif, puis afficher sa disponibilité ? Eh bien, cet effort présente de nombreux avantages pour l’utilisateur :
La structure des agrégations BI peut être adaptée rétrospectivement, puis la disponibilité peut être recalculée.
Le calcul est plus précis, car en n’utilisant pas de check actif, on évite une imprécision de +/- une minute.
Une excellente fonction d'analyse est disponible, grâce à laquelle la cause exacte d'une panne peut être recherchée a posteriori.
Plus important encore, il n'est pas nécessaire de créer un check supplémentaire.
4.2. Récupération de la disponibilité
La récupération de la vue de disponibilité est initialement analogue à celle des ordinateurs hôtes et des services.
Sélectionnez une vue comportant une ou plusieurs agrégations BI, puis sélectionnez l’entrée « BI Aggregations > Availability » du menu.
Il existe également une deuxième méthode : chaque agrégation BI dispose d’un chemin d’accès direct
vers sa disponibilité via le symbole «
» :
En soi, le calcul est initialement similaire à celui des services, mais sans les colonnes « Host down » et « flapping », car ces états n'existent pas pour la BI :

4.3. Voyage dans le temps
La grande différence réside dans la vue chronologique de l’
.
L’exemple suivant montre un agrégat sur notre serveur de démonstration, qui était en état « CRIT »
pendant un intervalle de temps très bref d’une seconde (ce serait un bon exemple pour l’
utilisation de l’option « Short time intervals »).

Souhaitez-vous connaître la cause de la panne ? Il suffit d’un simple clic sur la baguette magique
. Cela permet un voyage
dans le temps jusqu’au moment précis où la panne s’est produite,
et ouvre un affichage de l’agrégation BI à ce moment-là — dans l’image suivante,
déjà ouverte à l’emplacement correct :

5. Disponibilité dans les rapports
Les vues de disponibilité peuvent être intégrées dans les rapports. La méthode la plus simple consiste à utiliser l’option « Export > Add to report » dans les menus. Sélectionnez le rapport auquel vous souhaitez ajouter la vue, puis confirmez en cliquant sur « Add to ».

L'élément de rapport « Availability table » insère une analyse de disponibilité dans le rapport. Toutes les options évoquées ci-dessus sont disponibles sous forme de paramètres directement dans l'élément, bien que sous une forme graphique légèrement différente :

La dernière option est particulière :

Vous pouvez ici spécifier quelle vue doit être ajoutée au rapport :
Le tableau de disponibilité
La représentation graphique de la chronologie
La chronologie détaillée avec les périodes de temps individuelles
Contrairement aux vues interactives habituelles, vous pouvez ici intégrer simultanément des tableaux et des chronologies dans les rapports.
Une deuxième fonctionnalité est la spécification de la période de temps d'analyse. Cette option n'est pas disponible ici, car elle est déterminée automatiquement par le rapport.
La sélection des objets, comme pour chaque élément du rapport, est soit reprise du rapport, soit prédéfinie directement dans l'élément.
6. Contexte technique
6.1. Fonctionnement des calculs
Pour calculer la disponibilité, Checkmk accède aux journaux d'historique de supervision archivés et, pour ce faire, se base sur les changements d'état. Si, par exemple, le 20/10/2021 à 17 h 14, un service passe à l'état « CRIT », puis revient à l'état « OK » à 17 h 24, vous savez alors que pendant cette période de temps de 10 minutes, le service était dans un état « CRIT ».
Ces changements d'état sont enregistrés dans le journal de supervision, ont pour type d'alerte «
HOST ALERT» ou « SERVICE ALERT », et se présentent par exemple comme suit :
[1634742874] SERVICE ALERT: mail.mydomain.com;Filesystem /var/spool;CRITICAL;HARD;1;CRIT - 95.9% used (206.96 of 215.81 GB), (warn/crit at 90.00/95.00%), trend: 0.00 B / 24 hoursIl existe toujours un fichier journal actuel qui contient les entrées relatives à l’activité la plus récente jusqu’au moment présent, ainsi qu’un répertoire contenant une archive des périodes précédentes. L’emplacement de ces fichiers varie en fonction du noyau de supervision utilisé :
| Noyau du processeur | Fichier actuel | Fichiers plus anciens |
|---|---|---|
|
|
|
|
|
L'interface utilisateur n'accède pas directement à ces fichiers, mais les interroge à l'aide d'une requête Livestatus émise depuis le noyau de supervision. Cela est important, entre autres, car dans une supervision distribuée, les fichiers d'historique ne sont pas stockés sur le même système que l'interface graphique.
La requête Livestatus utilise la table statehist. Contrairement à
la table log – qui fournit un accès « brut » à l’historique – la table statehist est ici utilisée car elle a déjà effectué les
étapes de calcul initiales, qui prennent beaucoup de temps. Elle se charge notamment
de remonter dans l’historique pour déterminer l’état initial, ainsi que du
calcul des périodes de temps présentant le même état, avec leurs dates de début,
leurs durées et leurs dates de fin.
La procédure de condensation des états est effectuée dans l’aperçu de l’utilisateur par le module de disponibilité, comme décrit au début de cet article.
6.2. Le cache de disponibilité dans CMC
Fonctionnement du cache
Pour les requêtes portant très loin dans le passé, de nombreux fichiers journaux
doivent être traités en conséquence. Cela a évidemment un effet négatif sur
la durée du calcul. C'est pourquoi le Checkmk
Micro Core dispose d'un cache très efficace de l'historique de la supervision,
dans lequel toutes les informations importantes sur les changements d'état des objets
ont déjà été déterminées dès le départ à partir des fichiers journaux conservés en RAM, et qui est
continuellement mis à jour lors de la surveillance active.
Il en résulte que toutes les requêtes de disponibilité peuvent être
traitées directement et très efficacement à partir de la RAM, ce qui évite tout
accès supplémentaire.
L'analyse des fichiers journaux est très rapide et, avec des disques durs suffisamment rapides, peut atteindre une vitesse de traitement allant jusqu’à 80 Mo/s ! Afin que la création du cache ne retarde pas le démarrage de la supervision, celle-ci s’effectue de manière asynchrone — en fait, du présent vers le passé. Un léger retard sera perceptible si, immédiatement après le démarrage de l’instance Checkmk, une requête de disponibilité couvrant une longue période est lancée sans délai. Dans une telle situation, il est possible que le cache ne remonte pas encore assez loin dans le passé et que l’interface graphique ait besoin de quelques instants pour y réfléchir.
Lors d’une mise à jour (Activate changes), le cache est conservé ! Ce n’est qu’en cas de (re)démarrage effectif de Checkmk qu’il devra être régénéré — par exemple, à la suite d’un redémarrage du serveur ou d’une mise à jour de Checkmk.
Statistiques du cache
Si vous souhaitez savoir combien de temps la génération d’un cache peut prendre,
vous trouverez des statistiques dans le fichier journal de l’~/var/log/cmc.log. Voici un
exemple tiré d’un petit système de supervision :

Réglage du cache
Afin de maîtriser l’espace de stockage requis par le cache, celui-ci est limité à un horizon pouvant aller jusqu’à 730 jours en arrière. Cette limite est fixe — par conséquent, les requêtes remontant plus loin dans le temps ne sont pas seulement plus lentes, elles sont impossibles. Ce paramètre peut être facilement personnalisé à l’aide du paramètre global Global Settings > Monitoring Core > In-memory cache for availability data :

Outre l’horizon de calcul, il existe un deuxième paramètre intéressant : Ignore core restarts shorter than…. Un redémarrage du noyau du processeur (par exemple, à des fins de mise à jour ou de redémarrage du serveur) génère en effet des périodes de temps considérées comme des « unmonitored ». Les interruptions d’une durée maximale de 30 secondes seront ainsi simplement ignorées. Cette durée peut être augmentée et des durées plus longues peuvent également être simplement supprimées. Le calcul de la disponibilité partira alors du principe que tous les ordinateurs hôtes et services ont conservé leur dernier état communiqué pendant toute la durée.
7. Fichiers et répertoires
| Chemin d'accès au fichier | Fonction |
|---|---|
|
Fichier journal actuel de l'historique de la supervision dans le CMC |
|
Répertoire contenant les anciens fichiers journaux de l'historique |
|
Le fichier journal du CMC, dans lequel les statistiques du cache de disponibilité peuvent être consultées |
|
Le fichier journal actuel de l'historique de supervision de Nagios |
|
Répertoire contenant les anciens fichiers journaux de Nagios |
|
C'est ici que sont stockées les annotations et les périodes de maintenance modifiées a posteriori en cas de pannes. Le fichier est au format Python et peut être modifié manuellement. |
