6 Etichettatura

Panoramica

I tag sono composti da un nome del tag e da un valore del tag. Quando si assegnano tag alle entità, è possibile usare solo il nome oppure associarlo a un valore (ad esempio, mysql, jira, target:mysql, service:jira, ecc.).

I tag possono essere definiti per varie entità:

  • Template
  • host
  • item
  • scenari web
  • trigger
  • servizi
  • item e trigger dei template
  • prototipi di host, item e trigger

Fare riferimento alle linee guida ufficiali di Zabbix per raccomandazioni generali sulla definizione dei tag, insieme alle indicazioni specifiche per template, item, trigger e regole di discovery a basso livello.

I tag hanno molteplici scopi, in particolare per contrassegnare gli eventi. Quando alle entità vengono assegnati tag, qualsiasi nuovo evento relativo a un'entità taggata erediterà i relativi tag. Ad esempio:

  • con template taggati - qualsiasi problema dell'host (creato dai trigger del template) erediterà i tag del template;
  • con host taggati - qualsiasi problema dell'host erediterà i tag dell'host;
  • con item/scenari web taggati - qualsiasi problema dell'item/scenario web erediterà i tag dell'item/scenario web;
  • con trigger taggati - qualsiasi problema creato dal trigger erediterà i tag del trigger.

Un evento di problema eredita tutti i tag dall'intera catena di entità - template, host, item/scenari web, trigger. Le combinazioni identiche tag:value (dopo la risoluzione delle macro) vengono unite in una sola, evitando così duplicazioni.

I tag personalizzati degli eventi offrono maggiore flessibilità. Ad esempio:

  • la correlazione degli eventi può essere configurata in base ai tag degli eventi;
  • le condizioni delle azioni possono essere configurate in base ai tag degli eventi;
  • i problemi degli item possono essere raggruppati in base ai tag degli eventi;
  • i tag dei problemi possono essere usati per associare i problemi ai servizi.

Le entità possono essere taggate con lo stesso nome di tag ma con valori di tag diversi (ad esempio, component:memory e component:storage). Allo stesso modo, un'entità può avere un tag senza valore e lo stesso tag con un valore (ad esempio, database e database:postgresql). Tali tag non sono considerati duplicati.

Casi d'uso

