Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Den här artikeln ägnas åt funktionerna för att övervaka nätverksutrustning med SNMPv3-protokollet. Vi kommer att prata om SNMPv3, jag kommer att dela med mig av min erfarenhet av att skapa fullfjädrade mallar i Zabbix, och jag kommer att visa vad som kan uppnås när man organiserar distribuerad varning i ett stort nätverk. SNMP-protokollet är det viktigaste vid övervakning av nätverksutrustning, och Zabbix är utmärkt för att övervaka ett stort antal objekt och sammanfatta stora volymer av inkommande mätvärden.

Några ord om SNMPv3

Låt oss börja med syftet med SNMPv3-protokollet och funktionerna för dess användning. SNMP:s uppgifter är att övervaka nätverksenheter och grundläggande hantering genom att skicka enkla kommandon till dem (till exempel aktivera och inaktivera nätverksgränssnitt eller starta om enheten).

Huvudskillnaden mellan SNMPv3-protokollet och dess tidigare versioner är de klassiska säkerhetsfunktionerna [1-3], nämligen:

  • Autentisering, som bestämmer att begäran mottogs från en pålitlig källa;
  • kryptering (kryptering), för att förhindra avslöjande av överförda data när de avlyssnas av tredje part;
  • integritet, det vill säga en garanti för att paketet inte har manipulerats under överföringen.

SNMPv3 innebär användning av en säkerhetsmodell där autentiseringsstrategin är inställd för en given användare och den grupp som han tillhör (i tidigare versioner av SNMP, förfrågan från servern till övervakningsobjektet jämfördes endast "community", en text sträng med ett "lösenord" som överförs i klartext (oformaterad text)).

SNMPv3 introducerar begreppet säkerhetsnivåer - acceptabla säkerhetsnivåer som bestämmer konfigurationen av utrustning och beteendet hos SNMP-agenten för övervakningsobjektet. Kombinationen av säkerhetsmodell och säkerhetsnivå avgör vilken säkerhetsmekanism som används vid bearbetning av ett SNMP-paket [4].

Tabellen beskriver kombinationer av modeller och SNMPv3-säkerhetsnivåer (jag bestämde mig för att lämna de tre första kolumnerna som i originalet):

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Följaktligen kommer vi att använda SNMPv3 i autentiseringsläge med kryptering.

Konfigurera SNMPv3

Övervakningsnätverksutrustning kräver samma konfiguration av SNMPv3-protokollet på både övervakningsservern och det övervakade objektet.

Låt oss börja med att ställa in en Cisco-nätverksenhet, dess minsta nödvändiga konfiguration är som följer (för konfiguration använder vi CLI, jag förenklade namnen och lösenorden för att undvika förvirring):

snmp-server group snmpv3group v3 priv read snmpv3name 
snmp-server user snmpv3user snmpv3group v3 auth md5 md5v3v3v3 priv des des56v3v3v3
snmp-server view snmpv3name iso included

Den första raden snmp-servergruppen – definierar gruppen av SNMPv3-användare (snmpv3group), läsläget (läs) och åtkomsträtten för snmpv3group-gruppen för att se vissa grenar av MIB-trädet för övervakningsobjektet (snmpv3name sedan i konfiguration anger vilka grenar av MIB-trädet gruppen kan komma åt snmpv3group kommer att kunna få åtkomst).

Den andra raden snmp-serveranvändare – definierar användaren snmpv3user, hans medlemskap i snmpv3group-gruppen, samt användningen av md5-autentisering (lösenord för md5 är md5v3v3v3) och des-kryptering (lösenord för des är des56v3v3v3). Naturligtvis är det bättre att använda aes istället för des; jag ger det här bara som ett exempel. När du definierar en användare kan du också lägga till en åtkomstlista (ACL) som reglerar IP-adresserna för övervakningsservrar som har rätt att övervaka den här enheten - detta är också bästa praxis, men jag kommer inte att komplicera vårt exempel.

Den tredje radens snmp-servervy definierar ett kodnamn som specificerar grenar av snmpv3name MIB-trädet så att de kan frågas av snmpv3group-användargruppen. ISO, istället för att strikt definiera en enskild gren, tillåter snmpv3group-användargruppen att komma åt alla objekt i MIB-trädet för övervakningsobjektet.

En liknande inställning för Huawei-utrustning (även i CLI) ser ut så här:

snmp-agent mib-view included snmpv3name iso
snmp-agent group v3 snmpv3group privacy read-view snmpv3name
snmp-agent usm-user v3 snmpv3user group snmpv3group
snmp-agent usm-user v3 snmpv3user authentication-mode md5 
            md5v3v3v3
snmp-agent usm-user v3 snmpv3user privacy-mode des56
            des56v3v3v3

Efter att ha ställt in nätverksenheter måste du kontrollera åtkomst från övervakningsservern via SNMPv3-protokollet, jag kommer att använda snmpwalk:

