6 Balisage

Aperçu

Les tags se composent d’un nom de tag et d’une valeur de tag. Lors du marquage des 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

Dans les listes Modèles, Hôtes, Éléments, Déclencheurs, Scénarios web et leurs prototypes, la colonne Tags affiche à la fois les tags normaux et les tags hérités. Lorsque vous survolez ou cliquez sur un tag hérité, une infobulle JavaScript apparaît avec le texte « Inherited tag ». Si un tag hérité existe également comme tag normal, un texte d’infobulle différent est affiché selon la liste où il apparaît (par exemple, « Inherited and template tag » dans la liste des modèles ou « Inherited and host tag » dans la liste des hôtes). Dans les autres parties de l’interface, les tags normaux et hérités sont affichés ensemble (les doublons sont supprimés), sans icônes et sans texte d’infobulle supplémentaire.

Consultez les directives officielles de Zabbix pour les recommandations générales sur la définition des tags, ainsi que les recommandations 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 usages, 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 tag:value identiques (après résolution des macros) sont fusionnées en une seule, évitant ainsi les doublons.

Les événements de rétablissement générés par une fermeture manuelle incluent également les tags d’événement résolus hérités des modèles, hôtes, éléments/scénarios web et déclencheurs. Ces tags sont disponibles dans les notifications et via des macros telles que {EVENT.RECOVERY.TAGS} et {EVENT.RECOVERY.TAGSJSON}.

Les tags d’événement personnalisés offrent davantage de flexibilité. Par exemple :

  • la corrélation d’événements peut être configurée sur la base des tags d’événement.
  • les conditions d’action peuvent être configurées sur la base des tags d’événement.
  • les problèmes d’élément peuvent être regroupés sur la base des tags d’événement.
  • 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 marquage par tags :

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

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

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

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

    • Définissez un tag d'élément de données (par exemple, component:cpu).
    • Dans Monitoring > Latest data, les éléments de données peuvent être filtrés par le tag component:cpu.
  5. Utiliser les informations extraites de la valeur de l'élément de données comme valeur du tag :

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

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

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

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

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

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

    • Définissez des tags de service.
    • Configurez des actions de service pour les services avec des tags correspondants.
    • En outre, utilisez les tags de service pour lier un service à un SLA pour les calculs de SLA.
  12. Lier des services à des problèmes à l'aide de tags de problème de service :

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

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

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 le frontend 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 ou la valeur du tag, à l’aide d’une fonction de macro. 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 la résolution de la macro, il sera tronqué à 255 caractères.

Voir aussi : utilisation des fonctions de macro dans les macros de découverte de 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 Tag display priority et Show tags dans Monitoring > Problems ou dans le widget de tableau de bord Problems. Notez qu'un maximum de trois tags peut être affiché ; s'il y a davantage de tags, le survol des trois points permet d'afficher tous les tags dans une fenêtre contextuelle.