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, a macro não será resolvida.
As 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:
É recomendável 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} esteja 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 cerquilha 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:
