In deze sectie zullen we een SNMP-ontdekking uitvoeren op een switch.
In tegenstelling tot bestandssysteem- en netwerkinterface-ontdekking, hoeft het item niet noodzakelijkerwijs een "snmp.discovery"-sleutel te hebben - het itemtype SNMP-agent is voldoende.
Om de ontdekkingsregel te configureren, volg de onderstaande stappen:
Alle verplichte invoervelden zijn gemarkeerd met een rood asterisk.
De OIDs om te ontdekken zijn gedefinieerd in het veld SNMP OID in het volgende formaat: discovery[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]
waarbij {#MACRO1}, {#MACRO2} … geldige lld-macro-namen zijn en oid1, oid2... OIDs zijn die in staat zijn om zinvolle waarden te genereren voor deze macro's. Een ingebouwde macro {#SNMPINDEX} die de index van de ontdekte OID bevat, wordt toegepast op ontdekte entiteiten. De ontdekte entiteiten worden gegroepeerd op basis van de waarde van de macro {#SNMPINDEX}.
Om te begrijpen wat we bedoelen, laten we een paar snmpwalks op onze switch uitvoeren:
$ 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
En stel SNMP OID in op: discovery[{#IFDESCR}, ifDescr, {#IFPHYSADDRESS}, ifPhysAddress]
Nu zal deze regel entiteiten ontdekken met {#IFDESCR}-macro's ingesteld op WAN, LAN1 en LAN2, {#IFPHYSADDRESS}-macro's ingesteld op 8:0:27:90:7a:75, 8:0:27:90:7a:76 en 8:0:27:2b:af:9e, {#SNMPINDEX}-macro's ingesteld op de ontdekte OID-indexen 1, 2 en 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"
}
]
Als een entiteit de opgegeven OID niet heeft, wordt de overeenkomstige macro voor deze entiteit weggelaten. Bijvoorbeeld, als we de volgende gegevens hebben:
ifDescr.1 "Interface #1"
ifDescr.2 "Interface #2"
ifDescr.4 "Interface #4"
ifAlias.1 "eth0"
ifAlias.2 "eth1"
ifAlias.3 "eth2"
ifAlias.5 "eth4"
Dan zal in dit geval SNMP-ontdekking discovery[{#IFDESCR}, ifDescr, {#IFALIAS}, ifAlias]
de volgende structuur retourneren:
[
{
"{#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"
}
]
De onderstaande schermafbeelding illustreert hoe we deze macro's kunnen gebruiken in item-prototypes:
Je kunt zoveel item-prototypes maken als nodig is:
De volgende schermafbeelding illustreert hoe we deze macro's kunnen gebruiken in trigger-prototypes:
De volgende schermafbeelding illustreert hoe we deze macro's kunnen gebruiken in grafiek-prototypes:
Een samenvatting van onze ontdekkingsregel:
Wanneer de server draait, zal deze echte items, triggers en grafieken aanmaken op basis van de waarden die de SNMP-ontdekkingsregel retourneert. In de hostconfiguratie worden ze voorafgegaan door een oranje link naar de ontdekkingsregel waar ze vandaan komen.