1 Índices dinâmicos

Visão geral

Embora você possa encontrar o número de índice necessário (por exemplo, de uma interface de rede) entre os OIDs SNMP, às vezes não é possível confiar totalmente que o número de índice permanecerá sempre o mesmo.

Os números de índice podem ser dinâmicos — eles podem mudar ao longo do tempo e, como consequência, seu item pode parar de funcionar.

Para evitar esse cenário, é possível definir um OID que leve em conta a possibilidade de o número de índice mudar.

Por exemplo, se você precisar recuperar o valor do índice para anexar a ifInOctets que corresponde à interface GigabitEthernet0/1 em um dispositivo Cisco, use o seguinte OID:

ifInOctets["index","ifDescr","GigabitEthernet0/1"]
A sintaxe

Uma sintaxe especial é usada para OID:

<OID dos dados>["index","<OID base do índice>","<string a ser pesquisada>"]

Parâmetro Descrição
OID dos dados OID principal a ser usada para recuperação de dados no item.
index Método de processamento. Atualmente, um método é suportado:
index - pesquisar o índice e anexá-lo ao OID dos dados
OID base do índice Este OID será consultado para obter o valor do índice correspondente à string.
string a ser pesquisada A string a ser usada para uma correspondência exata com um valor ao fazer a consulta. Diferencia maiúsculas de minúsculas.

Exemplo

Obtendo o uso de memória do processo apache.

Se estiver usando esta sintaxe de OID:

HOST-RESOURCES-MIB::hrSWRunPerfMem["index","HOST-RESOURCES-MIB::hrSWRunPath", "/usr/sbin/apache2"]

o número do índice será procurado aqui:

...
HOST-RESOURCES-MIB::hrSWRunPath.5376 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5377 = STRING: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5388 = STRING: "/usr/sbin/apache2"
HOST-RESOURCES-MIB::hrSWRunPath.5389 = STRING: "/sbin/sshd"
...

Agora temos o índice, 5388. O índice será anexado ao OID de dados para receber o valor no qual estamos interessados:

HOST-RESOURCES-MIB::hrSWRunPerfMem.5388 = INTEGER: 31468 KBytes

Cache de pesquisa de índice

Quando um item de índice dinâmico é solicitado, o Zabbix recupera e armazena em cache a tabela SNMP inteira sob o OID base do índice, mesmo que uma correspondência pudesse ser encontrada antes.
Isso é feito caso outro item venha a se referir ao mesmo OID base posteriormente — o Zabbix pesquisará o índice no cache, em vez de consultar o host monitorado novamente.
Observe que cada processo poller usa um cache separado.

Em todas as operações subsequentes de recuperação de valor, apenas o índice encontrado é verificado.
Se ele não tiver mudado, o valor é solicitado.
Se tiver mudado, o cache é reconstruído — cada poller que encontrar um índice alterado percorrerá novamente a tabela SNMP de índice.