Encara que és possible que trobeu el nombre d'índex requerit (per exemple, d'una interfície de xarxa) entre els OID SNMP, de vegades és possible que el nombre d'índex es mantingui sempre igual.
Els nombres d'índex poden ésser dinàmics (poden canviar a mida que passa el temps) i, per tant, el vostre element podria deixar de funcionar.
Per evitar aquest escenari, és possible definir un OID que tingui en compte la possibilitat de canvi del nombre d'índex.
Per exemple, si heu d'obtindre el valor d'índex per afegir a ifInOctets corresponent a la interfície GigabitEthernet0/1 d'un perifèric Cisco, empreu l'OID:
Per els OID s'empra una sintaxi específica:
<OID of data>["index","<base OID of index>","<string to search for>"]
Paràmetre | Descripció |
---|---|
OID of data | OID principal a emprar per la recuperació de dades de l'element. |
index | Mètode de tractament. Actualment es suporta un mètode: index – cerca l'index i l'afegeix a l'OID |
base OID of index | Aquest OID es cercarà per obtindre el valor d'índex que correspongui a la cadena. |
string to search for | Cadena a emprar per una correspondència exacta amb un valor quan es faci la cerca. Sensible a majúscules i minúscules. |
Obtindre l'ús de la memòria dels processos apache.
Si emprem aquesta sintaxi d'OID :
El nombre d'índex es cercarà aquí:
...
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"
...
Ja tenim l'index, 5388. L'index s'afegirà a l'OID de dades per tal de rebre el valor que ens interessa:
Quan es demana un element d'índex dinàmic, Zabbix recupera i desa a la memòria cau tota la taula SNMP sota l'OID base per a l'índex, fins i tot si troba abans una coincidència. Això es fa en cas que un altre element es refereixi al mateix OID base més endavant: Zabbix cercaria l'índex a la memòria cau, en lloc de tornar a consultar l'equip supervisat. Tingueu en compte que cada procés d'enquesta empra una memòria cau separada.
En totes les operacions de recuperació de valors posteriors només es verifica l'índex trobat. Si no ha canviat, es demana valor. Si ha canviat, la memòria cau es reconstrueix: cada poller que troba un índex canviat torna a recórrer la taula SNMP d'índex.