6 Balisage

Vue d'ensemble

Les tags se composent d'un nom de tag et d'une valeur de tag. Lors du marquage d'entités, vous pouvez utiliser uniquement le nom ou l'associer à une valeur (par exemple, mysql, jira, target:mysql, service:jira, etc.).

Les tags peuvent être définis pour diverses entités :

  • Modèles
  • Hôtes
  • Éléments
  • Scénarios web
  • Déclencheurs
  • Services
  • Éléments et déclencheurs de modèle
  • Prototypes d'hôte, d'élément et de déclencheur

Consultez les recommandations officielles de Zabbix pour les recommandations générales sur la définition des tags, ainsi que des indications spécifiques pour les modèles, les éléments, les déclencheurs et les règles de découverte de bas niveau.

Les tags ont plusieurs objectifs, notamment celui de marquer les événements. Lorsque des entités sont taguées, tout nouvel événement lié à une entité taguée héritera de ses tags. Par exemple :

  • avec des modèles tagués - tout problème d'hôte (créé par des déclencheurs du modèle) héritera des tags du modèle ;
  • avec des hôtes tagués - tout problème d'hôte héritera des tags de l'hôte ;
  • avec des éléments/scénarios web tagués - tout problème d'élément/scénario web héritera des tags de l'élément/scénario web ;
  • avec des déclencheurs tagués - tout problème créé par le déclencheur héritera des tags du déclencheur.

Un événement de problème hérite de tous les tags de l'ensemble de la chaîne d'entités - modèles, hôtes, éléments/scénarios web, déclencheurs. Les combinaisons identiques tag:value (après résolution des macros) sont fusionnées en une seule, évitant ainsi les doublons.

Les tags d'événements personnalisés offrent davantage de flexibilité. Par exemple :

  • la corrélation d'événements peut être configurée en fonction des tags d'événements ;
  • les conditions d'action peuvent être configurées en fonction des tags d'événements ;
  • les problèmes d'élément peuvent être regroupés en fonction des tags d'événements ;
  • les tags de problème peuvent être utilisés pour associer des problèmes à des services.

Les entités peuvent être taguées avec le même nom de tag mais des valeurs de tag différentes (par exemple, component:memory et component:storage). De même, une entité peut avoir un tag sans valeur et le même tag avec une valeur (par exemple, database et database:postgresql). Ces tags ne sont pas considérés comme des doublons.

Cas d'utilisation

Voici quelques cas d'utilisation courants du balisage :

  1. Marquer les événements de déclencheur :

    • Définissez une étiquette de déclencheur (par exemple, scope:performance).
    • Les problèmes créés par ce déclencheur auront l'étiquette de déclencheur.
  2. Marquer les problèmes hérités du modèle :

    • Définissez une étiquette de modèle (par exemple, target:mysql).
    • Les problèmes créés par les déclencheurs de ce modèle auront l'étiquette de modèle.
  3. Marquer les problèmes de l'hôte :

    • Définissez une étiquette d'hôte (par exemple, service:jira).
    • Les problèmes créés par les déclencheurs de cet hôte auront l'étiquette d'hôte.
  4. Filtrer les éléments associés :

    • Définissez une étiquette d'élément (par exemple, component:cpu).
    • Dans MonitoringLatest data, les éléments peuvent être filtrés par l'étiquette component:cpu.
  5. Utiliser comme valeur d'étiquette les informations extraites de la valeur de l'élément :

    • Définissez une étiquette avec une macro comme valeur d'étiquette (par exemple, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • Dans MonitoringProblems, les problèmes auront une valeur d'étiquette résolue à partir des données extraites de la valeur de l'élément.
  6. Identifier les problèmes dans un fichier journal et les fermer séparément :

    • Définissez une étiquette de déclencheur pour le déclencheur de l'élément de surveillance des journaux qui extraira des valeurs de la valeur de l'élément à l'aide d'une macro (par exemple, service:{{ITEM.VALUE<N>}.regsub()} ).
    • Dans la configuration du déclencheur, configurez la corrélation des événements :
      • définissez le mode de génération des événements PROBLEM event generation mode sur "Multiple" ;
      • définissez OK event closes sur "All problems if tag values match" ;
      • définissez l'étiquette pour la correspondance.
    • Les problèmes créés par le déclencheur de l'élément de journal auront l'étiquette de déclencheur et seront fermés individuellement.
  7. Filtrer les notifications :

    • Définissez des étiquettes de déclencheur (par exemple, scope:security pour trigger1 et scope:availability pour trigger2).
    • Utilisez le filtrage par étiquette dans les conditions d'action pour recevoir des notifications uniquement sur les événements correspondant aux données de l'étiquette.
  8. Identifier les problèmes dans les notifications :

    • Définissez des étiquettes de déclencheur.
    • Utilisez la macro {EVENT.TAGS} dans la notification de problème.
    • La notification de problème contiendra les étiquettes de déclencheur, ce qui facilitera l'identification de l'application ou du service auquel la notification appartient.
  9. Simplifier les tâches de configuration en utilisant des étiquettes de modèle :

    • Définissez une étiquette de déclencheur de modèle.
    • Les déclencheurs créés à partir de ce déclencheur de modèle auront son étiquette.
  10. Créer des déclencheurs avec des étiquettes issues de la découverte bas niveau (LLD) :

    • Définissez une étiquette de prototype de déclencheur avec une macro LLD dans le nom ou la valeur de l'étiquette (par exemple, scope:{#FSNAME}).
    • Les déclencheurs créés à partir du prototype de déclencheur auront son étiquette.
  11. Faire correspondre des services à l'aide d'étiquettes de service :

    • Définissez des étiquettes de service.
    • Configurez des actions de service pour les services ayant des étiquettes correspondantes.
    • Utilisez également les étiquettes de service pour lier un service à un SLA pour les calculs de SLA.
  12. Lier des services aux problèmes à l'aide d'étiquettes de problème de service :

    • Définissez une étiquette de problème dans la configuration du service (par exemple, target:mysql).
    • Les problèmes ayant une étiquette correspondante seront automatiquement corrélés au service, et l'état du service changera en fonction des règles de calcul de l'état du service configurées.
  13. Masquer les problèmes lorsqu'un hôte est en mode maintenance :

  14. Accorder l'accès à des groupes d'utilisateurs :

    • Définissez des étiquettes dans la configuration du groupe d'utilisateurs.
    • Les utilisateurs du groupe d'utilisateurs pourront voir uniquement les problèmes ayant les étiquettes définies.

