6 Tagging

Visão geral

As tags consistem em um nome de tag e um valor de tag. Ao marcar entidades com tags, você pode usar apenas o nome ou combiná-lo com um valor (por exemplo, mysql, jira, target:mysql, service:jira, etc.).

As tags podem ser definidas para várias entidades:

  • Templates
  • Hosts
  • Items
  • Cenários web
  • Triggers
  • Serviços
  • Itens e triggers de template
  • Prototypes de host, item e trigger

Consulte as diretrizes oficiais do Zabbix para recomendações gerais sobre a definição de tags, além de orientações específicas para templates, items, triggers e regras de descoberta em baixo nível.

As tags têm várias finalidades, principalmente para marcar events. Quando entidades são marcadas com tags, qualquer novo evento relacionado a uma entidade marcada herdará suas tags. Por exemplo:

  • com templates marcados - qualquer problema de host (criado por triggers do template) herdará as tags do template;
  • com hosts marcados - qualquer problema de host herdará as tags do host;
  • com items/cenários web marcados - qualquer problema de item/cenário web herdará as tags do item/cenário web;
  • com triggers marcados - qualquer problema criado pelo trigger herdará as tags do trigger.

Um evento de problema herda todas as tags de toda a cadeia de entidades - templates, hosts, items/cenários web, triggers. Combinações idênticas de tag:value (após a resolução de macros) são mescladas em uma só, evitando assim duplicação.

Tags de evento personalizadas oferecem mais flexibilidade. Por exemplo:

  • correlação de eventos pode ser configurada com base em tags de evento;
  • condições de ação podem ser configuradas com base em tags de evento;
  • problemas de item podem ser agrupados com base em tags de evento;
  • tags de problema podem ser usadas para mapear problemas para serviços.

As entidades podem ser marcadas com o mesmo nome de tag, mas com valores de tag diferentes (por exemplo, component:memory e component:storage). Da mesma forma, uma entidade pode ter uma tag sem valor e a mesma tag com um valor (por exemplo, database e database:postgresql). Essas tags não são consideradas duplicadas.

Casos de uso

