[comment]: # ({c5a81a82-c5a81a82})
# 1 Índices dinámicos

[comment]: # ({/c5a81a82-c5a81a82})

[comment]: # ({e95b21bb-e95b21bb})
#### Descripción general

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:

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

[comment]: # ({/e95b21bb-e95b21bb})

[comment]: # ({992c7d4d-6a6d7709})
##### La sintaxis

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:<br>**í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.|

[comment]: # ({/992c7d4d-6a6d7709})

[comment]: # ({3da26466-3da26466})
#### Ejemplo

Obtener el uso de memoria del proceso *apache*.

Si usa 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 = 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:

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

[comment]: # ({/3da26466-3da26466})

[comment]: # ({beab1c6d-beab1c6d})
#### Almacenamiento en caché de búsqueda de índice

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.

[comment]: # ({/beab1c6d-beab1c6d})
