En aquesta secció farem una descoberta de baix nivell a un equip SNMP.
Aquest mètode de descoberta d'OID SNMP és compatible des del servidor/proxy Zabbix 6.4.
1. Creeu un element d'agent SNMP amb una clau com ara:
Aquest element realitza un únic recorregut per la taula SNMP i retorna totes les entrades de la taula en una sola petició, en un format que correspon a la sortida de la utilitat snmpwalk
amb les opcions de format -Oe -Ot -On
.
Retornarà el següent valor de text multilínia:
.1.3.6.1.4.1.9999.1.1.1.1.1.1 = STRING: "Sensor de temperatura"
.1.3.6.1.4.1.9999.1.1.1.1.2.1 = STRING: "temp"
.1.3.6.1.4.1.9999.1.1.1.1.3.1 = 100
.1.3.6.1.4.1.9999.1.1.1.1.1.2 = STRING: "Sensor d'humitat"
.1.3.6.1.4.1.9999.1.1.1.1.2.2 = STRING: "humitat"
.1.3.6.1.4.1.9999.1.1.1.1.3.2 = 200
2. Crea una regla de descobriment:
Al camp Nom, introduiu un nom descriptiu per a la regla de descoberta (per exemple, "Trobar sensors").
Al camp Tipus, trieu "Element dependent".
Al camp Clau, introduiu una clau descriptiva (per exemple, "net.if.discovery").
Al camp Element mestre, trieu "Element de recorregut SNMP".
3. A la pestanya Preprocessament, afegeix una passa de preprocessament amb el "Caminament SNMP a JSON" al menú desplegable Nom amb 3 paràmetres:
Després del preprocessament, la regla de descoberta retorna una matriu JSON de conjunts de macros.
Per exemple:
[
{
"{#SNMPINDEX}": "1",
"{#SENSORNAME}": "Sensor de temperatura",
"{#SENSORTYPE}": "temp",
"{#SENSORVALUE}": "100"
},
{
"{#SNMPINDEX}": "2",
"{#SENSORNAME}": "Sensor d'humitat",
"{#SENSORTYPE}": "humitat",
"{#SENSORVALUE}": "200"
}
]
Cada objecte representa un sensor trobat i proporciona macros com ara {#SNMPINDEX}
, {#SENSORNAME}
, {#SENSORTYPE}
i {#SENSORVALUE}
.
S'agrupen per l'índex SNMP, que és el sufix numèric al final de cada OID (per exemple, .1, .2); aquest índex identifica de manera única cada fila de la taula SNMP i s'extreu automàticament com a {#SNMPINDEX}
.
4. Sota la regla de descobriment, creeu un o més prototips d'elements (amb la regla de descoberta com a element mestre).
Per exemple, element dependent del valor del sensor:
A la pestanya Preprocessament, afegiu un pas de preprocessament amb el nom "Valor de passeig SNMP" amb l'OID ".1.3.6.1.4.1.9999.1.1.1.1.3.{#SNMPINDEX}" al camp Paràmetre.
Format: "Sense canvis".
Es detectaran els elements següents:
Nom | Clau | OID del qual s'extreu el valor | Valor de l'element |
---|
|Sensor 1: Sensor de temperatura|sensor.value[1]|.1.3.6.1.4.1.9999.1.1.1.1.3.1|100| |Sensor 2: Sensor d'humitat|sensor.value[2]|.1.3.6.1.4.1.9999.1.1.1.1.3.2|200|
Quan s'executa la regla de descoberta, es creen elements com ara sensor.value[1]
, sensor.value[2]
.
Cada element dependent extreu el seu valor del resultat de la caminada SNMP de l'element mestre mitjançant el preprocessament, sense fer peticions SNMP separades.
5. Referència de prototips d'elements dependents en prototips de triggers utilitzant les mateixes macros de la regla de descobriment.
Això produeix un desencadenant per a cada sensor trobat (per exemple, sensor.value[1], sensor.value[2]) i s'activa si el valor més recent (temperatura o humitat) supera els 75.
6. Inclou elements dependents per a cada entitat trobaa. Exemple de clau d'element de gràfic:
Es crea un gràfic per {#SNMPINDEX}
, que representa la temperatura i la humitat al llarg del temps.
Aquesta configuració només realitza una única petició de passeig SNMP per cicle de sondeig, independentment del nombre d'elements descoberts. Tots els elements dependents extreuen els seus valors del resultat del passeig SNMP mestre mitjançant el preprocessament, cosa que redueix significativament el trànsit i la càrrega SNMP.
Els índexs dinàmics (per exemple, els índexs d'interfície) poden canviar quan es reconfigura el maquinari. Per adaptar-se a aquest comportament, es crea una regla mestra de descoberta de passejades SNMP amb una clau com ara:
Després del preprocessament de la passejada SNMP a JSON, el resultat podria semblar-se a:
Un prototip d'element dependent utilitza la macro {#SNMPINDEX}
per construir la clau:
El preprocessament per a aquest prototip inclou el nom "valor de passejada SNMP" amb OID "1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}" al camp Paràmetre. Format: "Sense canvis".
En temps d'execució, es creen elements reals com ara net.if.in[2]
i net.if.in[3]
. Si un índex d'interfície determinat canvia (per exemple, si l'índex 2
es substitueix per 5
a la taula SNMP), a la següent execució de la regla de descobriment:
L'antic element dependent net.if.in[2] es marca com a "perdut" o eliminat, i no es recopilen dades noves per a aquest element.
Es crea un nou element dependent net.if.in[5], començant amb un historial buit.
Les dades històriques de net.if.in[2] no es mouen automàticament a net.if.in[5].
Exemple de prototip de trigger:
L'exemple de prototip de gràfic inclou els elements:
Aquesta configuració garanteix una supervisió fiable de les taules amb índexs dinàmics alhora que minimitza el trànsit SNMP: només es requereix una única passejada SNMP per cicle d'enquesta, amb prototips d'elements dependents que extrauen els valors necessaris.
Quan el servidor s'executi, crearà elements reals dependents, triggers i gràfics basats en els valors que retorna la regla de descoberta SNMP.