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
  • Services
  • 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 event 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 event 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 personalizadas de event oferecem mais flexibilidade. Por exemplo:

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

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 correlação de eventos:
      • defina 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 condições de ação 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 no valor da tag (por exemplo, scope:{#FSNAME}).
    • Os triggers criados a partir do protótipo de trigger terão sua tag.
  11. Correspondência de serviços usando tags de serviço:

  12. Vincular serviços a problemas usando tags de problema de serviço:

    • Defina uma tag de problema 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 internas e macros de usuário em tags são resolvidas no momento do evento. Até que o evento ocorra, essas macros serão exibidas não resolvidas no frontend do Zabbix.

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:

  • {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} macros internas
  • {INVENTORY.*} macros internas (para referenciar valores de inventário de host de um ou vários 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 (apenas em tags de protótipo de trigger)

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

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

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

  • {EVENT.TAGS} e {EVENT.RECOVERY.TAGS} macros internas (essas macros serão resolvidas para uma lista separada por vírgulas de tags de evento ou tags de evento de recuperação)
  • {EVENT.TAGSJSON} e {EVENT.RECOVERY.TAGSJSON} macros internas (essas macros serão resolvidas para um array JSON contendo objetos de tags de evento ou objetos de tags 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 função de macro. A função aplica uma expressão regular ao valor obtido pela macro suportada. Por exemplo:

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

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

Se o nome ou o valor da tag 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 macros de descoberta de baixo nível para marcação de eventos.

Visualizando tags de eventos

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 exibidas em uma janela pop-up.