Macros de descoberta de baixo nível

Visão geral

Existe um tipo de macro usada dentro da função de descoberta de baixo nível (LLD):

{#MACRO} 

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

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

Algumas macros de descoberta de baixo nível vêm "pré-empacotadas" com a função LLD no Zabbix - {#FSNAME}, {#FSTYPE}, {#IFNAME}, {#SNMPINDEX}, {#SNMPVALUE}. No entanto, não é obrigatório aderir a esses nomes ao criar uma regra de descoberta de baixo nível personalizada. Então você pode usar qualquer outro nome de macro LLD e referenciar 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 compatíveis

As macros de LLD podem ser usadas:

  • no filtro da regra de descoberta de baixo nível
  • em regras de descoberta de baixo nível aninhadas, em
    • parâmetros de pré-processamento JSONPath
    • campo JSONPath para macros de LLD personalizadas
  • para protótipos de item e protótipos de descoberta, em
    • nome
    • parâmetros da chave
    • unidade
    • intervalo de atualização1
    • tempo limite1
    • período de armazenamento do histórico1
    • período de armazenamento de tendências1
    • etapas de pré-processamento do valor do item
    • OID SNMP
    • campo do sensor IPMI
    • expressão de item calculado/agregado, em:
      • constantes da expressão e parâmetros da função
      • parâmetros da chave do item
    • condições do filtro do 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 do endpoint do item JMX
    • descrição
    • campo de URL do HTTP agent
    • campos de consulta HTTP do HTTP agent
    • campo do corpo da solicitação do HTTP agent
    • campo de códigos de status obrigatórios do HTTP agent
    • chave e valor dos campos de cabeçalho do HTTP agent
    • campo de nome de usuário da autenticação HTTP do HTTP agent
    • campo de senha da autenticação HTTP do HTTP agent
    • campo de proxy HTTP do HTTP agent
    • campo de arquivo de certificado SSL do HTTP agent
    • campo de arquivo de chave SSL do HTTP agent
    • campo de senha da chave SSL do HTTP agent
    • campo de deslocamento de tempo da consulta de telemetria
    • campo de limite de lookback da consulta de telemetria
    • campo de granularidade da consulta de telemetria
    • 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 SNMPv1/SNMPv2, contagem máxima de repetições SNMPv2/SNMPv3, tentativas SNMPv1/SNMPv2/SNMPv3, nome de contexto SNMPv3, nome de segurança SNMPv3, frase secreta de autenticação SNMPv3, frase secreta de privacidade SNMPv3
    • nome do protótipo de grupo de hosts
    • valor da tag do host
    • valor da macro do host
    • (consulte 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 de um contexto de macro de usuário estático.

Uso de funções de macro

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

Por exemplo, talvez você queira extrair o nome do cliente e o número da interface da macro LLD a seguir para fins de marcação de eventos:

{#IFALIAS}=customername_1

Para 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 chave de item não delimitados por aspas. Portanto, o parâmetro que contém uma função de macro deve estar entre aspas. O caractere de barra invertida (\) deve ser usado para escapar aspas duplas dentro do parâmetro. Exemplo:

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

Para obter mais informações sobre a sintaxe das 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 de chave do item não são usados, coloque a macro LLD dentro dos colchetes do parâmetro item key [...] para que 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.