Si bien puede encontrar el número de índice requerido (por ejemplo, de un interfaz de red) entre los OID de SNMP, a veces es posible que el número de índice no permanezca igual.
Los números de índice pueden ser dinámicos; pueden cambiar con el tiempo y su métrica puede dejar de funcionar como consecuencia.
Para evitar este escenario, es posible definir un OID que tenga en cuenta la posibilidad de que cambie un número de índice.
Por ejemplo, si necesita recuperar el valor del índice para agregarlo a ifInOctets que corresponde a la interfaz GigabitEthernet0/1 en un dispositivo Cisco, use el siguiente OID:
Se utiliza una sintaxis especial para OID:
<OID de datos>["índice","<OID base de índice>","<cadena para buscar>"]
Parámetro | Descripción |
---|---|
OID de datos | OID principal a usar para la recuperación de datos en el elemento. |
índice | Método de procesamiento. Actualmente se admite un método: índice: busque el índice y agréguelo al OID de datos |
OID base del índice | Este OID se buscará para obtener el valor de índice correspondiente a la cadena. |
cadena para buscar | La cadena que se utilizará para una coincidencia exacta con un valor al realizar una búsqueda. Sensible a mayúsculas y minúsculas. |
Obtener el uso de memoria del proceso apache.
Si usa esta sintaxis OID:
el número de índice se buscará aquí:
...
HOST-RESOURCES-MIB::hrSWRunPath.5376 = CADENA: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5377 = CADENA: "/sbin/getty"
HOST-RESOURCES-MIB::hrSWRunPath.5388 = CADENA: "/usr/sbin/apache2"
HOST-RESOURCES-MIB::hrSWRunPath.5389 = CADENA: "/sbin/sshd"
...
Ahora tenemos el índice, 5388. El índice se agregará al OID de datos para recibir el valor que nos interesa:
Cuando se solicita un elemento de índice dinámico, Zabbix recupera y almacena en caché toda la tabla SNMP bajo el OID base para el índice, incluso si una coincidencia haya sido encontrada antes. Esto se hace en caso de que otra métrica se refiera al mismo OID base más tarde: Zabbix buscaría el índice en la caché, en lugar de consultando el equipo monitoreado nuevamente. Tenga en cuenta que cada proceso de sondeo utiliza cachés separadas.
En todas las operaciones posteriores de recuperación de valores, solo se tiene en cuenta el índice encontrado. Si no ha cambiado, se solicita valor. Si ha cambiado, la caché se reconstruye: cada sondeador que encuentra un índice modificado recorre el la tabla de índices SNMP nuevamente.