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

Checkmk prend en charge le concept d'étiquettes, dont vous pouvez attribuer un nombre illimité à un ordinateur hôte. Les étiquettes et les balises de l’hôte fonctionnent de manière assez similaire :

  • Les étiquettes sont « associées » aux ordinateurs hôtes de la même manière que les balises.

  • Les étiquettes peuvent être utilisées comme conditions pour les règles, tout comme les balises.

  • Les étiquettes sont créées de la même manière que les balises, selon le principe «key:value».

Alors pourquoi y a-t-il ici un nouveau concept ? Eh bien, le monde de l’informatique évolue et devient beaucoup plus dynamique. Les systèmes cloud et de conteneurs tels qu’Amazon Web Services (AWS), Microsoft Azure et Kubernetes créent et suppriment de manière autonome ce qu’ils appellent des objets — qui correspondent aux ordinateurs hôtes dans Checkmk. Dans ces technologies, les étiquettes et les balises jouent un rôle important car elles établissent les connexions entre les objets sous supervision et leurs fonctions. Les noms de domaine, en revanche, sont de plus en plus aléatoires et dénués de sens.

Checkmk peut créer automatiquement de tels hôtes dynamiques grâce à la gestion dynamique des hôtes, et peut également recevoir des informations sur les étiquettes/balises déjà présentes. Ces étiquettes/balises peuvent ensuite être utilisées pour les conditions de règles, les recherches, les évaluations, les tableaux de bord et d’autres tâches.

Bien sûr, la question se pose : pourquoi ne pas simplement effectuer l’affectation de ces étiquettes dynamiques au concept existant de balises de l’hôte ? C’est en effet une conclusion qui semble très évidente à première vue. Cependant, les balises de l’hôte possèdent une propriété très importante qui rendrait cela très difficile et compliqué : Checkmk définit de manière rigide quelles balises et quels groupes de balises de l’hôte sont présents. Tout est bien défini. Chaque hôte possède exactement une balise de chaque groupe. Tout le monde peut s’y fier. Aucune erreur de frappe dans l’orthographe des balises ne peut se produire — même avec des hôtes qui ne respectent pas le schéma — car leur conformité est strictement contrôlée par Checkmk. Ceci est très important et utile dans des environnements très hétérogènes comptant plusieurs milliers d’hôtes gérés manuellement.

En revanche, les étiquettes dynamiques de Kubernetes et autres sont en réalité « libres », et même si elles suivent un schéma, celui-ci est inconnu de Checkmk. De plus, vous effectuez peut-être la supervision de plusieurs plateformes différentes, qui utilisent à leur tour les étiquettes de manière très différente.

C’est pourquoi un concept d’étiquettes Checkmk a été introduit pour s’adapter à cette dynamique croissante. Bien entendu, vous pouvez également utiliser ces étiquettes même si vous n’utilisez pas de connexions à des environnements cloud.

Pour répondre à la question « Quand utiliser les étiquettes et quand utiliser les balises de l’hôte ? », vous trouverez plus d'informations dans l'article sur la structuration des hôtes.

Voici les caractéristiques des étiquettes :

  • Les étiquettes n’ont pas besoin d’être prédéfinies. Il n’y a pas de schéma fixe pour les étiquettes. Tout est libre. Tout est permis.

  • Chaque ordinateur hôte peut avoir autant d'étiquettes que vous le souhaitez. Ceux-ci peuvent être gérés manuellement, définis via des règles ou créés automatiquement.

  • Les étiquettes sont structurées selon le principe « une clé, une valeur » (key:value). Chaque ordinateur hôte ne peut avoir qu’une seule valeur par clé. Ainsi, un ordinateur hôte qui possède l’étiquette « foo:bar » ne peut pas avoir en même temps « foo:bar2 ».

  • Contrairement aux balises de l’hôte, la clé et la valeur — à l’exception du deux-points (:) — peuvent contenir n'importe quel caractère.

  • Il n'y a pas de distinction entre l'identifiant et le titre (ou nom affiché) : la clé de l'étiquette est les deux à la fois.