Alguns casos de uso comuns para tagging são os seguintes:

  1. Marcar eventos de trigger:

    • Defina uma tag de trigger (por exemplo, scope:performance).
    • Os problemas criados por esse trigger terão a tag de trigger.
  2. Marcar problemas herdados de template:

    • Defina uma tag de template (por exemplo, target:mysql).
    • Os problemas criados por triggers desse template terão a tag de template.
  3. Marcar problemas de host:

    • Defina uma tag de host (por exemplo, service:jira).
    • Os problemas criados por triggers desse host terão a tag de host.
  4. Filtrar items relacionados:

    • Defina uma tag de item (por exemplo, component:cpu).
    • Em MonitoringLatest data, os items podem ser filtrados pela tag component:cpu.
  5. Usar informações extraídas do valor do item como valor da tag:

    • Defina uma tag com uma macro como valor da tag (por exemplo, tag-name:{{ITEM.VALUE<N>}.regsub()} ).
    • Em MonitoringProblems, os problemas terão o valor da tag resolvido para os dados extraídos do valor do item.
  6. Identificar problemas em um arquivo de log e fechá-los separadamente:

    • Defina uma tag de trigger para o trigger do item de monitoramento de log que extrairá valores do valor do item usando uma macro (por exemplo, service:{{ITEM.VALUE<N>}.regsub()} ).
    • Na configuração do trigger, configure a correlação de eventos:
      • defina o modo de geração de eventos PROBLEM event generation mode como "Multiple";
      • defina OK event closes como "All problems if tag values match";
      • defina a tag para correspondência.
    • Os problemas criados pelo trigger do item de log terão a tag de trigger e serão fechados individualmente.
  7. Filtrar notificações:

    • Defina tags de trigger (por exemplo, scope:security para trigger1 e scope:availability para trigger2).
    • Use filtragem por tag nas action conditions para receber notificações apenas nos eventos que correspondem aos dados da tag.
  8. Identificar problemas nas notificações:

    • Defina tags de trigger.
    • Use a macro {EVENT.TAGS} na notificação de problema.
    • A notificação de problema conterá as tags de trigger, facilitando identificar a qual aplicação/serviço a notificação pertence.
  9. Simplificar tarefas de configuração usando tags de template:

    • Defina uma tag de trigger de template.
    • Os triggers criados a partir desse trigger de template terão sua tag.
  10. Criar triggers com tags a partir de low-level discovery (LLD):

    • Defina uma tag de protótipo de trigger com uma macro LLD no nome ou valor da tag (por exemplo, scope:{#FSNAME}).
    • Os triggers criados a partir do protótipo de trigger terão sua tag.
  11. Correlacionar serviços usando tags de serviço:

    • Defina service tags.
    • Configure service actions para serviços com tags correspondentes.
    • Além disso, use tags de serviço para vincular um serviço a um SLA para cálculos de SLA.
  12. Vincular serviços a problemas usando tags de problema de serviço:

    • Defina uma problem tag na configuração do serviço (por exemplo, target:mysql).
    • Problemas com uma tag correspondente serão correlacionados automaticamente ao serviço, e o status do serviço mudará com base nas regras configuradas de cálculo do status do serviço.
  13. Suprimir problemas quando um host estiver em modo de manutenção:

  14. Conceder acesso a grupos de usuários:

Configuração

As tags podem ser definidas em uma guia dedicada, por exemplo, na configuração do trigger:

Suporte a macros

Macros integradas e macros de usuário em tags são resolvidas no momento do evento. Até que o evento tenha ocorrido, essas macros serão exibidas no Zabbix frontend como não resolvidas.

Macros de descoberta de baixo nível são resolvidas durante o processo de descoberta.

As seguintes macros podem ser usadas em nomes e valores de tags de trigger:

  • macros integradas {ITEM.VALUE}, {ITEM.LASTVALUE}, {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} e {HOST.ID}
  • macros integradas {INVENTORY.*} (para referenciar valores de inventário do host em uma ou várias hosts em uma expressão de trigger)
  • Macros de usuário e macros de usuário com contexto (o contexto pode incluir macros de descoberta de baixo nível)
  • Macros de descoberta de baixo nível (somente em tags de protótipo de trigger)

As seguintes macros podem ser usadas em nomes e valores de tags de template, host e item/web scenario:

  • macros integradas {HOST.HOST}, {HOST.NAME}, {HOST.CONN}, {HOST.DNS}, {HOST.IP}, {HOST.PORT} e {HOST.ID}
  • macros integradas {INVENTORY.*}
  • Macros de usuário
  • Macros de descoberta de baixo nível (somente em tags de protótipo de host e item)

As seguintes macros podem ser usadas em notificações baseadas em trigger:

  • macros integradas {EVENT.TAGS} e {EVENT.RECOVERY.TAGS} (essas macros serão resolvidas para uma lista separada por vírgulas de tags de evento ou tags de evento de recuperação)
  • macros integradas {EVENT.TAGSJSON} e {EVENT.RECOVERY.TAGSJSON} (essas macros serão resolvidas para uma matriz JSON contendo objetos de tag de evento objects ou objetos de tag de evento de recuperação)
Extração de substring em tags de trigger

A extração de substring é suportada para preencher o nome da tag ou o valor da tag, usando uma macro function. A função aplica uma expressão regular ao valor obtido pela macro supported. Por exemplo:

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

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

Se o nome da tag ou o valor exceder 255 caracteres após a resolução da macro, ele será truncado para 255 caracteres.

Veja também: Uso de funções de macro em low-level discovery macros para marcação de eventos.

Visualizando tags de evento

As tags, se definidas, podem ser visualizadas com novos eventos em:

A ordem e o número de tags exibidas são determinados pelas opções de filtragem Tag display priority e Show tags em MonitoringProblems ou no widget Problems do dashboard. Observe que no máximo três tags podem ser exibidas; se houver mais tags, ao passar o mouse sobre os três pontos todas as tags serão mostradas em uma janela pop-up.