En esta sección realizaremos un descubrimiento SNMP en un switch.
A diferencia del descubrimiento de sistemas de archivos e interfaces de red, la métrica no necesariamente tiene que tener una clave "snmp.discovery"; el tipo de métrica de agente SNMP es suficiente.
Para configurar la regla de descubrimiento, haga lo siguiente:
Todos los campos obligatorios están marcados con un asterisco rojo.
Los OIDs a descubrir se definen en el campo SNMP OID en el siguiente formato: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]
donde {#MACRO1}, {#MACRO2} … son nombres de macros lld válidos y oid1, oid2... son OIDs capaces de generar valores significativos para estas macros. Una macro incorporada {#SNMPINDEX} que contiene el índice del OID descubierto se aplica a las entidades descubiertas. Las entidades descubiertas se agrupan por el valor de la macro {#SNMPINDEX}.
Para entender a qué nos referimos, realicemos algunos snmpwalks en nuestro switch:
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifDescr
IF-MIB::ifDescr.1 = STRING: WAN
IF-MIB::ifDescr.2 = STRING: LAN1
IF-MIB::ifDescr.3 = STRING: LAN2
$ snmpwalk -v 2c -c public 192.168.1.1 IF-MIB::ifPhysAddress
IF-MIB::ifPhysAddress.1 = STRING: 8:0:27:90:7a:75
IF-MIB::ifPhysAddress.2 = STRING: 8:0:27:90:7a:76
IF-MIB::ifPhysAddress.3 = STRING: 8:0:27:2b:af:9e
Y establezca SNMP OID en: discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
Ahora esta regla descubrirá entidades con macros {#IFDESCR} establecidas en WAN, LAN1 y LAN2, macros {#IFPHYSADDRESS} establecidas en 8:0:27:90:7a:75, 8:0:27:90:7a:76 y 8:0:27:2b:af:9e, macros {#SNMPINDEX} establecidas en los índices de OID descubiertos 1, 2 y 3:
[
{
"{#SNMPINDEX}": "1",
"{#IFDESCR}": "WAN",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:75"
},
{
"{#SNMPINDEX}": "2",
"{#IFDESCR}": "LAN1",
"{#IFPHYSADDRESS}": "8:0:27:90:7a:76"
},
{
"{#SNMPINDEX}": "3",
"{#IFDESCR}": "LAN2",
"{#IFPHYSADDRESS}": "8:0:27:2b:af:9e"
}
]
Si una entidad no tiene el OID especificado, entonces la macro correspondiente se omitirá para esta entidad. Por ejemplo, si tenemos los siguientes datos:
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth1"
ifAlias.3 "eth2"
ifAlias.5 "eth4"
Entonces, en este caso, el descubrimiento SNMP discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]
devolverá la siguiente estructura:
[
{
"{#SNMPINDEX}": 1,
"{#IFDESCR}": "Interface #1",
"{#IFALIAS}": "eth0"
},
{
"{#SNMPINDEX}": 2,
"{#IFDESCR}": "Interface #2",
"{#IFALIAS}": "eth1"
},
{
"{#SNMPINDEX}": 3,
"{#IFALIAS}": "eth2"
},
{
"{#SNMPINDEX}": 4,
"{#IFDESCR}": "Interface #4"
},
{
"{#SNMPINDEX}": 5,
"{#IFALIAS}": "eth4"
}
]
La siguiente captura de pantalla ilustra cómo podemos usar estas macros en los prototipos de métricas:
Puede crear tantos prototipos de métricas como sea necesario:
La siguiente captura de pantalla ilustra cómo podemos usar estas macros en prototipos de disparadores:
La siguiente captura de pantalla ilustra cómo podemos usar estas macros en prototipos de gráficos:
Un resumen de nuestra regla de descubrimiento:
Cuando el servidor se ejecuta, creará métricas, disparadores y gráficos reales basados en los valores que devuelve la regla de descubrimiento SNMP. En la configuración del equipo, se les antepone un enlace naranja a la regla de descubrimiento de la que provienen.