1 Índices dinâmicos

Visão geral

Em algumas situações o índice do SNMP é dinâmico, ou seja, quando você coletou pela primeira vez a interface A tinha o índice 2, mas algum tempo depois o número desta mesma interface poderá ter sido alterado para 23. Isso ocorre com alguns dispositivos.

Esta mudança pode ocasionar instabilidade na monitoração, histórico não confiável ou, até mesmo, alertas errados.

Para evitar este cenário é possível definir um item já prevendo a possibilidade da mudança de numeração do índice.

Por exemplo, se vocÊ precisar receber o índice para ifInOctets que corresponda para a interface GigabitEthernet0/1 em um dispositivo CISCO, você pode utilizar o OID a seguir:

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

Uma sintaxe especial é utilizada para estas consultas:

<OID of data>["índice","<OID base>","<texto a procurar>"]

Parameter Description
OID base OID principal para pesquisar o dado que se deseja o índice.
Índice Método de processamento. Atualmente é suportado apenas um método:
índice – procura pelo índice para adicionar ao OID Base
OID base do índice Este OID será utilizado junto com a informação de índice para recuperar o valor solicitado.
Texto a procurar Texto utilizado para localizar o valor que se deseja. Sensitivo ao caso.

Exemplo

Recuperando uso de memória do processo do apache.

Se utilizar esta sintaxe de OID:

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

O número do índice será localizado 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"
       ...

Neste caso nós encontramos o índice 5388. Este número será adicionado ao OID base para recuperar o valor que estamos interessados:

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

Cache de índices

Quando um índice dinâmicos é solicitado, o Zabbix recupera e faz o cache da tabela SNMP inteira pesquisada. Isso é feito de forma a acelerar caso outro índice necessite de dados da mesma tabela. Observe que cada 'poller' do Zabbix mantêm um cache em separado.

Para todos os valores subsequentes, apenas o índice recuperado será utilizado. Se ele não tiver sido alterado, solicita-se o valor desejado. Se tiver sido alterado, a tabela SNMP será solicitada novamente.