1 Índices dinámicos

Resumen

Aunque puede encontrar el número de índice requerido (por ejemplo, de una interfaz de red) entre los OID de SNMP, a veces no puede confiar completamente en que el número de índice siempre permanezca igual.

Los números de índice pueden ser dinámicos: pueden cambiar con el tiempo y, como consecuencia, su item puede dejar de funcionar.

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 de índice para añadirlo a ifInOctets que corresponde a la interfaz GigabitEthernet0/1 en un dispositivo Cisco, utilice el siguiente OID:

ifInOctets["index","ifDescr","GigabitEthernet0/1"]
La sintaxis

Se utiliza una sintaxis especial para OID:

<OID de datos>["index","<OID base del índice>","<cadena a buscar>"]

Parámetro Descripción
OID de datos OID principal que se utilizará para recuperar datos en el item.
index Método de procesamiento. Actualmente se admite un método:
index - buscar el índice y añadirlo al OID de datos
OID base del índice Este OID se buscará para obtener el valor del índice correspondiente a la cadena.
cadena a buscar La cadena que se utilizará para una coincidencia exacta con un valor al realizar la búsqueda. Distingue entre mayúsculas y minúsculas.

Ejemplo

Obtención del uso de memoria del proceso apache.

Si se utiliza esta sintaxis OID:

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

el número de índice se buscará 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"
...

Ahora tenemos el índice, 5388. El índice se añadirá al OID de datos para recibir el valor que nos interesa:

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

Almacenamiento en caché de búsqueda de índices

Cuando se solicita un item de índice dinámico, Zabbix recupera y almacena en caché la tabla SNMP completa bajo el OID base del índice, incluso si se encontrara una coincidencia antes. Esto se hace por si otro item hiciera referencia al mismo OID base más adelante: Zabbix buscaría el índice en la caché, en lugar de consultar de nuevo al host monitorizado. Tenga en cuenta que cada proceso poller utiliza una caché independiente.

En todas las operaciones posteriores de recuperación de valores, solo se verifica el índice encontrado. Si no ha cambiado, se solicita el valor. Si ha cambiado, la caché se reconstruye: cada poller que encuentra un índice modificado vuelve a recorrer la tabla SNMP del índice.