Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Dit artikel is gewijd aan de kenmerken van netwerkapparatuurmonitoring met behulp van het SNMPv3-protocol. We zullen het hebben over SNMPv3, en ik zal mijn ervaringen delen over het creƫren van volledige sjablonen in Zabbix, en laten zien wat er mogelijk is bij het organiseren van gedistribueerde alerting in een groot netwerk. Het SNMP-protocol is de belangrijkste methode voor het monitoren van netwerkapparatuur, en Zabbix is uitstekend geschikt voor het monitoren van een groot aantal objecten en het samenvatten van aanzienlijke hoeveelheden binnenkomende metrics.

Een paar woorden over SNMPv3

Laten we beginnen met de functie van het SNMPv3-protocol en de bijzonderheden van het gebruik ervan. De taken van SNMP zijn het monitoren van netwerkapparaten en elementair beheer door het verzenden van eenvoudige commando's (zoals het in- en uitschakelen van netwerkinterfaces of het opnieuw opstarten van een apparaat).

Het belangrijkste verschil tussen het SNMPv3-protocol en zijn eerdere versies zijn de klassieke beveiligingsfuncties [1-3], namelijk:

  • authenticatie (Authentication), die vaststelt dat het verzoek afkomstig is van een vertrouwde bron;
  • versleuteling (Encryption), om te voorkomen dat verzonden gegevens worden onthuld bij onderschepping door derden;
  • integriteit (Integrity), dat is de garantie dat het pakket niet is vervalst tijdens verzending.

SNMPv3 impliceert het gebruik van een beveiligingsmodel waarbij de authenticatiestrategie wordt ingesteld voor een specifieke gebruiker en de groep waartoe deze behoort (in eerdere versies van SNMP werd alleen de 'community', een teksttekenreeks met een 'wachtwoord', dat in platte tekst werd verzonden, vergeleken in het verzoek van de server naar het te monitoren object).

SNMPv3 introduceert het concept van beveiligingsniveaus — toegestane beveiligingsniveaus die de configuratie van de apparatuur en het gedrag van de SNMP-agent van het te monitoren object bepalen. De combinatie van het beveiligingsmodel en het beveiligingsniveau bepaalt welke beveiligingsmechanisme wordt gebruikt bij de verwerking van het SNMP-pakket [4].

In de tabel zijn de combinaties van modellen en beveiligingsniveaus van SNMPv3 beschreven (de eerste drie kolommen heb ik als in het origineel gelaten):

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Bijgevolg zullen we SNMPv3 gebruiken in de authenticatiemodus met behulp van versleuteling.

Configuratie van SNMPv3

Monitoring van netwerkapparatuur vereist een gelijke configuratie van het SNMPv3-protocol zowel op de monitoringsserver als op het te observeren object.

Laten we beginnen met de configuratie van het netwerkapparaat Cisco; de minimale noodzakelijke configuratie ziet er als volgt uit (we gebruiken de CLI voor configuratie, ik heb de namen en wachtwoorden vereenvoudigd om verwarring te voorkomen):

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

De eerste regel snmp-server group definieert de groep SNMPv3-gebruikers (snmpv3group), de leesmodus (read) en de toegang van de groep snmpv3group tot bepaalde takken van de MIB-boom van het te monitoren object (snmpv3name definieert verder in de configuratie welke takken van de MIB-boom de groep snmpv3group kan bereiken).

De tweede regel snmp-server user definieert de gebruiker snmpv3user, zijn lidmaatschap van de groep snmpv3group, evenals het gebruik van authenticatie md5 (het wachtwoord voor md5 is md5v3v3v3) en encryptie des (het wachtwoord voor des is des56v3v3v3). Uiteraard is het beter om aes te gebruiken in plaats van des; hier geef ik het alleen ter illustratie. Bij het definiĆ«ren van de gebruiker kan ook een toegangscontrolelijst (ACL) worden toegevoegd, die de IP-adressen van de monitoringsservers regelt die het recht hebben om dit apparaat te monitoren – dit is ook een best practice, maar ik zal ons voorbeeld niet compliceren.

De derde regel snmp-server view definieert de naam die de takken van de MIB-boom snmpv3name vastlegt, zodat deze door de gebruikersgroep snmpv3group kan worden opgevraagd. ISO, in plaats van een strikte definitie van een enkele tak, staat de gebruikersgroep snmpv3group toe om toegang te krijgen tot alle objecten in de MIB-boom van het te monitoren object.

Een vergelijkbare configuratie voor Huawei-apparatuur (ook via de CLI) ziet er als volgt uit:

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

