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:
O Zabbix resolve as macros de acordo com a seguinte precedência:
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:
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.
Para definir macros de usuário, vá até o local correspondente no frontend:
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:
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.
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
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().
Sincronize a condição de indisponibilidade do agent com o intervalo de atualização do item:
nodata(/ca_001/agent.ping,{$INTERVAL})=1
Centralize a configuração do horário de trabalho:
1-5,09:00-18:00;
Use a macro de protótipo de host para configurar items para hosts descobertos:

Consulte macros de usuário com contexto.