Para melhorar a flexibilidade de configura??o o Áú»¢¶Ä²© suporta macros de usu¨¢rio que podem ser definidas em tr¨ºs n¨ªveis:
Estas macros tem uma sintaxe especial: {$MACRO}.
Podem ser utilizadas em:
Os seguintes caracteres podem ser utilizados em nomes de macros: A-Z , 0-9 , _ , .
O Áú»¢¶Ä²© substitui o valor das macros com a seguinte ordem de preced¨ºncia:
Em outras palavras, se a macro n?o existir no host, o Áú»¢¶Ä²© tentar¨¢ localiza-la nos templates associados ao host. Se continuar n?o encontrando, a buscar¨¢ nas macros globais.
Se o Áú»¢¶Ä²© n?o encontrar o valor da macro, ele n?o ir¨¢ substitu¨ª-la.
A defini??o das macros de usu¨¢rio podem ocorrer em tr¨ºs locais:
Se uma macro de usu¨¢rio for utilizada em itens ou triggers de um template ¨¦ uma boa pr¨¢tica que ela seja adicionada no n¨ªvel de template com um valor padr?o. Desta forma exportando o template como um XML e importando em outro local o mesmo funcionar¨¢ como o esperado.
Casos comuns de uso de macros de usu¨¢rio e globais:
Usando macro em n¨ªvel de host para a chave do item "Status of SSH daemon":
net.tcp.service[ssh,,{$SSH_PORT}]
Desta forma o item pode variar sua porta de um host para outro, bastando que se configure o valor da macro {$SSH_PORT} no mesmo.
Usando macro em n¨ªvel de usu¨¢rio para a trigger "CPU load is too high":
{ca_001:system.cpu.load[,avg1].last()}>{$MAX_CPULOAD}
Desta forma a trigger pode ser criada em um template sem precisar ser editada em cada host.
Se voc¨º precisar usar a quantidade de valores de uma fun??o como par?metro (por exemplo, max(#3)), inclua o caractere "#" no valor da macro, por exemplo: {$SOME_PERIOD} = #3
Usar duas macros na trigger "CPU load is too high":
{ca_001:system.cpu.load[,avg1].min({$CPULOAD_PERIOD})}>{$MAX_CPULOAD}
Observe que uma macro pode ser usada como um par?metro de uma trigger, como neste caso a fun??o min().
Em uma express?o de trigger as macros de usu¨¢rio ser?o expandidas para referenciar um par?metro ou constante. Elas n?o ser?o expandidas para se referenciar ao host, chave do item, fun??o, operador ou outro elemento da express?o.