Les étiquettes ont les fonctions suivantes :

  • Elles constituent la base des conditions dans les règles de configuration, par exemple : « Tous les ordinateurs hôtes portant l'étiquette os:windows doivent être soumis à la même supervision. »

  • Il est très facile de stocker des informations supplémentaires ou des commentaires sur un ordinateur hôte (par exemple, location:RZ 74/123/xyz) et de les afficher dans des vues de la table, par exemple.

2. Création d'étiquettes

2.1. Étiquettes explicites

Il existe plusieurs façons d'attribuer des étiquettes à un ordinateur hôte.

La première méthode est simple : Sur la page des propriétés de l'hôte, qui s'affiche lorsque vous créez ou modifiez un hôte dans la Configuration, vous pouvez attribuer à un hôte autant d'étiquettes que vous le souhaitez :

Dialog with properties of a host for defining labels.

Cochez la case à cocher « Activer l'Labels », puis cliquez dans le champ « Add some label », saisissez la définition de l'étiquette en respectant le format key:value et terminez en appuyant sur Entrée.

Vous pouvez modifier une étiquette existante en cliquant sur son texte, ou la supprimer à l'aide du petit « x ».

Tip

La clé et la valeur d’une étiquette peuvent contenir n’importe quel caractère, à l’exception des deux-points (:) ! Vous devez toutefois réfléchir soigneusement à l’utilisation des caractères et des majuscules/minuscules, car si vous définissez ultérieurement des conditions via des étiquettes, l’orthographe de la clé et de la valeur devra être strictement respectée.

Bien entendu, les étiquettes peuvent également être héritées d’un dossier. À l’instar d’autres attributs, les étiquettes peuvent se trouver dans des sous-dossiers ou au niveau de l’ordinateur hôte, puis être réécrites si nécessaire — individuellement, en fait. Si, par exemple, l’étiquette location:munich est définie dans le dossier, celle-ci sera héritée par tous les ordinateurs hôtes de ce dossier qui ne possèdent pas déjà l’étiquette location définie. Les autres étiquettes qu’un ordinateur hôte peut posséder ne seront pas affectées.

Les étiquettes définies explicitement pour les ordinateurs hôtes ou les dossiers apparaissent en violet dans la liste des ordinateurs hôtes :

List entry of a host with the assigned explicit labels.

2.2. Création d'étiquettes à l'aide de règles

Comme d’habitude dans Checkmk, des attributs peuvent également être attribués aux hôtes et aux services par le biais de règles. Cela vous rendra indépendant de la structure des dossiers, et cela s’applique également aux étiquettes. Il existe un jeu de règles Host labels pour cette fonction, que vous pouvez trouver rapidement via une recherche dans le menu de configuration.

La règle suivante ajoute l'étiquette « hw:real » à tous les ordinateurs hôtes du dossier « Bavaria » qui possèdent la balise de l’hôte « Real Hardware » :

Rule for specifying labels for hosts.

Vous avez peut-être remarqué que les étiquettes ne peuvent pas être utilisées dans les conditions de cette règle. Il ne s'agit pas d'une erreur, mais d'un choix délibéré, qui permet d'éviter les dépendances récursives et d'autres anomalies.

Les étiquettes ajoutées via des règles apparaissent en rouge sur l'ordinateur hôte concerné, mais n'apparaissent pas dans la liste des ordinateurs hôtes de la Configuration ; elles n'apparaissent qu'avec la vue d'état de l'ordinateur hôte.

2.3. Étiquettes générées automatiquement

La troisième façon de créer des étiquettes est entièrement automatique. Diverses sources de données, telles que les agents spéciaux pour la supervision des systèmes cloud et des conteneurs, génèrent automatiquement des étiquettes. Il convient notamment de mentionner ici les agents spéciaux pour AWS, Azure et Kubernetes. Ces éléments sont parfois également appelés « balises » sur les plateformes respectives et sont créés dans Checkmk en tant qu’étiquettes d’hôte ou de service. Les jeux de règles correspondants fournissent des informations suffisantes à ce sujet.

L'avantage est que vous n'avez absolument rien à configurer. Dès que ces sources de données sont actives, les étiquettes correspondantes sont générées.

Dans la section Étiquettes d'hôte générées automatiquement, vous trouverez un aperçu des étiquettes que Checkmk génère automatiquement.

