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. 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 :

Illustration of the possible states.

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 icon outof serviceperiod – en d'autres termes, lorsque sa disponibilité était « sans importance ». Vous trouverez plus d'informations sur les périodes de service ci-dessous.

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 « icon flapping instable » — c’est-à-dire les phases durant lesquelles de nombreux changements d’état ont été observés sur une courte période.

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 :

View of the availabilities of all services.

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 :

Checkmk-Availability-2021-10-19_11-01-15.csv
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 button timeline 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) :

View with timeline of state changes.

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 « button annotation », 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 « button timewarp » 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 « button annotation », 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 :

Properties of an annotation.

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» :

The 'Reclassify downtime of this period' option in the annotation properties.

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 : « button history ». 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 :

The monitoring history.

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

Menu with options for customizing the evaluation.

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

Options for the time range.

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.

Option for a relative time range.

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 %

Options for hiding rows with 100 % availability.

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

Labelling options.

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

Options for colored display when falling below threshold values.

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

Options for displaying the number and duration of outages.

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.

View with the additional columns for displaying outages.

Ces colonnes supplémentaires seront créées dans le tableau.

Affichage des spécifications de temps

Options for formatting time ranges.

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.

Option for formatting time stamps.

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é

Option for customizing the summary.

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

Option for showing the small timeline.

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

Option for grouping by host, host group or service group.

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é

Option for restricting the display to availability.

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

Options for grouping service states.

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.

Option for grouping host states.

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

Options for handling additional states.

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 : «icon flapping » — « 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

Options for handling scheduled downtimes.

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

Option for merging identical phases.

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.

Option for handling short disruptions.

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 :

Option for handling time periods for services.

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

Option for handling a notification period.

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’CREe 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 :

Option for limiting the time period for the evaluation.

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.

Option to limit the amount of data for the evaluation.

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 « button availability » :

BI view with icon for calling up availability.

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 :

View of a BI aggregation availability.

4.3. Voyage dans le temps

La grande différence réside dans la vue chronologique de l’button timeline. 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 »).

View with timeline of the BI aggregation state changes.

Souhaitez-vous connaître la cause de la panne ? Il suffit d’un simple clic sur la baguette magique button timewarp. 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 :

Timewarp of a BI aggregation.

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 ».

Selection of the report for the integration of availability.

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 :

Options for displaying availability in the report.

La dernière option est particulière :

The 'Elements to show' option in the display options.

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 :

~/var/check_mk/core/historique
[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 hours

Il 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

CRE Nagios

~/var/log/nagios.log

~/var/nagios/archive/

CEE CMC

~/var/check_mk/core/history

~/var/check_mk/core/archive

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

CEE 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 :

Statistics for calculating the cache.

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 :

Global settings for the availability cache.

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

~/var/check_mk/core/history

Fichier journal actuel de l'historique de la supervision dans le CMC

~/var/check_mk/core/archive/

Répertoire contenant les anciens fichiers journaux de l'historique

~/var/log/cmc.log

Le fichier journal du CMC, dans lequel les statistiques du cache de disponibilité peuvent être consultées

~/var/nagios/nagios.log

Le fichier journal actuel de l'historique de supervision de Nagios

~/var/nagios/archive/

Répertoire contenant les anciens fichiers journaux de Nagios

~/var/check_mk/availability_annotations.mk

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.


Last modified: Mon, 15 Dec 2025 15:05:48 GMT via commit bb34836ba
Sur cette page