Serverauslastung mit Munin aufzeichnen

Munin Chart https://www.flickr.com/photos/hermzz/4665905531 (CC BY-SA 2.0)

Munin Chart https://www.flickr.com/photos/hermzz/4665905531 (CC BY-SA 2.0)

In den letzten zwei Blogeinträgen haben wir uns mit dem Thema Serverauslastung beschäftigt. Die dazu notwendigen Linux Befehle geben einen guten Überblick über die Serverauslastung zum aktuellen Zeitpunkt. Wenn Sie aber Ihren Server über einen längeren Zeitraum beobachten wollen, so kommen Sie mit den vorgestellten Methoden nicht sehr weit.

Deshalb wollen heute wir das Ganze mal auf einen anderen Level heben :).

Das Zauberwort heisst Server-Monitoring oder ganz allgemein Netzwerk-Management und es gibt zahlreiche Programme für ebenso zahlreiche Einsatzzwecke. Allein im Open Source Segment gibt es beispielsweise die Programme BigSister, Cacti, Icinga, Multi Router Traffic Grapher, Munin, Nagios, OpenNMS, Opsview, Op5 Monitor, Xymon, Zabbix und Zenoss.

Wir wollen uns in diesem Artikel exemplarisch mit Munin beschäftigen.

Der Ursprung vieler Progamme ist der Multi Router Traffic Grapher (MRTG), der HTML-Seiten erzeugt, die Grafiken enthalten. Mit Hilfe von MRTG kann so ziemlich jede Reihe von Zahlen visualisiert werden („von der Temperatur im Serverraum bis zur Anzahl der eigehenden SPAM-Mails“).

Das RRDtool bietet ein clevere Methode um Daten zu sammeln. RRD steht für Round Robin Database. Round Robin lässt sich im Deutschen mit „Rundlauf-Verfahren“ übersetzen. In unserem Fall wird eine Datenbank mit einer festen Grösse und für eine feststehende Zeitspanne angelegt (RRD-Datei). Wenn die Zeitspanne vorbei ist, wird die Datei nicht vergrössert, sondern die ältesten Einräge werden gelöscht. Man kann also beispielsweise die Daten der letzten Tage alle 5 Minuten speichern, die der letzten Monate alle 30 Minuten und die der letzten Jahre alle 6 Stunden.

Munin nutzt RRDtool zum Sammeln von Daten und besteht aus einem Server und beliebig vielen Clients. Wenn Sie nur einen Server überwachen wollen, liegen Client und Server auf einer Maschine.

In unserem Fall nutzen wir den Apache2 Webserver unter Ubuntu 14.04, Munin funktioniert aber auch mit anderen Webservern wie beispielsweise Nginx.

Installation

Zunächst muss das Paket Munin installiert werden

sudo apt-get install munin

Konfiguration

Munin muss die HTML-Dateien erzeugen, in einem Verzeichnis ablegen und der Webserver Apache muss die Seiten bei Bedarf ausliefern. Da alle Websites auf unserem Server im Verzeichnis /var/www/[domainname] liegen, werde ich die Konfigurationsdatei /etc/munin/munin.conf und die /etc/munin/apache.conf entsprechend anpassen.

sudo nano /etc/munin/munin.conf

Entfernen Sie das Kommentarzeichen # für die folgenden vier Zeilen und ändern Sie den Pfad des htlmdir .

dbdir   /var/lib/munin
htmldir /var/www/munin/
logdir /var/log/munin
rundir  /var/run/munin

Entfernen Sie ebenfalls das Kommentarzeichen für die Zeile

tmpldir /etc/munin/templates

Am Ende der Konfigurationsdatei müssen Sie noch einen Namen für den munin Dienst festlegen. Wenn Sie nur einen Server überwachen, können Sie die IP-Adresse 127.0.0.1 stehen lassen, wenn Sie mehrere Maschinen überwachen wollen, müssen Sie die IP-Adresse Ihres Servers hier eintragen.

# a simple host tree
[NOVATREND-Serverblogger-Munin]
    address 127.0.0.1
    use_node_name yes

Als nächstes müssen Sie das Verzeichnis /var/www/munin erstellen und den Benutzer munin zum Eigentümer machen.

sudo mkdir /var/www/munin
sudo chown munin:munin /var/www/munin

Dann müssen Sie in der /etc/munin/apache.conf noch ein paar Änderungen vornehmen:

sudo nano /etc/munin/apache.conf

Ändern Sie dem Pfad im Alias und im Directory Container und das Allow Kommando.

Alias /munin /var/www/munin
<Directory /var/www/munin>
  Order allow,deny
  #Allow from localhost 127.0.0.0/8  ::1 
  Allow from all 
  Options None
  ...

Nun können Sie den munin-node Client (der mitinstalliert wurde) und den Apache Webserver neu starten.

sudo service munin-node restart
sudo service apache2 restart

Wenn Sie in Ihrem Browser Ihre IP-Adresse oder einen auf Ihren Server zeigenden Domainamen eingeben, gefolgt von /munin sollte Sie die generierten HTML-Seiten mit den Auswertungen sehen. Es kann sein, dass es fünf Minuten braucht, bis die HTML Dateien erstellt sind.

In meinem Fall ist die URL https://serverblogger.ch/munin und das Ergebnis sieht so aus (Benutzer: serverblogger, Passwort serverblogger):

munin Server Monitoring
munin Server Monitoring
In den Kategorien stehen die Auswertungen basierend auf Tag, Woche, Monat und Jahr (d für day, w für week, m für month und y für year).

Die wichtigsten Antworten auf Fragen der Systemauslastung finden Sie in den Kategorien system und disk.

Zugriff schützen

Nun soll ja vermutlich nicht jeder Ihre Auswertungen sehen und darum ist in den Munin/Apache Konfigurationsdateien bereits ein Verzeichnisschutz vorbereitet. Damit das funktioniert, müssen Sie das Paket apache2-utils installieren.

sudo apt-get install apache2-utils

Nach der Installation ist es möglich, eine Datei zu erstellen, die eine Benutzer/Passwort Kombination enthält, die beim Aufruf der Munin Seiten abgefragt wird. Die Datei wird mit dem folgenden Befehl erzeugt.

sudo htpasswd -c /etc/munin/munin-htpasswd serverblogger

Als Benutzernamen und Passwort wähle ich serverblogger.

In der Konfigurationsdatei für den Apache

sudo nano /etc/munin/apache.conf

müssen noch die entsprechenden Befehle auskommentiert werden.

AuthUserFile /etc/munin/munin-htpasswd
AuthName "NOVATREND Serverblogger Munin"
AuthType Basic
require valid-user

Nun sind Ihre Daten geschützt und nur mit der Benutzername/Passwort Kombination einsehbar.

https://serverblogger.ch/munin

Benutzername/Passwort Schutz
Benutzername/Passwort Schutz
Hinweis: Der angegebene Server ist der Testserver, auf dem die Dinge, die ich hier im Blog vorstelle, ausprobiert werden. Die anzeigten Daten können daher etwas „eigentümlich“ sein ;).

Munin kann durch viele Plugins erweitert werden, beispielsweise für Apache und MySQL, aber auch für Content Management Systeme wie Drupal oder das bereits angesprochene Raspberry Pi Temperatur Plugin für die Temperatur im Serverraum oder im Gartenbeet 🙂

Links


tl;dr: Munin visualisert fast alles und bringt Erkenntnis und Farbe in den Administratoren-Alltag

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen