In deze sectie zullen we een SNMP-ontdekking uitvoeren op een switch.
In tegenstelling tot bestandssysteem- en netwerkinterface-ontdekking hoeft het item niet per se een "snmp.ontdekking" sleutel te hebben - het itemtype van SNMP-agent is voldoende.
Om de ontdekkingsregel te configureren, volg deze stappen:
Alle verplichte invoervelden zijn gemarkeerd met een rode asterisk.
De te ontdekken OIDs zijn gedefinieerd in het SNMP OID-veld in het volgende formaat: ontdekking[{#MACRO1}, oid1, {#MACRO2}, oid2, …,]
waarbij {#MACRO1}, {#MACRO2} ... geldige lld-macro namen zijn en oid1, oid2... OIDs zijn die zinvolle waarden kunnen genereren voor deze macro's. Een ingebouwde macro {#SNMPINDEX} met de index van de ontdekte OID wordt toegepast op ontdekte entiteiten. De ontdekte entiteiten worden gegroepeerd op basis van de macrowaarde {#SNMPINDEX}.
Om te begrijpen wat we bedoelen, voeren we een paar snmpwalks uit op onze 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
En stel SNMP OID in op: ontdekking[{#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 gespecificeerde OID niet heeft, wordt de overeenkomstige macro weggelaten voor deze entiteit. 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 ontdekking[{#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.