Netzwerk überwachen mit dem RaspBerry Pi

Willkommen zu unserem heutigen Blog-Beitrag.


Wie mein Kollege Ihnen schon geschildert hat, haben wir seit dem Umzug im März immer wieder Probleme mit unserer telefonischen Erreichbarkeit.

Um den Status der Internetverbindung, sowie anderer Geräte im Netzwerk im Blick zu haben, gibt es eine Vielzahl an Lösungen. Heute stelle ich Ihnen eine Lösung mit einem RaspBerry Pi vor, welche Sie auch zuhause für die Überwachung ihres Heim-Netzwerks umsetzen können.

Ich entscheide mich dabei für eine Lösung bei denen keine Pakete nachinstalliert und konfiguriert werden müssen. Bei der Einrichtung müssen Sie sich lediglich einmalig per SSH mit dem RaspBerry Pi verbinden, und die Initialisierung mit einem einfachen Befehl ausführen. 


Dafür benötigen wir folgendes:

1x Raspberry Pi (Model 3 B+ empfohlen)
1x Passende SD-Karte mit mindestens 16GB
1x USB Kartenleser

 

NEMS - Nagios Enterprise Monitoring Server

1. Vorbereitung


NEMS ist eine bereits vorkonfigurierte Linux-Distribution mit allen erforderlichen Paketen. Die Installation ist dabei so einfach wie möglich gehalten. Als erstes laden wir uns die ISO Datei von der Herstellerseite herunter:

https://nemslinux.com/

Wir gehen auf „Get NEMS Linux“ → „NEMS for RaspBerry Pi“, und wählen entweder den „Direct Download“, oder können die Datei über BitTorrent herunterladen.

Um die ISO-Datei auf die SD-Karte zu schreiben benutzen wir das Programm Etcher. Dieses laden wir uns auf der Seite https://etcher.io/ herunter, und installieren das Programm.

Nach dem Start von Etcher erscheint folgendes Fenster:

 

Etcher

Als erstes wählen wir mittels „select image“ unsere NEMS ISO-Datei aus.


Bei „Select Drive“ wählen wir nun das Ziellaufwerk aus. ACHTUNG: alle Daten auf dem Laufwerk werden überschrieben! Um sicher zu stellen, dass Sie das richtige Laufwerk ausgewählt haben, empfehle ich, falls möglich, zuerst auf „Select Drive“ zu klicken, und erst dann den Kartenleser anzuschließen. Das Gerät erscheint dann in der Auswahl, und wir können sicher sein, nicht versehentlich das falsche Laufwerk zu überschreiben:

etcher2

etcher3


Nun klicken wir auf „Flash“, bestätigen den eventuell erscheinenden Sicherheits-Dialog, und die Daten werden auf die SD-Karte geschrieben und überprüft.

2. Die erste Inbetriebnahme


Ich empfehle ausdrücklich einen RaspBerry Pi mit Ethernet Schnittstelle zu verwenden, und werde in diesem Beitrag nicht auf die Einrichtung des WLAN eingehen. Falls Sie also einen RaspBerry Pi Zero verwenden möchten, können Sie einen USB auf Ethernet Adapter verwenden.

Wir schließen den RaspBerry Pi per HDMI Kabel an einen Bildschirm an, legen die vorbereitete SD-Speicherkarte ein, und verbinden unseren Pi mit Strom.

Nach einem unscheinbaren Bootvorgang erscheint eine Anzeige auf der wir die IP-Adresse sehen welche dem Raspberry Pi per DHCP zugeteilt wurde.

 

Also öffnen wir einen Webbrowser, und rufen die IP-Adresse auf. Es erscheint die Meldung, dass unser NEMS Server noch nicht initialisiert ist. Wir sollen uns doch bitte per SSH verbinden, und den Befehl „sudo nems-init“ ausführen.



Unter Windows 10 kann ich nun einfach die Kommandozeile aufrufen, in dem ich die Windows-Taste und R für „run“ zusammen drücke. Es erscheint ein Fenster mit dem Titel „Ausführen“ in dem ich angeben kann welches Programm Windows ausführen soll. Ich gebe „cmd“ ein, und bestätige mit der Eingabetaste.


In der Kommandozeile geben wir nun den Befehl „ssh“ ein, gefolgt vom Benutzernamen, einem @-Zeichen, und der IP-Adresse ein. Der Benutzername mit dem wir uns anmelden sollen lautet „nemsadmin“. Wir geben also ein: „ssh nemsadmin@196.168.168.45“.