2.4. Spécification des étiquettes via un plugin d'agent

Un moyen simple de manipuler directement les étiquettes consiste à ajouter un plugin d’agent qui, à l’instar des checks locaux, crée une section intitulée «labels». De cette manière, vous pouvez attribuer des étiquettes de manière plus détaillée qu’en évaluant uniquement l’inventaire matériel/logiciel — par exemple, en fonction des nuances du matériel installé (telles que les caractéristiques du processeur), ou en fonction des processus réellement en cours d’exécution (plutôt que simplement des logiciels installés).

La sortie des étiquettes doit être formatée sous la forme d’un dictionnaire Python, comme dans l’exemple suivant :

<<<labels:sep(0)>>>
{"cpu/vendor": "zilog"}

Évitez les conflits avec les étiquettes attribuées automatiquement par Checkmk lui-même et par d’autres plugins, car aucun ordre d’évaluation particulier ne peut être garanti.

2.5. Intégration des étiquettes détectées lors de la vérification d’identification

Si vous avez activé le contrôle d’identification — ce qui est le cas par défaut pour les nouvelles installations —, celui-ci vous avertira lorsque de nouvelles étiquettes d’hôte seront détectées et n’auront pas encore été ajoutées aux propriétés de l’hôte dans la Configuration. Cela ressemblera par exemple à ceci :

Service list with the service 'Check_MK Discovery'.

Vous disposez de deux options pour répondre à cet avertissement. La première consiste à ajouter les nouvelles étiquettes en appelant la configuration du service pour l’ordinateur hôte dans la configuration et en mettant à jour la configuration des étiquettes via l’entrée « Hosts > Update host labels » du menu de configuration. Le contrôle de découverte sera alors à nouveau en mode « OK » lors de sa prochaine exécution (avec un délai pouvant aller jusqu’à deux heures), même si vous n’avez pas encore activé les modifications. Si vous ne souhaitez pas attendre aussi longtemps, vous pouvez également mettre à jour manuellement le service immédiatement en sélectionnant « Reschedule check » dans le menu d'action du service.

Si cela concerne plusieurs ordinateurs hôtes à la fois, vous ne souhaiterez certainement pas accéder à la configuration du service pour chaque ordinateur hôte. La meilleure solution consiste alors à exécuter l’action Bulk « Run bulk service discovery » et à sélectionner « Only discover new host labels » comme mode — ou bien « Add unmonitored services and new host labels » si vous souhaitez également profiter de l’occasion pour ajouter de nouveaux services.

La deuxième façon de faire passer le check d’identification au vert consiste à le reconfigurer afin qu’il ne vous avertisse plus de la présence de nouvelles étiquettes. Pour ce faire, accédez au jeu de règles « Periodic service discovery » et modifiez la règle existante — vous y trouverez l’option « Severity of new host labels » :

Rule for periodic service discovery.

Cette option est définie par défaut sur « Warning ». Sélectionnez « OK - do not alert, just display » et le check ne s'affichera plus.

Les étiquettes détectées lors de la check-list d’identification s’affichent en jaune-ocre.

2.6. Ordre des priorités d’attribution des étiquettes

En théorie, une même étiquette peut être définie avec des valeurs différentes dans plusieurs sources simultanément. C'est pourquoi l'ordre de priorité suivant s'applique :

  1. Tout d'abord, les étiquettes explicites, c'est-à-dire celles que vous définissez pour l'ordinateur hôte ou le dossier directement dans la Configuration.

  2. En deuxième lieu, les étiquettes créées par des règles.

  3. En dernier lieu, les étiquettes générées automatiquement.

Ces règles de priorité vous offrent un contrôle total sur les étiquettes.

3. Les étiquettes en tant que conditions dans les règles

3.1. Conditions dans les règles

Une fonction importante des étiquettes est identique à celle des caractéristiques d'hôte : à savoir, leur utilisation comme condition dans les règles. Ceci est particulièrement utile pour les étiquettes générées automatiquement, car vous pouvez adapter votre supervision de manière entièrement automatique en fonction des informations provenant d'AWS, d'Azure, de Kubernetes et autres.

Ajoutez des conditions avec Add to condition pour les étiquettes d'hôte ou de service. Sélectionnez ensuite soit is soit not pour formuler une condition positive ou négative, puis saisissez l'étiquette sous la forme habituelle key:value. Veillez à respecter l'orthographe exacte, y compris les majuscules. Comme les étiquettes peuvent être définies sans spécifications, Checkmk ne peut pas détecter les fautes de frappe. Néanmoins : lorsque vous saisissez une étiquette, Checkmk vous propose des étiquettes existantes si elles correspondent à votre saisie précédente. Aucune distinction n'est faite entre les étiquettes d'hôte et de service dans les suggestions : toutes les étiquettes correspondantes sont proposées. Veillez à respecter l'orthographe, car les fautes de frappe, les majuscules incorrectes, etc. entraîneront le dysfonctionnement de la règle.

Cependant, la définition de la condition va encore plus loin : Pour affiner davantage la condition, vous disposez également des opérateurs booléens Not, And et Or. Ici, Not est l'abréviation de « And Not ».

  • Not signifie que la condition A doit être remplie et que la condition B ne doit pas l'être en même temps.

  • And signifie que les conditions A et B doivent être remplies simultanément.

  • Or signifie que la condition A ou la condition B doit être remplie, mais que les deux conditions peuvent également être remplies.

Important

Les opérateurs sont traités exactement dans cet ordre de priorité — Not, And, Or — c'est-à-dire pas nécessairement dans l'ordre dans lequel ils apparaissent dans la liste. Cela correspond à la norme de l'algèbre booléenne. Par exemple, A And B Not C Or D correspondrait aux parenthèses (A And (B Not C)) Or D.

Par exemple, pour trouver les ordinateurs hôtes portant l'étiquette cmk/site:today mais ne portant pas l'étiquette cmk/piggyback_source_today:yes, la condition pourrait se présenter ainsi :

Condition for host labels.

Vous pouvez affiner cette condition avec is ou not en y ajoutant d’autres spécifications. Vous pouvez également ajouter un nouveau groupe de conditions avec Add to condition, ce qui rend la condition désormais plus complexe plus facile à lire, sans pour autant modifier l’évaluation de l’algèbre booléenne :

multiple conditions for host labels.
Tip

Si vous n’avez défini ni Host tags ni Host labels, la règle en question s’applique toujours à tous les ordinateurs hôtes ou services. Si vous avez créé plusieurs règles, les règles suivantes peuvent ne plus être évaluées ; voir Types d’analyse des règles.

Vous pouvez utiliser à la fois des étiquettes et des balises de l’hôte dans une règle. Celles-ci sont automatiquement liées par un opérateur ET. La règle ne s'applique donc que si les deux conditions sont remplies simultanément.

3.2. Conditions dans les règles de notification

Vous pouvez également utiliser des étiquettes comme conditions dans les règles de notification. Leur utilisation est identique à celle des autres conditions ; vous n’avez donc pas besoin de vous familiariser à nouveau avec leur utilisation. Sélectionnez « Match host labels » (Conditions de notification) et indiquez simplement les étiquettes qu’un ordinateur hôte ou un service doit posséder pour déclencher une notification via cette règle. Là encore, les étiquettes multiples sont reliées par l’opération « ET ».

4. Étiquettes dans les vues de la table

Jusqu’à présent, nous n’avons parlé que des étiquettes dans l’environnement de configuration (ou, en abrégé, la Configuration). Les étiquettes sont également visibles dans l’environnement de supervision — dans la vue d’état d’un ordinateur hôte, par exemple :

Dialog with the host state and the assigned labels.

Vous pouvez voir ici les étiquettes dans différentes couleurs selon la manière dont elles ont été créées : les étiquettes explicites en violet, les étiquettes créées par des règles en rouge et les étiquettes créées par un contrôle d’identification en jaune-ocre.

La mise en évidence colorée des étiquettes ne se distingue pas seulement visuellement dans la vue de la table, elle est également pratique car vous pouvez cliquer dessus, ce qui vous amène à une recherche de tous les ordinateurs hôtes portant cette étiquette :

Filter bar with filter to search for a label.

Vous pouvez ici rechercher les ordinateurs hôtes portant cette étiquette (en utilisant l'is par défaut) ou ne la portant pas (en utilisant l'option is not).

