Dans cette section, nous allons effectuer une découverte SNMP sur un switch.
Contrairement à la découverte du système de fichiers et de l'interface réseau, l'élément n'a pas nécessairement besoin d'une clé "snmp.discovery" - le type d'élément agent SNMP est suffisant.
Pour configurer la règle de découverte, procéder comme suit :
Tous les champs de saisie obligatoires sont marqués d'un astérisque rouge.
Les OID à découvrir sont définis dans le champ SNMP OID au format suivant : discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, ...,]
où {#MACRO1}, {#MACRO2} ... sont des noms de macro lld valides et oid1, oid2... sont des OID capables de générer des valeurs significatives pour ces macros. Une macro intégrée {#SNMPINDEX} contenant l'index de l'OID découvert est appliquée aux entités découvertes. Les entités découvertes sont regroupées par la valeur de macro {#SNMPINDEX}.
Pour comprendre ce que nous voulons dire, exécutons quelques commandes snmpwalks sur notre 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
Et définissons l'OID SNMP sur : discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
Cette règle détecte désormais les entités avec les macros {#IFDESCR} définies sur WAN, LAN1 et LAN2, les macros {#IFPHYSADDRESS} sont définies sur 8:0:27:90:7a:75, 8:0:27:90:7a:76, et 8:0:27:2b:af:9e, les macros {#SNMPINDEX} sont définies sur les index OID découverts 1, 2 and 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 une entité ne possède pas l'OID spécifié, la macro correspondante sera omise pour cette entité. Par exemple si nous avons les données suivantes :
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth1"
ifAlias.3 "eth2"
ifAlias.5 "eth4"
Dans ce cas, la découverte SNMP de discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]
renverra la structure suivante :
[
{
"{#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 capture d'écran suivante illustre comment nous pouvons utiliser ces macros dans les prototypes d'éléments :
Vous pouvez créer autant de prototypes d'articles que nécessaire :
La capture d'écran suivante illustre comment nous pouvons utiliser ces macros dans des prototypes de déclencheur :
La capture d'écran suivante illustre comment nous pouvons utiliser ces macros dans des prototypes de graphe :
Un résumé de notre règle de découverte :
Lorsque le serveur s'exécute, il crée des éléments réels, des déclencheurs et des graphiques en fonction des valeurs renvoyées par la règle de découverte SNMP. Dans la configuration de l'hôte, ils sont précédés d'un lien orange vers une règle de découverte d'origine.