Da wir noch keine SSH Verbindung zu diesem System hergestellt haben, werden wir gefragt ob wir sicher sind, dass wir die Verbindung herstellen möchten. Dies können wir bestätigen indem wir „yes“ eingeben.
Nur wird nach dem Kennwort für den Benutzer „nemsadmin“ gefragt. Dieses lautet auch „nemsadmin“.

SSH

Wir geben nun den Befehl „sudo nems-init“ ein, um die Initialisierung des Servers zu beginnen, und bestätigen dies nochmal mit der Eingabe des Kennwortes.

Der Benutzer nemsadmin wird während der Initialisierung entfernt, und es wird ein neuer Benutzer für uns angelegt. Wir müssen also einen Benutzernamen angeben. Ich nenne den Benutzer markus, und ein Kennwort angeben.

Als nächstes müssen wir die Zeitzone auswählen. Ich wähle in meinem Fall „Europe“ und dann „Berlin“.

Zeitzone auswählen

Nun ist die Initialisierung über SSH fertig. Wir werden dazu aufgefordert den RaspBerry Pi durch drücken einer beliebigen Taste neu zu starten.

 

Nun startet unser Gerät neu, und nimmt die erforderlichen Änderungen am System vor. Nach dem Neustart kann es sein, dass die Systemauslastung etwas hoch erscheint. Dies kann einige Minuten dauern, und sollte uns nicht beunruhigen.

Ein Blick auf zurück auf das Webinterface zeigt, dass die Initialisierung erfolgreich war:

Nach dem nems-init

Als erstes gehen wir auf „CONFIGURATION“ → „NEMS System Settings Tool“. Moderne Browser wie Firefox und Chrome werden nun eine Warnung ausgeben, weil wir ein selbsterstelltes SSL Zertifikat verwenden. Wir klicken auf „ERWEITERT“ und weiter unten auf „Weiter zu 192.168.x.x (unsicher)“.

Warnmeldung im Browser

Nun melden wir uns mit dem neu angelegten Benutzerkonto an.

Anmeldung

Im NEMS System Settings Tool sollten wir nun ein Kennwort eingeben für die Ver- und Entschlüsselung von Sicherungsdateien.

Außerdem können wir auf dieser Seite die Zugangsinformationen für einen Telegram Chatbot, einen Pushover Account, oder für einen SMTP Mailserver angeben, damit NEMS uns auf diesem Weg Benachrichtigen kann.

Wir speichern die Änderungen mit einem Klick auf „Save all Settings“.

Post init

 

Als nächstes schauen wir uns an, was aktuell überwacht wird. Dafür gehen wir auf den Menüpunkt „Reporting“ und wählen „Adagios“. Adagios ist eine etwas modernere Oberfläche zur Darstellung der verschiedenen Daten von Nagios.

Auch hier melde ich mich mit meinem Benutzer markus an. Auf der Übersichtsseite sehen wir dass nur ein Host überwacht wird, und alle Hosts und alle Dienste laufen.


Mit einem Klick auf „Hosts“ sehen wir dann eine Liste aller überwachten Systeme. In der Liste taucht aktuell nur unser RaspBerry Pi mit dem Namen NEMS auf.

 

 

Hiermit wäre die Installation abgeschlossen, und ich würde mich an dieser Stelle  normalerweise verabschieden, und auf einen kommenden Blog-Beitrag verweisen – jedoch möchte ich einen Host zur Überwachung hinzufügen, da dieses nicht selbsterklärend ist, und ich Sie an dieser Stelle nicht hängen lassen möchte.



Wir schließen den Adagios-Tab vom Browser, und befinden uns wieder auf unserer NEMS Hauptseite. Nun können wir über das Menü „Configuration“ → „NEMS Configurator (NConf) die Seite aufrufen, mit dem wir Nagios konfigurieren können.
Auch hier melde ich mich mit meinem Benutzer markus an.

NConf

Willkommen auf der NConf Hauptseite. Ich kann an dieser Stelle keine Einführung in die Funktionsweise und Konfiguration von Nagios geben, aber jeder der schon mal manuell mit den Konfigurationsdateien arbeiten musste wird Ihnen bestätigen, dass dieses anfangs unübersichtliche Werkzeug vieles vereinfacht.

Ich möchte einen Ziel im Internet hinzufügen, dessen Erreichbarkeit ich in regelmäßigen Abständen mittels einem Ping-Befehl überprüfe. So lange ich eine Antwort vom Ziel bekomme, steht unsere Internetverbindung. Sobald das Ziel jedoch nicht erreichbar ist, bekommt unser NEMS das mit. Dabei werden Zeitpunkt und Ausfall des Internets protokolliert.
Viele nutzen hierzu die IP-Adressen der Google oder Cloudflare DNS-Server. Für dieses Beispiel verwende ich den Google DNS-Server mit der IP-Adresse 8.8.4.4