Vous pouvez également utiliser les opérateurs booléens Not, And et Or dans la recherche par étiquette, comme décrit dans la section Conditions des règles. Par exemple, pour trouver les ordinateurs hôtes Linux situés à Munich et qui ne sont pas des serveurs web, le filtre pourrait ressembler à ceci :

Filter options with 3 label filters linked by logical operators.

Vous pouvez affiner davantage ce filtre, par exemple pour trouver en plus les ordinateurs hôtes Windows qui sont à la fois « sans interface graphique » (avec or) et français (avec and). Vous pouvez saisir les trois nouvelles lignes pour cette extension du filtre directement sous celles existantes — ou vous pouvez créer un nouveau groupe avec Add to query, ce qui rend le filtre désormais plus complexe plus facile à lire, mais ne modifie pas l’évaluation de l’algèbre booléenne :

Filter options with 6 label filters linked by logical operators.
Tip

Si vous souhaitez savoir quel remplacement de parenthèse Checkmk génère à partir des filtres d’étiquette saisis, vous pouvez afficher la requête Livestatus associée. Pour ce faire, activez Setup > General > Global settings > Debug Livestatus queries.

Dans la barre de filtrage, vous pouvez bien sûr également combiner la recherche d’étiquettes avec les autres paramètres de recherche disponibles.

5. Étiquettes de service

Les services peuvent également avoir des étiquettes. Celles-ci sont similaires aux étiquettes d'hôte, à quelques petites différences près :

  • Vous ne pouvez pas définir explicitement les étiquettes de service. Celles-ci ne peuvent être créées que par des règles (Service labels) ou automatiquement.

  • Vous pouvez également formuler des conditions à l'aide d'étiquettes de service. Dans un jeu de règles, les étiquettes de service ne sont proposées en entrée que si la règle peut saisir un service.

6. Étiquettes de l'agent

Checkmk Ultimate inclut la possibilité de créer automatiquement des ordinateurs hôtes. Pour cela, l'ensemble du processus d'enregistrement de l'agent, de création de l'ordinateur hôte, de reconnaissance du service et d'activation des modifications est automatisé. La création de l'ordinateur hôte a lieu après l'enregistrement.

Cette automatisation pose certains défis pour la structuration des ordinateurs hôtes nouvellement créés. Jusqu’à présent, le système d’exploitation (stocké dans l’étiquette d’hôte cmk/os_family) ne pouvait être déterminé qu’à partir de la sortie de l’agent. Cependant, pour obtenir cette information, l’ordinateur hôte doit déjà avoir été créé.

C'est pourquoi le concept d'étiquettes de l'agent volatiles a été introduit. Ces étiquettes sont transmises lors de l'enregistrement et sont donc disponibles avant la création du premier agent. Lors de l'enregistrement, vous pouvez utiliser les étiquettes de l'agent pour déterminer si un ordinateur hôte doit effectivement être créé dans la supervision et, le cas échéant, pour influencer le dossier de l'ordinateur hôte ainsi que d'autres attributs de l'ordinateur hôte. Une fois l'enregistrement terminé, les étiquettes de l'agent ne sont plus accessibles.

Deux étiquettes de l'agent prédéfinies sont toujours transférées lors d'un enregistrement :

  • cmk/os-family contient la famille du système d'exploitation (actuellement Windows ou Linux).

  • cmk/hostname-simple contient le nom de l'ordinateur sous une forme abrégée (c'est-à-dire sans la partie domaine)

Vous pouvez attribuer librement des étiquettes de l'agent supplémentaires et personnalisées, par exemple : organizational/department:documentation.

Les ordinateurs hôtes enregistrés automatiquement se voient attribuer l'étiquette d'hôte cmk/agent_auto_registered:yes. L'attribution directe d'étiquettes d'hôte en fonction d'étiquettes de l'agent spécifiques n'est pas prise en charge. Vous pouvez toutefois enregistrer les ordinateurs hôtes dans un dossier (temporaire), puis attribuer des étiquettes d'hôte à tous les ordinateurs hôtes de ce dossier.

7. Informations complémentaires

7.1. Étiquettes d'hôte générées automatiquement

Clé Valeurs

