Overvågning af netværksudstyr via SNMPv3 i Zabbix

Denne artikel handler om de særlige funktioner ved overvågning af netværksudstyr ved hjælp af SNMPv3-protokollen. Vi vil diskutere SNMPv3, jeg vil dele mine erfaringer med at skabe omfattende skabeloner i Zabbix, og jeg vil vise, hvad der kan opnås ved at organisere distribueret alarmering i et stort netværk. SNMP-protokollen er den primære metode til overvågning af netværksudstyr, og Zabbix er fremragende til at overvåge et stort antal objekter og opsummere betydelige mængder indkommende målinger.

Nogle ord om SNMPv3

Lad os begynde med formålet med SNMPv3-protokollen og de særlige træk ved dens anvendelse. Opgaverne for SNMP er overvågning af netværkdevices og grundlæggende styring ved at sende enkle kommandoer til dem (f.eks. aktivering og deaktivering af netværksinterfaces eller genstart af enheden).

Den vigtigste forskel mellem SNMPv3-protokollen og dens tidligere versioner er de klassiske sikkerhedsfunktioner [1-3], nemlig:

  • autentifikation (Authentication), der bestemmer, at forespørgslen er modtaget fra en betroet kilde;
  • kryptering (Encryption), for at forhindre, at de overførte data bliver afsløret ved aflytning af tredjepart;
  • integritet (Integrity), hvilket er en garanti for, at pakken ikke blev forfalsket under overførslen.

SNMPv3 forudsætter brugen af en sikkerhedsmodel, hvor autentifikationsstrategien fastlægges for en given bruger og den gruppe, han tilhører (i de tidligere versioner af SNMP blev der i forespørgslen fra serveren til overvågningsobjektet kun sammenlignet 'community', en tekststreng med 'adgangskoden', der blev sendt som klartekst).

SNMPv3 introducerer begrebet sikkerhedsniveauer - tilladte sikkerhedsniveauer, der definerer konfigurationen af udstyret og adfærden af SNMP-agenten for overvågningsobjektet. Kombinationen af sikkerhedsmodel og sikkerhedsniveau bestemmer, hvilken sikkerhedsmekanisme der anvendes ved behandling af SNMP-pakken [4].

I tabellen er kombinationerne af modeller og sikkerhedsniveauer for SNMPv3 beskrevet (de første tre kolonner har jeg besluttet at lade være som i originalen):

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Derfor vil vi anvende SNMPv3 i autentifikationsmode med brug af kryptering.

Konfiguration af SNMPv3

Overvågning af netværksudstyr forudsætter ensartet konfiguration af SNMPv3-protokollen både på overvågningsserveren og på det overvågede objekt.

Lad os starte med at konfigurere netværksenheden Cisco; den minimale nødvendige konfiguration ser således ud (vi bruger CLI til konfiguration, jeg har forenklet navne og adgangskoder for at undgå forvirring):

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ørste linje snmp-server group – definerer gruppen af SNMPv3-brugere (snmpv3group), læseadgang (read) og gruppens ret til at få adgang til bestemte grene af MIB-træet for overvågningsobjektet (snmpv3name angiver senere, hvilke grene af MIB-træet gruppen snmpv3group kan få adgang til).

Den anden linje snmp-server user – definerer brugeren snmpv3user, hans tilhørsforhold til gruppen snmpv3group samt anvendelsen af autentificering md5 (adgangskoden til md5 — md5v3v3v3) og krypteringen des (adgangskoden til des — des56v3v3v3). Selvfølgelig er det bedre at bruge aes i stedet for des; jeg nævner blot det som et eksempel. Når man definerer brugeren, kan man også tilføje en adgangsliste (ACL), der regulerer IP-adresserne på overvågningsserverne, som har ret til at overvåge denne enhed – det er også en best practice, men jeg vil ikke gøre vores eksempel mere kompliceret.

Den tredje linje snmp-server view definerer det kodeord, der angiver grenene af MIB-træet snmpv3name, så de kan forespørges af brugerguppen snmpv3group. ISO, i stedet for en striks definition af en enkelt gren, giver gruppen snmpv3group adgang til alle objekter i MIB-træet for overvågningsobjektet.