Sie können jedes beliebige Ziel im Internet verwenden, so lange Sie sich sicher sind dass der Zielserver immer erreichbar ist, und auf Ping Anfragen reagiert.

Im NConf gehen wir also bei „Hosts“ auf „Add“. Als Hostname und Alias können wir in unserem Fall etwas beliebiges eingeben. Ich nenne es einfach „Internet“. Als IP-Adresse nehmen wir die bereits erwähnte Adresse 8.8.4.4
Im Feld „monitored by“ muss unbedingt „Default Nagios“ ausgewählt werden.

Bei Host Template wählen wir „generic-host“ und schieben es mit dem grünen Pfeil in das Fenster „selected items“. Das gleiche machen wir mit dem Eintrag „admins“ im Bereich „contact groups“. (Die IP im Screenshot bitte ignorieren, diese sollte 8.8.4.4 sein):

 

Weiter unten geben wir nun noch die werte für „max check attempts“, „check interval“, „relay interval“, „first notification delay“, „notification interval“ an.

Bei „notification options“ möchte ich nur benachrichtigt werden wenn das Ziel „down“ oder „unreachable“ ist, also gebe ich „d,u“ an.


Durch einen klick auf „Submit“ speichern wir die Einstallungen.

Auf der nächsten Seite markieren wir im Textfeld "Advanced services (directly linked)" den Eintrag "PING", und schieben ihn mit dem oberen Pfeil in das rechte Fenster. Bitte nicht vergessen auf "Save" zu klicken.


Nun kommt der Stolperstein an dem die meisten Nutzer hängen bleiben: damit unser NEMS die Einstellungen übernimmt, muss aus den gemachten Einstellungen zuerst eine Nagios Konfigurationsdatei erstellt werden, und diese muss dann bereitgestellt werden.

Wir klicken also auf „Generate Nagios config“. Dies sollte aufgrund der wenigen Änderungen ohne Fehler durchlaufen. Anschließend gehen wir auf „Deploy“.



Wenn auch die Bereitstellung mit 3 Mal OK durchgelaufen ist, können wir wieder auf unsere Adagios Übersicht schauen:



Die Zahl der Hosts hat sich nun auf 2 erhöht, und aktuell liegen keine Störungen vor. Wenn wir im Menü auf „Hosts“ gehen, werden beide aktuell überwachte Hosts angezeigt.

Nun haben wir mit dem RaspBerry Pi in kurzer Zeit eine kostengünstige Lösung zur Netzwerküberwachung installiert.

Nun können je nach Bedarf die Benachrichtigungsoptionen eingerichtet werden, Geräte und Dienste hinzugefüt werden, und vieles mehr.

Nems bietet außerdem einige schöne Funktionen "out-of-the-box". Es ist z.B. möglich die komplette Konfiguration des NEMS Systems über den Browser in eine Datei zu sichern. Bei einem Ausfall der SD-Karte, oder des RaspBerry Pi, kann diese sehr schnell und einfach wiederhergestellt werden.

Schön ist auch die Anzeige unter http://nems/tv/ welche Sie in jedem Webbrowser aufrufen können, um den aktuellen Status zu sehen.

 

Selbstverständlich gibt es noch eine Vielzahl an Optionen und Möglichkeiten, aber ich hoffe dieser Beitrag hat Ihr Interesse in die Welt des Netzwerk-Monitoring geweckt.

Zu unserem Beitrag "sind wir Online" haben schon einige fachkundige Leser Feedback gegeben. Die alternativ vorgeschlagenen Lösungen sind mit sicherheit dem NEMS System in allen Bereichen überlegen - jedoch ist die Installation und Einrichtung mit NEMS so elegant gelöst, dass ich diese Lösung vorstellen wollte.

War der heutige Beitrag für Sie interessant? Sie können gerne einen Kommentar hinterlassen, oder uns per E-Mail schreiben. 

Ich hoffe wir konnten den einen oder anderen dazu bewegen ihren RaspBerry aus der Schublade oder Kiste zu holen, um das NEMS System auszuprobieren. 

Damit verabschiede ich mich für heute, und wünsche allen viel Spaß beim basteln.

Ihr Markus Neumann

 

Letzter Artikel Uno R3 als Webserver mit Ethernet Shield

Kommentar

OlegR - September 10, 2018

Viel einfacher geht’s mit Check_MK https://github.com/chrisss404/check-mk-arm

Kann ich nur empfehlen….

Sanofit - September 8, 2018

Sehr guter Beitrag, sehr ausführlich und Praxis bezogen erklärt. So sollte der Service bei einem Händler aussehen. 1A+++ Vielen Dank Richard Samt.

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe