einfaches Monitoring


Eine Linux-Maschine (vor allem, wenn sie als Server eingesetzt wird) lässt sich mit relativ einfachen Mitteln zuverlässig überwachen. In diesem Beitrag möchte ich zeigen, wie und mit welchen Werkzeugen das gelingen kann.

Der Schwerpunkt liegt hier vor allem auf den Punkten

  1. einfach
  2. stabil & zuverlässig
  3. Verwendung von Standardtechniken
  4. Einsatz auf Kleinstrechnern (z. B. Raspberry Pi) möglich

Inhalt

Ausgangssituation
Kummerkasten
Monit
nmon

Ausgangssituation

Stellen wir uns einen im Dauerbetrieb befindlichen Raspberry Pi Server vor, der möglichst hoch verfügbar seinen Dienst verrichten soll. Der bekannte und beliebte Single Board Computer eignet sich hervorragend für viele Projekte. Aber auch für Standard-Dienste wie Webserver, Loadbalancer oder Ähnliches.
Dieser Server wurde ohne grafische Oberfläche installiert, weshalb wir uns per ssh (z. B. via putty) oder direkt einen Zugang zum System verschaffen und alle weiteren Schritte über die Kommandozeile erledigen.

Wir wollen nun wissen, was im Raspberry-Server so los ist und was wann Probleme macht bzw. was in absehbarer Zeit Probleme bereiten könnte.

Kummerkasten

Eine System-Benachrichtigung per E-Mail ist eine gute Sache, die zudem in vielen Lösungen (so auch in der hier vorgestellten) implementiert ist. Dazu brauchen wir erst einmal eine gültige E-Mail-Adresse, auf der später die Meldungen eintreffen sollen. Vermutlich wird das bei den meisten schon erledigt sein.

msmtp-mta

Das Programm msmtp ist ein sogenannter SMTP-Client und ermöglicht nach relativ einfacher Konfiguration den Versand von E-Mails (z. B. aus Systemmeldung und -warnungen heraus über einen externen E-Mail-Server. Mit dem Befehl

sudo apt install msmtp-mta

landet die Software auf unserem System.

Die Man-Page gibt weitere Tipps und Tricks in der Konfiguration und Benutzung.

Monit

Der Dienst monit ist in der Regel über die Linux-Boardmittel der jeweiligen Distribution einzurichten und bietet einen deutlichen Nutzen für den System-Admin.

sudo apt install monit

Monit wird dazu verwendet, um bestimmte Dienste und Funktionen zu überwachen und im Notfall Aktionen auszulösen. Das kann z. B. der Neustart eines dadurch überwachten Dienstes, die Alarmierung des Admins per E-Mail oder vieles Andere mehr sein.

Monit ist sehr flexibel und erlaubt es, nicht nur implementierte Funktionen zu nutzen, sondern sie auch durch z. B. eigene Skripte zu erweitern und anzupassen.

Auf dieser Seite möchte ich näher auf die Installation und Konfiguration eingehen.

nmon

Der Dienst nmon ist in der Regel ebenfalls über Boardmittel der jeweiligen Linux-Distribution aus den Repositories zu installieren.

sudo apt install nmon

nmonchart

Die Erweiterung nmonchart ist in der Lage, aus den Mitschnitt-Dateien des nmon-Dienstes HTML-Seiten zu generieren. Daher gelangt diese auch auf unser System.

Befehle

Das Aufzeichnen von Daten über einen Zeitraum von 24 Stunden führt man dieses Kommando aus:

nmon -t -f -s 900 -c 96 -m /Pfad/zum/nmon-charts-verzeichnis/

Um aus der nmon-Datei nun eine html-Datei zu generieren, muss (auf einem Debian-basierten System) folgender Befehl abgesetzt werden:

bash nmonchart /PFAD/ZUR/QUELLDATEI.nmon /PFAD/ZUR/ZIELDATEI.html

Anschließend können solche Grafiken entstehen

Beispiel eines nmon-chart

Um solche (sich über 24 Stunden erstreckende) Grafiken zu erstellen, ist es ratsam, den cron-Dienst hierfür vor den Karren zu spannen.

Dazu bearbeitet man die Datei /etc/crontab mit einem Editor (in diesem Fall vim).

sudo vim /etc/crontab

Dort fügt man nun die folgende Zeile ein:

0 9 * * * root /bin/bash -c 'nmon -t -f -s 900 -c 96 -m /pfad/zu/einem/verzeichnis/'

Kurz zur Erläuterung: Diese Zeile bewirkt, dass um 09:00 Uhr unter dem Benutzer root über die Bash der Befehl nmon -t -f ... ausgeführt wird. Dabei erfolgt eine Aufzeichnung über 24 Stunden.

Wenn das soweit automatisch und stabil läuft, sollte man aber das Housekeeping unbedingt noch aktivieren. Sprich: Wenn Daten automatisch generiert / gesammelt werden, muss man auch dafür sorgen, dass nicht mehr benötigte Daten verschoben, archiviert oder gelöscht werden. Wie das genau funktioniert, zeige ich in einem anderen Artikel.