Embora possa ter encontrado o índice do item que deseja (por exemplo, uma interface de rede) entre os diversos OIDs SNMP você deve certificar que trata-se de um índice fixo, não assumindo com apenas uma pesquisa, que o número permanecerá sempre o mesmo.
Os índices podem ser dinâmicos, fazendo com que mudem após algum tempo e o monitoramento do item pare de funcionar.
Para evitar este cenário, é possível definir um OID que faz referência a um índice com possibilidade de sofrer alteração.
Por exemplo, se você precisa identificar o valor do índice que corresponda a interface GigabitEthernet0/1 em um equipamento Cisco para adicionar em ifInOctets , use o OID a seguir:
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. |
Recuperando uso de memória do processo do apache.
Se utilizar esta sintaxe de OID:
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:
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.