Na het configureren van de netwerkapparaten is het noodzakelijk om de toegang vanaf de monitoringsserver via het SNMPv3-protocol te controleren; ik zal snmpwalk gebruiken:

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

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Een meer visuele tool voor het opvragen van specifieke OID-objecten, met behulp van MIB-bestanden, is snmpget:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Laten we nu overgaan tot de configuratie van een typisch dataveld voor SNMPv3 binnen het Zabbix-sjabloon. Voor de eenvoud en onafhankelijkheid van MIB gebruik ik numerieke OID:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Ik gebruik gebruikersmacro's in de belangrijkste velden, omdat deze gelijk zullen zijn voor alle gegevensitems in de sjabloon. Je kunt ze instellen binnen de sjabloon, als in jouw netwerk alle netwerkapparaten dezelfde SNMPv3-instellingen hebben, of op netwerkniveau, als de SNMPv3-instellingen voor verschillende monitoringsobjecten verschillen.

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Houd er rekening mee dat het monitoringssysteem alleen de gebruikersnaam en de wachtwoorden voor authenticatie en encryptie heeft. De gebruikersgroep en het bereik van MIB-objecten waartoe toegang is verleend, worden ingesteld op het monitoringsobject.
Laten we nu verder gaan met het invullen van de sjabloon.

Zabbix-oproeptemplate

Een eenvoudige regel bij het maken van elke oproepsjabloon is om ze zo gedetailleerd mogelijk te maken:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Ik besteed veel aandacht aan de inventarisatie, zodat het beheer van een groot netwerk gemakkelijker wordt. Daarover later meer, en nu – triggers:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Voor een betere visualisatie van triggers heb ik systeemmacro's {HOST.CONN} in hun namen opgenomen, zodat op het dashboard in de alarmeringssectie niet alleen de namen van apparaten worden weergegeven, maar ook de IP-adressen, hoewel dit meer een kwestie van gemak is dan van noodzaak. Voor het bepalen van de onbereikbaarheid van een apparaat gebruik ik naast de gebruikelijke echo-ping ook een controle op de onbereikbaarheid van de host via het SNMP-protocol, wanneer het object bereikbaar is via ICMP, maar niet reageert op SNMP-verzoeken – zo'n situatie kan zich bijvoorbeeld voordoen bij dubbele IP-adressen op verschillende apparaten, als gevolg van onjuist geconfigureerde firewalls, of onjuiste SNMP-instellingen op monitoringsobjecten. Als je de beschikbaarheid van knooppunten alleen op basis van ICMP controleert, kunnen er tijdens een incidentonderzoek in het netwerk geen monitoringgegevens zijn, daarom moet het binnenkomen ervan worden gecontroleerd.

Laten we overgaan tot het ontdekken van netwerkinterfaces - voor netwerkapparatuur is dit de belangrijkste monitoringsfunctie. Aangezien er honderden interfaces op een netwerkapparaat kunnen zijn, is het noodzakelijk om onnodige te filteren, om de visualisatie niet te overweldigen en de database niet te overladen.

Ik gebruik de standaardontdekkingsfunctie voor SNMP, met een groot aantal ontdekte parameters, voor flexibeler filteren:

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]

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Bij een dergelijke detectie kunnen netwerkinterfaces gefilterd worden op hun types, gebruikersbeschrijvingen 'description' en administratieve statussen van poorten. De filters en reguliere expressies voor filtratie zien er in mijn geval als volgt uit:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Bij detectie zullen de volgende interfaces worden uitgesloten:

  • handmatig uitgeschakeld (adminstatus1), dankzij IFADMINSTATUS;
  • die geen tekstbeschrijving hebben, dankzij IFALIAS;
  • die het symbool * in de tekstbeschrijving hebben, dankzij IFALIAS;
  • die functioneel of technisch zijn, dankzij IFDESCR (in mijn geval worden in de reguliere expressies IFALIAS en IFDESCR op dezelfde manier gecontroleerd met ƩƩn reguliere expressie alias).

De sjabloon voor het verzamelen van gegevens via het SNMPv3-protocol is bijna klaar. Laten we niet verder ingaan op de prototypes van gegevens elementen voor netwerkinterfaces, maar verder gaan naar de resultaten.

Monitoringresultaten

Laten we beginnen met de inventarisatie van een klein netwerk:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Als we sjablonen voor elke serie netwerksystemen voorbereiden, kunnen we een handige lay-out van samenvattende gegevens over actuele software, serienummers en notificaties over de schoonmaakster die in de serverruimte komt (vanwege de geringe Uptime) realiseren. Hieronder staat een samenvatting van mijn sjablonenlijst:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

En nu - het hoofddashboard, met triggervariabelen gesorteerd op belangrijkheid:

Monitoring van netwerkapparatuur via SNMPv3 in Zabbix

Dankzij een geïntegreerde aanpak voor sjablonen voor elk type apparaat in het netwerk, kan binnen één monitorsysteem een instrument voor het voorspellen van storingen en noodsituaties worden georganiseerd (bij aanwezigheid van de juiste sensoren en metrics). Zabbix is goed geschikt voor het monitoren van netwerken, servers en service-infrastructuren, en de taak van het onderhouden van netwerkinfrastructuur toont de mogelijkheden ervan duidelijk aan.

Lijst van gebruikte bronnen:1. Hucaby D. CCNP Routing and Switching SWITCH 300-115 Official Cert Guide. Cisco Press, 2014. pp. 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. Hoofdstuk: SNMP Versie 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

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster