Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

2 Macros de usuário

Visão geral

Macros de usuário são suportadas no Zabbix para maior flexibilidade, além das macros suportadas por padrão.

Macros de usuário podem ser definidas em nível global, de template e de host. Essas macros têm uma sintaxe especial:

{$MACRO}

O Zabbix resolve as macros de acordo com a seguinte precedência:

  1. macros em nível de host (verificadas primeiro)
  2. macros definidas para templates de primeiro nível do host (ou seja, templates vinculados diretamente ao host), ordenadas pelo ID do template
  3. macros definidas para templates de segundo nível do host, ordenadas pelo ID do template
  4. macros definidas para templates de terceiro nível do host, ordenadas pelo ID do template, etc.
  5. macros globais (verificadas por último)

Em outras palavras, se uma macro não existir para um host, o Zabbix tentará encontrá-la nos templates do host em profundidade crescente. Se ainda não for encontrada, uma macro global será usada, se existir.

Se uma macro com o mesmo nome existir em vários templates vinculados do mesmo nível, a macro do template com o menor ID será usada. Portanto, ter macros com o mesmo nome em vários templates é um risco de configuração.

Se o Zabbix não conseguir encontrar uma macro, ela não será resolvida.

Macros (incluindo macros de usuário) permanecem não resolvidas na seção de Configuração (por exemplo, na lista de triggers) por design, para tornar a configuração complexa mais transparente.

Macros de usuário podem ser usadas em:

  • nome do item
  • parâmetro da chave do item
  • intervalos de atualização do item e intervalos flexíveis
  • nome e descrição do trigger
  • parâmetros e constantes de expressão do trigger (veja exemplos)
  • muitos outros locais - veja a lista completa
Casos de uso comuns de macros globais e de host
  • use uma macro global em vários locais; depois altere o valor da macro e aplique as alterações de configuração a todos os locais com um clique
  • aproveite os templates com atributos específicos do host: senhas, números de porta, nomes de arquivos, expressões regulares, etc.

Recomenda-se usar macros de host em vez de macros globais, pois adicionar, atualizar ou excluir macros globais força a atualização incremental da configuração para todos os hosts. Para mais informações, consulte Verificações passivas e ativas do agent.

Configuração

Para definir macros de usuário, vá até o local correspondente no frontend:

  • para macros globais, acesse Administração → Macros
  • para macros em nível de host e template, abra as propriedades do host ou template e procure pela aba Macros

Uma macro de usuário possui os seguintes atributos:

Parâmetro Descrição
Macro Nome da macro. O nome deve estar entre chaves e começar com um cifrão.
Exemplo: {$FRONTEND_URL}. Os seguintes caracteres são permitidos nos nomes das macros: A-Z (apenas maiúsculas), 0-9, _, .
Valor Valor da macro. Três tipos de valor são suportados:
Texto (padrão) - valor em texto simples
Texto secreto - o valor é mascarado com asteriscos
Segredo do Vault - o valor contém um caminho/consulta para um segredo do vault.

Para alterar o tipo de valor, clique no botão ao final do campo de valor.

O comprimento máximo do valor de uma macro de usuário é de 2048 caracteres.
Descrição Campo de texto usado para fornecer mais informações sobre esta macro.

Ao configurar macros de usuário, observe os seguintes comportamentos específicos de contexto:

  • se macros de usuário forem usadas em items ou triggers de template, considere adicionar essas macros também ao template (mesmo que estejam definidas globalmente); dessa forma, macros do tipo Texto funcionarão conforme esperado após exportar o template para XML e importar em outro sistema (valores de macros secretas não são exportados)
  • se macros de usuário forem usadas em expressões de trigger, essas macros serão resolvidas apenas se fizerem referência a um parâmetro ou constante; elas NÃO serão resolvidas se fizerem referência a um host, chave de item, função, operador ou outra expressão de trigger (macros secretas não podem ser usadas em expressões de trigger)
  • se macros de usuário forem usadas em um host que possui uma regra de descoberta de baixo nível com protótipos de host, hosts descobertos herdarão todas as macros de usuário definidas nesse host

Exemplos

Exemplo 1

Uso de macro de nível de host na chave do item "Status do daemon SSH":

net.tcp.service[ssh,,{$SSH_PORT}]

Este item pode ser atribuído a vários hosts, desde que o valor de {$SSH_PORT} seja definido nesses hosts.

Exemplo 2

Uso de macro de nível de host no trigger "CPU load is too high":

last(/ca_001/system.cpu.load[,avg1])>{$MAX_CPULOAD}

Esse trigger seria criado no template, não editado em hosts individuais.

Se você quiser usar a quantidade de valores como parâmetro da função (por exemplo, max(/host/key,#3)), inclua o símbolo de hash na definição da macro assim: SOME_PERIOD => #3

Exemplo 3

Uso de duas macros no trigger "CPU load is too high":

min(/ca_001/system.cpu.load[,avg1],{$CPULOAD_PERIOD})>{$MAX_CPULOAD}

Observe que uma macro pode ser usada como parâmetro da função do trigger, neste exemplo a função min().

Exemplo 4

Sincronize a condição de indisponibilidade do agent com o intervalo de atualização do item:

  • defina a macro {$INTERVAL} e use-a no intervalo de atualização do item;
  • use {$INTERVAL} como parâmetro do trigger de indisponibilidade do agent:

nodata(/ca_001/agent.ping,{$INTERVAL})=1

Exemplo 5

Centralize a configuração do horário de trabalho:

  • crie uma macro global {$WORKING_HOURS} igual a 1-5,09:00-18:00;
  • use-a no campo Horário de trabalho em AdministraçãoGeralGUI;
  • use-a no campo Quando ativo em UsuáriosUsuários, aba Mídia de um usuário;
  • use-a para configurar a coleta de item mais frequente durante o horário de trabalho:

  • use-a na condição de ação Período de tempo;
  • ajuste o horário de trabalho em AdministraçãoMacros, se necessário.
Exemplo 6

Use a macro de protótipo de host para configurar items para hosts descobertos:

  • em um protótipo de host, defina a macro de usuário {$SNMPVALUE} com a macro {#SNMPVALUE} descoberta de baixo nível como valor:

  • atribua o template Generic SNMPv2 ao protótipo de host;
  • use {$SNMPVALUE} no campo SNMP OID dos items do template Generic SNMPv2.

Contexto de macro de usuário

Consulte macros de usuário com contexto.