En tilsvarende konfiguration for Huawei-udstyr (også i CLI) ser således ud:

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 konfigurationen af netværksenhederne er det nødvendigt at kontrollere adgangen fra overvågningsserveren via SNMPv3-protokollen; jeg vil bruge snmpwalk:

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

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Et mere visuelt værktøj til at forespørge specifikke OID-objekter, ved hjælp af MIB-filer – snmpget:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Lad os nu gå videre til konfigurationen af et typisk dataklassetræk for SNMPv3 inden for Zabbix-skabelonen. For enkelhedens skyld og uafhængighed af MIB bruger jeg digitale OID:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Jeg bruger brugerdefinerede makroer i de nøglefelter, da de vil være ens for alle datakilder i skabelonen. De kan angives inden for skabelonen, hvis alle netværksenheder i dit netværk har de samme SNMPv3-parametre, eller inden for netværksknuden, hvis SNMPv3-parametrene for forskellige overvågningsobjekter varierer:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Bemærk, at overvågningssystemet kun har brugernavnet og adgangskoderne til autentificering og kryptering. Brugergruppen og området af MIB-objekter, som der er adgang til, angives på overvågningsobjektet.
Lad os nu gå videre til udfyldning af skabelonen.

Overvågningsskabelon i Zabbix

En enkel regel ved oprettelse af enhver overvågningsskabelon er at gøre dem så detaljerede som muligt:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Jeg lægger stor vægt på inventering, så det er lettere at arbejde med et stort netværk. Mere om dette senere, men nu - triggere:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

For at gøre visualiseringen af triggere lettere, har jeg indbygget systemmakroer i deres navne {HOST.CONN}, så der vises ikke kun enhedernes navne, men også IP-adresser på dashboardet i alarmsektionen, selvom det er mere et spørgsmål om bekvemmelighed end nødvendighed. For at bestemme utilgængelighed for enheden, ud over den almindelige echo-forespørgsel, bruger jeg også en kontrol for nedetid via SNMP-protokollen, når objektet er tilgængeligt via ICMP, men ikke reagerer på SNMP-forespørgsler – en sådan situation kan opstå, for eksempel ved duplikering af IP-adresser på forskellige enheder, på grund af forkert konfigurerede firewall, eller forkerte SNMP-indstillinger på overvågningsobjekter. Hvis man kun anvender kontrol af noders tilgængelighed via ICMP, kan overvågningsdata mangle i forbindelse med undersøgelse af netværks hændelser, så deres indtagelse skal overvåges.

Lad os gå videre til opdagelse af netværksgrænseflader – for netværksudstyr er dette den vigtigste overvågningsfunktion. Da der kan være hundreder af grænseflader på netværksudstyret, er det nødvendigt at filtrere de unødvendige, for ikke at overbelaste visualiseringen og ikke fylde databasen op.

Jeg bruger den standardopdagelsesfunktion for SNMP med et stort antal opdagelsesparametre for mere fleksibel 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]

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Med denne opdagelse kan man filtrere netværksinterfaces efter deres typer, brugerbeskrivelser „description“ og administrative status for porte. Filtre og regulære udtryk til filtrering ser i mit tilfælde således ud:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Følgende interfaces vil blive udelukket ved opdagelsen:

  • manuelt deaktiverede (adminstatus<>1), ved hjælp af IFADMINSTATUS;
  • uden tekstbeskrivelse, ved hjælp af IFALIAS;
  • med symbolet * i tekstbeskrivelsen, ved hjælp af IFALIAS;
  • der er administrative eller tekniske, ved hjælp af IFDESCR (i mit tilfælde kontrolleres IFALIAS og IFDESCR med et regulært udtryk alias).

Skabelonen til indsamling af data via SNMPv3-protokollen er næsten klar. Lad os ikke gå nærmere ind i prototype-elementerne for netværksinterfaces, men i stedet gå videre til resultaterne.

Overvågningskonklusioner

For at starte - opgørelse af et lille netværk:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Hvis man forbereder skabeloner for hver serie af netværksudstyr, kan man opnå en analysevenlig opsætning af samlet data om aktuel software, serienumre, og varsling om ankomsten af rengøringspersonale til serverrummet (på grund af lav Uptime). Uddrag fra min liste over skabeloner nedenfor:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Og nu - hovedpanelet for overvågning, med triggerne fordelt efter vigtighedsniveauer:

Overvågning af netværksudstyr via SNMPv3 i Zabbix

Takket være en helhedsorienteret tilgang til skabeloner for hver model af enheder i netværket, kan man skabe et værktøj til fejlfinding og hændelsesforudsigelse inden for et enkelt overvågningssystem (forudsat at relevante sensorer og metrikker er tilgængelige). Zabbix er velegnet til overvågning af netværks-, server- og serviceinfrastrukturer, og vedligeholdelsen af netværksudstyr demonstrerer tydeligt dens muligheder.

Liste over anvendte kilder: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

Kilde: habr.com

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster