Áú»¢¶Ä²©

1 Macros de usu¨¢rio

Vis?o geral

Para melhorar a flexibilidade de configura??o o Áú»¢¶Ä²© suporta macros de usu¨¢rio que podem ser definidas em tr¨ºs n¨ªveis:

  • Global
  • Template
  • Host

Estas macros tem uma sintaxe especial: {$MACRO}.

Podem ser utilizadas em:

  • nomes de itens
  • par?metros de chaves de item
  • nomes e descri??es de triggers
  • constantes e par?metros de express?es de trigger
  • v¨¢rios outros locais

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:

  1. n¨ªvel de host (verificado primeiro)
  2. primeiro n¨ªvel de template (templates diretamente associados ao host), ordenados pelo ID de template
  3. segundo n¨ªvel de template (templates associados ao template que foi diretamente associado ao host), ordenados pelo ID de template
  4. segundo n¨ªvel de template (templates associados aos templates associados ao template que foi diretamente associado ao host), ordenados pelo ID de template
  5. ...
  6. macros globais (verificadas por ¨²ltimo)

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:

  • para macros globais: Administra??o ¡ú Geral ¡ú Macros
  • para macros de template: Configura??o ¡ú Templates abra o template desejado e olhe na aba Macros
  • para macros de hosts: Configura??o ¡ú Hosts abra o host desejado e olhe na aba Macros

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:

  1. para definir itens que precisam de senhas, n¨²meros de porta, nomes de arquivos, etc em n¨ªvel de template e definir seus valores em n¨ªvel de host
  2. para definir em n¨ªvel global um valor padr?o para determinada caracter¨ªstica (como por exemplo o nome da comunidade SNMP)

Exemplos

Exemplo 1

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.

Exemplo 2

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

Exemplo 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.