4 Descubrimiento de OID SNMP
Descripción general
En este apartado realizaremos un descubrimiento SNMP en un conmutador.
Este método de descubrimiento de OID SNMP ha sido compatible desde el servidor/proxy Zabbix 6.4.
Prototipos de métricas, iniciadores y gráficos
Los prototipos de métricas deben crearse como prototipos de métricas dependientes, utilizando macros de la regla de descubrimiento.
Las métricas dependientes obtendrán sus valores de la métrica principal walk[]. Por lo tanto, no será necesario consultar cada métrica descubierta por
el dispositivo SNMP de forma independiente.
También se pueden crear prototipos de iniciadores y gráficos utilizando macros de la regla de descubrimiento.
Índices dinámicos con walk[]
Los índices dinámicos (por ejemplo, los índices de interfaz) pueden cambiar cuando se reconfigura el hardware. Para adaptarse a este comportamiento, se crea una regla maestra de descubrimiento SNMP walk con una clave como:
walk[1.3.6.1.2.1.2.2.1.10]
Después del preprocesamiento SNMP walk a JSON, el resultado podría parecerse a:
[
{
"{#SNMPINDEX}": "2",
"{#VALUE}": "123456"
},
{
"{#SNMPINDEX}": "3",
"{#VALUE}": "654321"
}
]
Una plantilla de elemento dependiente utiliza la macro {#SNMPINDEX} para construir la clave:
net.if.in[{#SNMPINDEX}]
El preprocesamiento para esta plantilla incluye el nombre "Valor de SNMP walk" con el OID "1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}" en el campo Parámetro. Formato: "Sin cambios".
En tiempo de ejecución, se crean elementos reales como net.if.in[2] y net.if.in[3].
Si un índice de interfaz dado cambia (por ejemplo, si el índice 2 es reemplazado por 5 en la tabla SNMP), entonces en la siguiente ejecución de la regla de descubrimiento:
- El elemento dependiente antiguo net.if.in[2] se marca como "perdido" o se elimina, y no se recopilan nuevos datos para ese elemento.
- Se crea un nuevo elemento dependiente net.if.in[5], comenzando con un historial vacío.
- Los datos históricos de net.if.in[2] no se transfieren automáticamente a net.if.in[5].
Ejemplo de plantilla de disparador:
{Template_Interface:net.if.in[{#SNMPINDEX}].last()} > 1000000000
El ejemplo de plantilla de gráfico incluye los elementos:
net.if.in[{#SNMPINDEX}]
net.if.out[{#SNMPINDEX}]
Esta configuración garantiza una monitorización fiable de tablas con índices dinámicos mientras se minimiza el tráfico SNMP: solo se requiere un único SNMP walk por ciclo de sondeo, y las plantillas de elementos dependientes extraen los valores necesarios.
Entidades descubiertas
Cuando el servidor se ejecuta, creará métricas dependientes reales, iniciadores y gráficos basados en los valores que devuelve la regla de descubrimiento SNMP.