5 Macros de descoberta de baixo nível

Visão geral

Há um tipo de macro usado dentro da função de descoberta em baixo nível (LLD):

{#MACRO} 

É uma macro usada em uma regra de LLD e retorna valores reais do nome do sistema de arquivos, interface de rede, SNMP OID, etc.

Essas macros podem ser usadas para criar protótipos de entidades (protótipos de item, trigger, gráfico, host e grupo de hosts). Durante a descoberta de sistemas de arquivos reais sistemas de arquivos, interfaces de rede, máquinas virtuais, etc., essas macros são substituídas por valores reais e servem de base para a criação de entidades reais.

Algumas macros de descoberta em baixo nível vêm "pré-empacotadas" com a função LLD no Zabbix - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. No entanto, seguir esses nomes não é obrigatório ao criar uma regra de descoberta em baixo nível personalizada. Nesse caso, você pode usar qualquer outro nome de macro LLD e referir-se a esse nome.

Tipos de dados suportados

Ao definir regras de descoberta personalizadas, os valores das propriedades retornados em objetos JSON para macros LLD devem ser um dos seguintes tipos primitivos:

  • string
  • number
  • boolean

Arrays, objetos e valores nulos não são suportados. Qualquer macro LLD que se refira a esse valor permanecerá não expandida e aparecerá literalmente (por exemplo, '{#MY_MACRO}') durante o pré-processamento e criação do item.

Locais suportados

Macros de LLD podem ser usadas:

  • na regra de descoberta de baixo nível filtro
  • para protótipos de item em
    • nome
    • parâmetros da key
    • unidade
    • intervalo de atualização1
    • timeout1
    • período de armazenamento do histórico1
    • período de armazenamento de tendências1
    • etapas de pré-processamento do valor do item
    • SNMP OID
    • campo do sensor IPMI
    • expressão de item calculado/agregado, em:
      • constantes da expressão e parâmetros da função
      • parâmetros da key do item
    • condições de filtro de item agregado (nome do grupo de hosts e nome da tag)
    • script SSH e script Telnet
    • consulta SQL de monitoramento de banco de dados
    • campo endpoint do item JMX
    • descrição
    • campo URL do agent HTTP
    • campo de campos de consulta HTTP do agent HTTP
    • campo do corpo da requisição do agent HTTP
    • campo de códigos de status obrigatórios do agent HTTP
    • chave e valor do campo de cabeçalhos do agent HTTP
    • campo de nome de usuário da autenticação HTTP do agent HTTP
    • campo de senha da autenticação HTTP do agent HTTP
    • campo de proxy HTTP do agent HTTP
    • campo de arquivo de certificado SSL HTTP do agent HTTP
    • campo de arquivo de chave SSL HTTP do agent HTTP
    • campo de senha da chave SSL HTTP do agent HTTP
    • tags
  • para protótipos de trigger em
    • nome
    • dados operacionais
    • expressão (somente em constantes e parâmetros da função)
    • URL
    • descrição
    • tags
  • para protótipos de gráfico em
    • nome
  • para protótipos de host em
    • nome
    • nome visível
    • campos de interface personalizados: IP, DNS, porta, comunidade SNMP v1/v2, nome de contexto SNMP v3, nome de segurança SNMP v3, frase-senha de autenticação SNMP v3, frase-senha de privacidade SNMP v3
    • nome do protótipo de grupo de hosts
    • valor da tag do host
    • valor da macro do host
    • (veja a lista completa)

Em todos esses locais, exceto no filtro da regra de descoberta de baixo nível, as macros de LLD podem ser usadas dentro do contexto de macro estático do usuário.

Usando funções de macro

As funções de macro são compatíveis com macros de descoberta de baixo nível, exceto na filter da regra de descoberta de baixo nível, permitindo extrair uma determinada parte do valor da macro usando uma expressão regular.

Por exemplo, você pode querer extrair o nome do cliente e o número da interface da seguinte macro LLD para fins de marcação de eventos:

{#IFALIAS}=customername_1

Para fazer isso, a função de macro regsub pode ser usada com a macro no campo de valor da tag de evento de um protótipo de trigger:

Observe que vírgulas não são permitidas em parâmetros de key de item não entre aspas, portanto o parâmetro que contém uma função de macro precisa estar entre aspas. O caractere barra invertida (\) deve ser usado para escapar aspas duplas dentro do parâmetro. Exemplo:

net.if.in["{{#IFALIAS}.regsub(\"(.*)_([0-9]+)\", \1)}",bytes]

Para mais informações sobre a sintaxe de funções de macro, consulte: Funções de macro

As funções de macro são compatíveis com macros de descoberta de baixo nível desde o Zabbix 4.0.

Protótipos de item sem parâmetros de chave

Quando os parâmetros da chave do item não são usados, coloque a macro LLD dentro dos colchetes do parâmetro item key [...] para que ela seja tratada como um parâmetro e substituída durante a descoberta:

v_[{#MACRO}]
Notas de rodapé

1 Nos campos marcados com 1, uma única macro deve preencher todo o campo. Múltiplas macros em um campo ou macros misturadas com texto não são suportadas.