Das Monitoring von Netzwerken, vor allem von großen Umgebungen, kann schnell sehr anspruchsvoll werden. Mit den richtigen Tools können Sie den Aufwand jedoch gering halten. Checkmk ermöglicht es Ihnen zum Beispiel, mit wenigen Handgriffen ein umfangreiches Netzwerk-Monitoring aufzusetzen und Sie so bei der Identifizierung und Behebung von Problemen in Ihrer IT-Infrastruktur unterstützen.
In diesem Blogartikel zeigen wir Ihnen, wie Sie mit Checkmk 2.0 mit lediglich drei Regeln ein effizientes Netzwerk-Monitoring aufsetzen können, das nicht nur all ihre Netzwerkschnittstellen überwacht, sondern gleichzeitig auch eine detaillierte Übersicht über all Ihre Ports liefert.
Warum sollten Sie alle Ports in Ihrem Netzwerk überhaupt überwachen? Der Grund ist ziemlich simpel: Jeder Port – egal ob es sich hierbei um einen Access Port, ein Server- oder Firewall-Interface oder einen Uplink-Port handelt – kann Fehler haben und wenn dies der Fall ist, sollten Sie sich unbedingt darum kümmern. Ein fehlerhafter Port hat schließlich immer eine direkte Auswirkung auf das Netzwerk.
Alle Interfaces auf einem Blick
Durch das Monitoring aller Netzwerk-Interfaces sind Sie in der Lage, gebrochene Patch- oder Installationskabel, verschmutzte Glasfaser-Optiken, defekte Firmware und Konfigurationsfehler wie Duplex-Fehlpaarungen sofort zu entdecken und ein performantes Netzwerk zu gewährleisten – unabhängig davon, ob es sich um ein kleine Infrastruktur mit wenigen Hosts oder um eine große Umgebung mit hunderten oder tausenden Hosts handelt.
Je nachdem wie groß das Netzwerk ist, kann das Monitoring von allen Ports in einer Umgebung schnell dazu führen, dass Sie tausende, wenn nicht sogar zehntausende oder mehr Schnittstellen in Ihr Monitoring aufnehmen müssen. Ein normaler Interface-Scan ist hierfür in der Regel nicht ausreichend, da zum Beispiel Ports, die zum Scan-Zeitpunkt offline sind, ansonsten nicht im Monitoring auftauchen.
Es kann außerdem passieren, dass ein Access Port, der zunächst online war und irgendwann offline geht, weil beispielsweise der angebundene Computer ausgeschaltet wird, eine Fehlermeldung verursacht. Da dies aber ein normales Verhalten eines Access Ports ist, sollten Sie solche Fehlermeldungen vermeiden, indem Sie für Access Ports die Änderung des Status und der Geschwindigkeit ignorieren.
Vorbereitung: Wichtige Ports benennen
Bevor Sie jedoch damit anfangen, Ihr Netzwerk-Monitoring in Checkmk aufzusetzen, ist ein wenig Vorarbeit nötig. Zunächst geben Sie allen Interfaces, bei denen es sich nicht um einen Access Port handelt, einen spezifischen Namen. Ein Uplink-Port zu einem anderen Switch, etwa Switch01, benennen Sie über die Konfigurationsoberfläche des Switches beispielsweise in Uplink Switch01 um. Sie können Ihre Ports natürlich anders benennen, wichtig ist jedoch, dass Ihre Namensgebung konsistent und für Menschen lesbar ist. Außerdem sollte der Name nicht nur aus Zahlen bestehen, da unsere Regeln später sonst nicht greifen.
Standardmäßig haben Ports keine Namen. Stattdessen sehen Sie normalerweise eine Liste von Interfaces in Ihrer Monitoring-Umgebung, die entweder nur Nummern oder technische Beschreibungen enthalten.
In diesem Screenshot sehen Sie neben den unbenannten Access Ports, deren Bezeichnung wir so belassen haben, unter anderem auch „VIPs“ (Very Important Ports) zu Access Points, die wir„AP12“, „AP13“ und „AP14“ genannt haben.
Durch die Bennung von wichtigen Ports ermöglichen wir es Checkmk, zwischen Access Ports und diesen „VIPs“ zu unterscheiden. Hierbei kommt es jedoch zu einem weiteren Problem: Während einige Hersteller für die Interface-Namen die SNMP-Tabelle Alias verwenden, nutzen einige hierfür die Description. Dies müssen Sie später in Ihrem Monitoring berücksichtigen können. Das lässt sich jedoch in Checkmk einfach lösen.
Die drei Regeln für ein ganzheitliches Netzwerk-Monitoring
Um das Problem zu lösen, müssen Sie in Checkmk zwei Regeln erstellen: Eine für die Alias- und eine für die Description-Tabelle. Zusätzlich müssen Sie ein Host Tag erstellen, das es Ihnen erlaubt, zwischen den beiden Regeln die richtige auszuwählen. Anschließend erstellen Sie noch die dritte Regel, damit Checkmk Änderungen an Status und Geschwindigkeit von Access Ports ignoriert.
Host Tags als Zünglein an der Waage
Das Host Tag erstellen Sie unter Setup ➳ Host ➳ Tag groups. Dort klicken Sie auf Add tag group und geben im Feld ID: if_alias_desc und im Title: Interface: by Alias/by Description ein. Anschließend fügen Sie zwei Auswahlmöglichkeiten hinzu, indem Sie zweimal auf add tag choice klicken. Der obere Tag wird die Default-Einstellung sein. Da die meisten Hersteller die Alias-Tabelle verwenden, nutzen Sie diesen als Ihren Default-Eintrag. Dazu vergeben Sie als interne Tag ID: if_alias und als Title: use Alias. Für die zweite tag choice verwenden Sie nun die Description. Daher setzen Sie if_desc als Tag ID und use Description als Title. Anschließend speichern Sie die erstellte Tag group.
In den Tag Groups sollten nun Ihre soeben erstellte Tag Group mit der ID if_alias_desc auftauchen. Damit das Tag jedoch auch Anwendung findet, müssen Sie es noch mit einer Regel verknüpfen. Nur dann kann das erstellte Tag beeinflussen, welche Regeln Checkmk anwenden soll. Dazu gehen Sie erneut in das Setup-Menü von Checkmk.
Alle Ports entdecken
Im Setup-Menü nutzen Sie die Suchfunktion, um nach „interface“ zu suchen. Unter dem Punkt Services ➳ Service Discovery rules finden Sie nun die benötigte Regel Network interface and switch port discovery. Diese Regel beeinflusst, wie Checkmk Netzwerkschnittstellen „discovered“. Nachdem Sie auf die Regel geklickt haben, erstellen Sie dort eine neue Regel, indem Sie auf create rule in folder klicken.
In der Konfiguration ändern Sie unter dem Punkt Appearance of network interface über das Drop-Down-Menü die Einstellung von Use index auf Use alias, damit Checkmk künftig die Alias für den Port-Namen heranzieht. Im Bereich Conditions fügen Sie unter Host tags das erstellte Merkmal Interface: by Alias/by Description als Bedingung für die Regel hinzu. Da Sie unter Appearance of network interface bereits Use alias festgelegt haben, können Sie unter Host tags is und use Alias als Tag-Bedingung beibehalten.
Damit Checkmk auch Interfaces entdeckt, die während des Checks offline sind, lassen Sie unter Conditions for rule to apply die Einstellung auf Match all interfaces. Damit stellen Sie sicher, dass Checkmk alle Port-Typen in das Monitoring aufnimmt, egal ob es sich hierbei um reguläre Ethernet-Ports handelt oder Etherchannels, VLAN-Interfaces, etc. Außerdem behalten Sie als Ordner das Main directory bei, damit die Regel auf die gesamte Netzwerkumgebung angewendet wird. Anschließend speichern Sie die Regel.
Da Sie mit dieser Regel nur die Alias-Tabelle verwenden, müssen Sie noch eine zweite Regel für die Description-Tabelle erstellen. Dazu klonen Sie die soeben erstelle Regel und ändern lediglich unter Appearance of network interface und unter Host tags die Einstellung von Use alias auf Use description. Anschließend speichern Sie die Regel und aktivieren Ihre Änderungen.
Wenn Sie nun eine neue Service Discovery bei Ihren Hosts durchführen, sollten nun alle benannten Ports den zugewiesenen Namen in der Service-Spalte aufführen. Ist das bei einem Host nicht der Fall, müssen Sie unter den Host Properties im Bereich Custom Attributes ➳ Interface: by Alias/by Description statt use Alias nun use Description auswählen. Durch die richtige Service-Beschreibung in Checkmk können Sie nun nicht nur zwischen Access Ports und „VIPs“ unterscheiden, sondern erkennen auch auf den ersten Blick, was an dem „VIP“-Port angeschlossen ist.
Access Ports von 'VIPs' unterscheiden
Für die Unterscheidung müssen Sie nun eine weitere Regel erstellen. Wenn Sie zuvor all Ihre wichtigen Ports benannt haben, sollten nur noch die Access Ports die standardmäßige Namensgebung haben. Mit der neuen Regel können Sie nun Checkmk so konfigurieren, dass es Status- und Geschwindigkeitsänderungen bei den Access Ports ignoriert.
Dazu gehen Sie wieder in das Setup-Menü und suchen erneut nach interface. Dieses Mal wählen Sie aber unter Services ➳ Service monitoring rules die Regel Network interfaces and switch ports aus. Die Regel legt fest, wie Checkmk mit neu entdeckten Schnittstellen verfahren soll.
Sie erstellen auch diese Regel im Main directory. Unter Conditions aktivieren Sie die Checkbox bei Port Specifictation und erstellen eine Regex, indem Sie im nächsten Feld \d+ eingeben, falls die Ports mit Zahlen beginnen. Damit sollten Sie die meisten Fälle abgedeckt haben. Es kommt jedoch vor, dass Hersteller ihre Interfaces nicht „0001“, sondern „Giga“, „TenGiga“, „FortyGiga Ethernet“ oder ähnlich benennt. Um diese Fälle mit zu berücksichtigen, erstellen Sie bei Bedarf in den nächsten Feldern einfach weitere Regex-Ausdrücke, z.B „Gigabit Ethernet“ und „TenGigabit Ethernet“, usw. Dies ist schlichtweg davon abhängig, wie der Switch- oder Firewall-Hersteller die unbenannten Ports über SNMP ausgibt.
Unter Value aktivieren Sie nun die Optionen, die Sie für Ihre Access Ports benötigen. Da Sie die Geschwindigkeit bei diesen Interfaces ignorieren wollen, aktivieren Sie die Checkbox Operating speed und wählen per Drop-Down ignore speed aus. Um den Status zu ignorieren aktivieren Sie außerdem de Checkbox Operational state und aktivieren dort ignore the operational state. Jetzt speichern Sie die Regel und aktivieren die gemachten Änderungen.
Mit den drei Regeln haben Sie nun alle Netzwerkschnittstellen in Ihrer Umgebung konfiguriert, unabhängig wie groß die Infrastruktur ist. Sie erkennen nun außerdem, wenn ein „VIP“ seinen Status oder seine Geschwindigkeit ändert. Tritt ein solcher Fall ein, wird der Status CRIT. Bei Access Ports bleibt der Status hingegen OK, wenn sich sein Status oder seine Geschwindigkeit ändern. Sollten jedoch Fehler auf dem Port auftreten, zeigt Checkmk diese auch bei Access Ports an!
Übrigens funktioniert diese Regel nicht nur für Switch-Ports und Firewall-Interfaces, sondern führt auch dazu, dass Sie bei allen anderen Netzwerk-Interfaces brauchbare Namen erhalten, zum Beispiel bei Linux- oder Windows-Systemen und allen anderen Geräten.
Die Inventory-Funktion
Checkmk bietet Ihnen außerdem noch die Möglichkeit, weitere Informationen über Ihre Ports zu erhalten, die Ihnen die Administration erleichtern können. Um davon zu profitieren, suchen Sie im Setup-Menü „inventory“ und wählen die HW/SW inventory aus. Anschließend gehen Sie auf Do hardware/software inventory.
Im nächsten Schritt erstellen Sie eine neue Regel im Main directory. Mit ihr können Sie eine Inventur der Status-Data durchführen. Hierzu aktivieren Sie die Checkbox Status data inventory und wählen den Untermenüpunkt Do status data inventory aus. Anschließend speichern Sie die Regel und übernehmen die Änderungen.
Wenn Sie jetzt auf einem Host einen neuen Check machen, entdeckt Checkmk neue inventory entries. Gehen Sie nun im Burger-Menü des Services CHECK_MK HW/SW Inventory auf Show Hardware/Software Inventory of this host, um unter Networking eine Übersicht über die einzelnen Interfaces des Hosts zu erhalten. Dort sehen Sie jetzt, welche Ports aktuell Down und Up sind. Sie sehen außerdem auf einem Blick, welche Ports belegt sind – auch wenn sie aktuell Down sein sollten – und welche nicht. Checkmk merkt sich den Status eines Ports standardmäßig für 30 Tage. Ist ein genutzter Port für länger als 30 Tage Down, markiert Checkmk ihn nach Ablauf der 30 Tage wieder als free. Mit der Regel Parameters for switch port inventory können Sie den Zeitraum nach Ihren eigenen Bedürfnissen anpassen.
Fazit
In dieser Anleitung haben wir Ihnen gezeigt, wie Sie mit Checkmk ab Version 2.0 in wenigen Schritten ein Netzwerk-Monitoring inklusive aller Ports aufsetzen können. Außerdem erhalten Sie nun nur noch wichtige Alarme, da Checkmk die Änderungen des Status und der Geschwindigkeit von Access Ports ignoriert. Das alles haben Sie mit verhältnismäßig wenig Aufwand aufgesetzt: Der Benamung von wichtigen Ports und lediglich drei Regeln in Checkmk.
Da jede IT-Umgebung anders ist, können auf den Weg dahin noch einige andere Herausforderungen auf Sie warten. Mit dieser Konfiguration sollten Sie aber viele Probleme in Ihrem Netzwerk identifizieren können.
In unserem Blogartikel „Netzwerk-Monitoring: Four Rules to rule them all“ erfahren Sie, wie Sie mit einer älteren Checkmk-Version ein effektives Netzwerk-Monitoring aufsetzen können.