Monitoring

Mit dem kleinen und schnellen Programm monit kann man den Raspberry Pi überwachen. Auf einer Weboberfläche kann man sich den Status von Prozessen, Programmen, Geräten, usw. anzeigen lassen. Außerdem kann man sich über den Status per eMail benachrichtigen lassen.

Installation

Es muss das Paket monit installiert werden:

sudo apt-get install monit

Damit monit beim Start des Pi automatisch startet, trägt man in der Datei /etc/default/monit

startup=1

ein.

Konfiguration

Die zentrale Datei zur Konfiguration von monit ist /etc/monit/monitrc. Welche Eintragungen man hier machen kann, wird im Folgenden beschrieben. Hat man hier eine Änderung gemacht, muss man monit mit

sudo /etc/init.d/monit restart

neu starten.

Weboberfläche von monit aus dem lokalen Netz erreichen

Monit WeboberflächeDamit man die Weboberfläche von monit aus dem lokalen Netz erreichen kann, trägt man in der Datei /etc/monit/monitrc

set httpd port 2812 and
allow admin:geheim

ein. Danach kann man über die Adresse http://IP-vom-Pi:2812 die Weboberfläche aus dem lokalen Netz erreichen1). Man wird dann zunächst aufgefordert, den Benutzernamen admin und das Passwort geheim einzugeben; Danach gelangt man auf die Übersichtsseite (s. Abb. rechts). Hier werden zunächst nur Informationen über das System angezeigt. Man kann aber in der Datei /etc/monit/monitrc Prozesse, Geräte, Dateien, usw. angeben die überwacht und hier angezeigt werden sollen. Dies wird im folgenden erklärt.

Prozesse überwachen

Um z. B. den ssh-Server zu überwachen, trägt man in der Datei /etc/monit/monitrc

check process sshd with pidfile /var/run/sshd.pid
  start program "/etc/init.d/ssh start"
  stop program "/etc/init.d/ssh stop"
  if failed port 22 protocol ssh then restart
  if 5 restarts within 5 cycles then timeout

ein. Die beiden if-Statements beschreiben hierbei, was getestet werden, und wie darauf reagiert werden soll. Weitere Erklärungen und Möglichkeiten der Prozessüberwachung findet man in der Dokumentation.

Dateisystem überwachen

Die beiden folgenden Zeilen sorgen dafür, dass die beiden angegebenen Mountpunkte überwacht werden. Informationen darüber werden z. B. in der Weboberfläche angezeigt.

check device usb with path /dev/sda2
check device root with path /dev/root

Dateien überwachen

Der folgende Eintrag überwacht das Änderungsdatum einer Datei.

check file cron.log with path /var/log/cron.log
   if timestamp > 24 hour then alert

In diesem Fall wird gewarnt, wenn die Datei älter als 24 Stunden ist. So kann man z. B. überwachen, ob ein Cronjob ausgeführt wurde.2)

Weitere Einstellungen

Es gibt eine Vielzahl weiterer Möglichkeiten der Überwachung. Es ist auch möglich, eine eMail-Benachrichtigung einzurichten. Die Dokumentation hilft in diesen Fällen weiter.

SSL Verschlüsselung einrichten

Hat man man auf seinem Router eine Portweiterleitung eingerichtet, so dass man auch aus dem Internet auf die Monit-Weboberfläche zugreifen kann, so sollte man eine SSL-Verschlüsselung einrichten. Passwörter und andere Daten werden dann nicht im Klartext übermittelt.

Zunächst muss mein ein Zertifikat erzeugen. Dazu benötigt man das Paket openssl:

sudo apt-get install openssl

Dann generiert man mit den beiden Befehlen

sudo openssl req -new -x509 -days 3650 -nodes  -out /etc/monit/monit.pem     -keyout /etc/monit/monit.pem

und

sudo openssl gendh 512 >> /etc/monit/monit.pem

ein Zertifikat. Beim ersten Befehl wird man nach einige Daten gefragt. Man muss bei common name den Rechnernamen de Pi angeben, die anderen Eingaben kann man ignorieren.
Das Zertifikat wird in /etc/monit/monit.pem gespeichert.

Als nächstes ändert man die Zugriffsrechte:

sudo chmod 700 /etc/monit/monit.pem

In der Datei /etc/monit/monitrc ändert man nun den Eintrag den man oben gemacht hat, so ab:

set httpd port 2812
SSL ENABLE
PEMFILE  /etc/monit/monit.pem
ALLOWSELFCERTIFICATION
allow admin:geheim

und startet monit neu:

sudo /etc/init.d/monit restart

Nun kann man monit unter der Adresse https://<IP-oder-Name>:2812 verschlüsselt erreichen.

1) Will man die Weboberfläche auch aus dem Internet erreichen, muss man eine Portweiterleitung für den Port 2812 im Router einrichten.
2) Hinweis: Die Datei /var/log/cron.log wird nicht standardmäßig bei einem Cronjob angelegt. In diesem wird ein Script via cron ausgeführt und die Ausgabe des Scripts in /var/log/cron.log geschrieben.

Diskussion

Geben Sie Ihren Kommentar ein. Wiki-Syntax ist zugelassen:
12 +12 = ?
 
 
raspberrypi/monitoring.txt · Zuletzt geändert: 2013/11/13 22:28 von admin