snmpwalk -v 3 -u snmpv3user -l authPriv -A md5v3v3v3 -a md5 -x des -X des56v3v3v3 10.10.10.252

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Ett mer visuellt verktyg för att begära specifika OID-objekt med MIB-filer är snmpget:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Låt oss nu gå vidare till att ställa in ett typiskt dataelement för SNMPv3, inom Zabbix-mallen. För enkelhetens skull och MIB-oberoende använder jag digitala OID:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Jag använder anpassade makron i nyckelfält eftersom de kommer att vara samma för alla dataelement i mallen. Du kan ställa in dem i en mall, om alla nätverksenheter i ditt nätverk har samma SNMPv3-parametrar, eller inom en nätverksnod, om SNMPv3-parametrarna för olika övervakningsobjekt är olika:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Observera att övervakningssystemet endast har ett användarnamn och lösenord för autentisering och kryptering. Användargruppen och omfattningen av MIB-objekt till vilka åtkomst är tillåten anges på övervakningsobjektet.
Låt oss nu gå vidare till att fylla i mallen.

Zabbix omröstningsmall

En enkel regel när du skapar enkätmallar är att göra dem så detaljerade som möjligt:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Jag lägger stor vikt vid inventering för att göra det lättare att arbeta med ett stort nätverk. Mer om detta lite senare, men för nu – triggers:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

För att underlätta visualiseringen av utlösare ingår systemmakron {HOST.CONN} i deras namn så att inte bara enhetsnamn utan även IP-adresser visas på instrumentpanelen i varningssektionen, även om detta mer är en fråga om bekvämlighet än nödvändighet . För att avgöra om en enhet är otillgänglig, utöver den vanliga ekoförfrågan, använder jag en kontroll för värdens otillgänglighet med hjälp av SNMP-protokollet, när objektet är tillgängligt via ICMP men inte svarar på SNMP-förfrågningar - denna situation är möjlig, t.ex. , när IP-adresser dupliceras på olika enheter, på grund av felaktigt konfigurerade brandväggar eller felaktiga SNMP-inställningar på övervakningsobjekt. Om du endast använder värdtillgänglighetskontroll via ICMP, vid tidpunkten för undersökning av incidenter på nätverket, kanske övervakningsdata inte är tillgängliga, så mottagandet av dem måste övervakas.

Låt oss gå vidare till att upptäcka nätverksgränssnitt - för nätverksutrustning är detta den viktigaste övervakningsfunktionen. Eftersom det kan finnas hundratals gränssnitt på en nätverksenhet är det nödvändigt att filtrera bort de onödiga för att inte störa visualiseringen eller belamra databasen.

Jag använder standardfunktionen SNMP-upptäckt, med fler upptäckbara parametrar, för mer flexibel filtrering:

discovery[{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7]

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Med denna upptäckt kan du filtrera nätverksgränssnitt efter deras typer, anpassade beskrivningar och administrativa portstatusar. Filter och reguljära uttryck för filtrering ser i mitt fall ut så här:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Om det upptäcks kommer följande gränssnitt att uteslutas:

  • manuellt inaktiverad (adminstatus<>1), tack vare IFADMINSTATUS;
  • utan textbeskrivning, tack vare IFALIAS;
  • med symbolen * i textbeskrivningen, tack vare IFALIAS;
  • som är service eller tekniska, tack vare IFDESCR (i mitt fall kontrolleras IFALIAS och IFDESCR av ett reguljärt uttrycksalias i reguljära uttryck).

Mallen för att samla in data med SNMPv3-protokollet är nästan klar. Vi kommer inte att uppehålla oss mer i detalj vid prototyperna av dataelement för nätverksgränssnitt; låt oss gå vidare till resultaten.

Resultat av övervakning

Till att börja med, inventera ett litet nätverk:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Om du förbereder mallar för varje serie nätverksenheter kan du få en lättanalyserad layout av sammanfattningsdata om aktuell programvara, serienummer och meddelande om att en städare kommer till servern (på grund av låg drifttid). Ett utdrag ur min malllista är nedan:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Och nu - huvudövervakningspanelen, med triggers fördelade efter svårighetsgrad:

Övervakning av nätverksutrustning via SNMPv3 i Zabbix

Tack vare ett integrerat tillvägagångssätt för mallar för varje enhetsmodell i nätverket är det möjligt att säkerställa att, inom ramen för ett övervakningssystem, ett verktyg för att förutsäga fel och olyckor kommer att organiseras (om lämpliga sensorer och mätvärden finns tillgängliga). Zabbix är väl lämpad för att övervaka nätverks-, server- och tjänsteinfrastrukturer, och uppgiften att underhålla nätverksutrustning visar tydligt dess förmåga.

Lista över använda källor:1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. s. 325-329.
2. RFC 3410. tools.ietf.org/html/rfc3410
3. RFC 3415. tools.ietf.org/html/rfc3415
4. SNMP Configuration Guide, Cisco IOS XE Release 3SE. Kapitel: SNMP version 3. www.cisco.com/c/en/us/td/docs/ios-xml/ios/snmp/configuration/xe-3se/3850/snmp-xe-3se-3850-book/nm-snmp-snmpv3.html

Källa: will.com

Lägg en kommentar