cmk/agent_auto_registered

yes , si un ordinateur hôte a été créé via l'enregistrement automatique

cmk/aws/ec2

instance pour toutes les instances EC2

cmk/aws/account

Nom du compte AWS auquel appartient l'ordinateur hôte

cmk/aws/tag/{key}:{value}

Balises des objets AWS

cmk/azure/resource_group

Groupe de ressources auquel appartient l'objet Azure

cmk/azure/tag/{key}:{value}

Balises des objets Azure

cmk/azure/vm

instance pour toutes les machines virtuelles Azure

cmk/check_mk_server

yes pour tous les serveurs Checkmk

cmk/device_type

Nom de périphérique SNMP, par exemple appliance, fcswitch, firewall, printer, router, sensor, switch, ups, wlc.

cmk/docker_image

Image Docker, par exemple docker.io/library/nginx:latest

cmk/docker_image_name

Nom de l'image Docker, par exemple nginx.

cmk/docker_image_version

Version de l'image Docker, par exemple latest.

cmk/docker_object

container , si l'ordinateur hôte est un conteneur Docker ; node , si l'ordinateur hôte est un Docker node

cmk/kubernetes/annotation/{key}:{value}

Ces étiquettes sont générées pour toute étiquette Kubernetes constituant une annotation Kubernetes valide (configurable via la règle Kubernetes).

cmk/kubernetes

yes si l'ordinateur hôte est un objet Kubernetes.

cmk/kubernetes/cluster

nom du cluster Kubernetes

cmk/kubernetes/cluster-host

nom de l'hôte du cluster Kubernetes

cmk/kubernetes/cronjob

Cron Kubernetes

cmk/kubernetes/daemonset

Nom du DaemonSet

cmk/kubernetes/deployment

Nom du déploiement

cmk/kubernetes/namespace

Nom de l'espace de nommage Kubernetes associé

cmk/kubernetes/node

Nom du nœud Kubernetes associé. Les hôtes Checkmk de type Pod ou Node reçoivent cette étiquette.

cmk/kubernetes/object

Type d'objet Kubernetes, par exemple « endpoint » si l'ordinateur hôte est une ressource Kubernetes.

cmk/kubernetes/statefulset

Nom du StatefulSet

cmk/meraki

yes pour tous les appareils Meraki

cmk/meraki/device_type

Type d'appareil Meraki, par exemple switch ou wireless

cmk/meraki/net_id

ID réseau auquel appartient le dispositif Meraki

cmk/meraki/org_id

ID de l'organisation à laquelle appartient le dispositif Meraki

cmk/meraki/org_name

Nom de l'organisation à laquelle appartient le dispositif Meraki

cmk/nutanix/object

control_plane pour l'ordinateur hôte équipé de l'agent spécial Nutanix ; node pour un ordinateur hôte Nutanix ; vm pour les machines virtuelles Nutanix

cmk/os_family

Système d'exploitation, signalé par l'agent sous la forme AgentOS (par exemple, windows ou linux)

cmk/os_type

Type de système d'exploitation, signalé par l'agent sous la forme OS type (par exemple, windows, linux ou unix)

cmk/os_name

Nom du système d'exploitation, signalé par l'agent sous la forme OSName (par exemple Microsoft Windows 10 Pro, Ubuntu ou Oracle Solaris)

cmk/os_platform

Plateforme du système d'exploitation, signalée par l'agent sous la forme OSPlatform (par exemple Ubuntu pour les dérivés d'Ubuntu tels que Xubuntu), si elle est stockée dans /etc/os-release ; si cette ligne est absente de la sortie de l'agent, l'étiquette prend la valeur cmk/os_family.

cmk/os_version

Version du système d'exploitation, signalée par l'agent sous la forme OSVersion (par exemple 22.04 pour Ubuntu ou 10.0.19045 pour Windows)

cmk/vsphere_object

vm si l'ordinateur hôte est une machine virtuelle ; server si l'ordinateur hôte est un système hôte ESXi.

cmk/vsphere_vcenter

yes si l'ordinateur hôte est un VMware vCenter.


Last modified: Mon, 12 Jan 2026 17:09:31 GMT via commit 134c5fe31
Sur cette page