Configuration

Les tags peuvent être définis dans un onglet dédié, par exemple, dans la configuration de déclencheur :

Prise en charge des macros

Les macros intégrées et les macros utilisateur dans les tags sont résolues au moment de l'événement. Jusqu'à ce que l'événement se produise, ces macros seront affichées non résolues dans l'interface Zabbix.

Les macros de découverte de bas niveau sont résolues pendant le processus de découverte.

Les macros suivantes peuvent être utilisées dans les noms et les valeurs des tags de déclencheur :

  • macros intégrées {ITEM.VALUE}, {ITEM.VALUE.AGE}, {ITEM.VALUE.DATE}, {ITEM.VALUE.TIME}, {ITEM.VALUE.TIMESTAMP}, {ITEM.LASTVALUE}, {ITEM.LASTVALUE.AGE}, {ITEM.LASTVALUE.DATE}, {ITEM.LASTVALUE.TIME}, {ITEM.LASTVALUE.TIMESTAMP}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} et {HOST.ID}
  • macros intégrées {INVENTORY.*} (pour référencer les valeurs d'inventaire d'hôte d'un ou de plusieurs hôtes dans une expression de déclencheur)
  • macros utilisateur et macros utilisateur avec contexte (le contexte peut inclure des macros de découverte de bas niveau)
  • macros de découverte de bas niveau (uniquement dans les tags de prototypes de déclencheur)

Les macros suivantes peuvent être utilisées dans les noms et les valeurs des tags de modèle, d'hôte et d'élément/scénario web :

  • macros intégrées {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} et {HOST.ID}
  • macros intégrées {INVENTORY.*}
  • macros utilisateur
  • macros de découverte de bas niveau (uniquement dans les tags de prototypes d'hôte et d'élément)

Les macros suivantes peuvent être utilisées dans les notifications basées sur des déclencheurs :

  • macros intégrées {EVENT.TAGS} et {EVENT.RECOVERY.TAGS} (ces macros seront résolues en une liste de tags d'événement ou de tags d'événement de récupération séparés par des virgules)
  • macros intégrées {EVENT.TAGSJSON} et {EVENT.RECOVERY.TAGSJSON} (ces macros seront résolues en un tableau JSON contenant des objets de tag d'événement ou des objets de tag d'événement de récupération)
Extraction de sous-chaîne dans les tags de déclencheur

L'extraction de sous-chaîne est prise en charge pour renseigner le nom du tag ou la valeur du tag, à l'aide d'une macro fonction. La fonction applique une expression régulière à la valeur obtenue par la macro prise en charge. Par exemple :

{{ITEM.VALUE}.regsub(pattern, output)}
{{ITEM.VALUE}.iregsub(pattern, output)}

{{#LLDMACRO}.regsub(pattern, output)}
{{#LLDMACRO}.iregsub(pattern, output)}

Si le nom ou la valeur du tag dépasse 255 caractères après résolution de la macro, il sera tronqué à 255 caractères.

Voir aussi : Utilisation des fonctions de macro dans les macros de découverte à bas niveau pour le marquage des événements.

Affichage des tags d'événement

Les tags, s'ils sont définis, peuvent être consultés avec les nouveaux événements dans :

L'ordre et le nombre de tags affichés sont déterminés par les options de filtrage Priorité d'affichage des tags et Afficher les tags dans SurveillanceProblèmes ou dans le widget de tableau de bord Problèmes. Notez qu'un maximum de trois tags peut être affiché ; s'il y a davantage de tags, le survol des trois points affiche tous les tags dans une fenêtre contextuelle.