Alcuni casi d'uso comuni per il tagging sono i seguenti:

  1. Contrassegnare gli eventi di trigger:

    • Definire un tag del trigger (ad esempio, scope:performance).
    • I problemi creati da questo trigger avranno il tag del trigger.
  2. Contrassegnare i problemi ereditati dal template:

    • Definire un tag del template (ad esempio, target:mysql).
    • I problemi creati dai trigger di questo template avranno il tag del template.
  3. Contrassegnare i problemi dell'host:

    • Definire un tag dell'host (ad esempio, service:jira).
    • I problemi creati dai trigger di questo host avranno il tag dell'host.
  4. Filtrare gli item correlati:

    • Definire un tag dell'item (ad esempio, component:cpu).
    • In MonitoringLatest data, gli item possono essere filtrati in base al tag component:cpu.
  5. Usare come valore del tag le informazioni estratte dal valore dell'item:

    • Definire un tag con una macro come valore del tag (ad esempio, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • In MonitoringProblems, i problemi avranno il valore del tag risolto nei dati estratti dal valore dell'item.
  6. Identificare i problemi in un file di log e chiuderli separatamente:

    • Definire un tag del trigger per il trigger dell'item di monitoraggio dei log che estrarrà i valori dal valore dell'item usando una macro (ad esempio, service:{{ITEM.VALUE<N>}.regsub()} ).
    • Nella configurazione del trigger, configurare la correlazione degli eventi:
      • impostare PROBLEM event generation mode su "Multiple";
      • impostare OK event closes su "All problems if tag values match";
      • impostare il tag per la corrispondenza.
    • I problemi creati dal trigger dell'item di log avranno il tag del trigger e verranno chiusi singolarmente.
  7. Filtrare le notifiche:

    • Definire tag del trigger (ad esempio, scope:security per trigger1 e scope:availability per trigger2).
    • Usare il filtro dei tag nelle action conditions per ricevere notifiche solo sugli eventi che corrispondono ai dati del tag.
  8. Identificare i problemi nelle notifiche:

    • Definire tag del trigger.
    • Usare la macro {EVENT.TAGS} nella notifica del problema.
    • La notifica del problema conterrà i tag del trigger, rendendo più facile identificare a quale applicazione/servizio appartiene la notifica.
  9. Semplificare le attività di configurazione usando i tag del template:

    • Definire un tag del trigger del template.
    • I trigger creati da questo trigger del template avranno il suo tag.
  10. Creare trigger con tag da low-level discovery (LLD):

    • Definire un tag del prototipo di trigger con una macro LLD nel nome o nel valore del tag (ad esempio, scope:{#FSNAME}).
    • I trigger creati dal prototipo di trigger avranno il suo tag.
  11. Corrispondere i servizi usando i tag del servizio:

    • Definire service tags.
    • Configurare service actions per i servizi con tag corrispondenti.
    • Inoltre, usare i tag del servizio per collegare un servizio a un SLA per i calcoli SLA.
  12. Collegare i servizi ai problemi usando i tag di problema del servizio:

    • Definire un problem tag nella configurazione del servizio (ad esempio, target:mysql).
    • I problemi con un tag corrispondente verranno automaticamente correlati al servizio e lo stato del servizio cambierà in base alle regole di calcolo dello stato del servizio configurate.
  13. Sopprimere i problemi quando un host è in modalità manutenzione:

  14. Concedere l'accesso ai gruppi di utenti:

Configurazione

I tag possono essere definiti in una scheda dedicata, ad esempio nella configurazione del trigger:

Supporto macro

Le macro integrate e le macro utente nei tag vengono risolte al momento dell'evento. Fino a quando l'evento non si è verificato, queste macro saranno mostrate nel frontend di Zabbix come non risolte.

Le macro di low-level discovery vengono risolte durante il processo di discovery.

Le seguenti macro possono essere utilizzate nei nomi e nei valori dei tag dei trigger:

  • macro integrate {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} e {HOST.ID}
  • macro integrate {INVENTORY.*} (per fare riferimento ai valori dell'inventario host da uno o più host in un'espressione trigger)
  • macro utente e macro utente con contesto (il contesto può includere macro di low-level discovery)
  • macro di low-level discovery (solo nei tag dei prototipi di trigger)

Le seguenti macro possono essere utilizzate nei nomi e nei valori dei tag di template, host e item/scenari web:

  • macro integrate {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} e {HOST.ID}
  • macro integrate {INVENTORY.*}
  • macro utente
  • macro di low-level discovery (solo nei tag dei prototipi di host e item)

Le seguenti macro possono essere utilizzate nelle notifiche basate su trigger:

  • macro integrate {EVENT.TAGS} e {EVENT.RECOVERY.TAGS} (queste macro verranno risolte in un elenco di tag evento o tag evento di ripristino separati da virgole)
  • macro integrate {EVENT.TAGSJSON} e {EVENT.RECOVERY.TAGSJSON} (queste macro verranno risolte in un array JSON contenente oggetti tag evento o oggetti tag evento di ripristino)
Estrazione di sottostringa nei tag del trigger

L'estrazione di sottostringa è supportata per compilare il nome del tag o il valore del tag, usando una funzione macro. La funzione applica un'espressione regolare al valore ottenuto dalla macro supportata. Ad esempio:

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

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

Se il nome o il valore del tag supera i 255 caratteri dopo la risoluzione della macro, verrà troncato a 255 caratteri.

Vedi anche: Uso delle funzioni macro nelle macro di discovery a basso livello per il tagging degli eventi.

Visualizzazione dei tag degli eventi

I tag, se definiti, possono essere visualizzati con i nuovi eventi in:

L'ordine e il numero dei tag visualizzati sono determinati dalle opzioni di filtro Tag display priority e Show tags in MonitoringProblems o nel widget della dashboard Problems. Nota che è possibile visualizzare al massimo tre tag; se i tag sono più di tre, passando il mouse sui tre puntini vengono mostrati tutti i tag in una finestra popup.