Server-Statistik unter Debian mit Munin

Heute mal ein kleines Tutorial für Serverbesitzer. Mein favorisiertes Serverbetriebssystem ist seit einiger Zeit Debian. Die Einrichtung eines typischen LAMP-Server (Linux, Apache, MySQL, PHP) gestaltet sich dabei recht bequem – gewisse Linuxgrundkenntnisse natürlich vorausgesetzt. Eines der wichtigen Elemente beim Betrieb eines Server ist es die Performance-Daten im Blick zu behalten um rechtzeitig durch Tuningmaßnahmen oder Hardwareerweiterungen eingreifen zu können.

Es gibt einige Tools dafür: MRTG, Cacti, HoTsAnIc und auch Munin. Ich habe mich für die Überwachung der wichtigsten Eckdaten via Munin entschlossen, da mir die Einrichtung von Cacti einfach zu komplex und kompliziert war. Bei Munin verläuft die Installation und Einrichtung unter Debian kinderleicht und ist in wenigen Minuten fertig. Ein Vorteil von Munin ist außerdem, dass die Statistiken mehrerer Server an einem Platz gesammelt und dargestellt werden können.

Ich erkläre hier in Kurzform die Installation eines Master-Servers und eines Clients inklusive der Basiskonfiguration um die Daten des Clients auf dem Server darzustellen.

1. Installation und Konfiguration der Pakete auf dem Master-Server

sudo apt-get install munin munin-node

Munin stellt das Hauptpaket dar, dass sich unter anderem darum kümmert die HTML-Seiten und Graphen zu erstellen. Munin-Node ist der Agent, der die Daten abfrägt. Durch die Installation werden automatisch auch die zugehörigen Cronjobs eingerichtet. Alles was zur Erfassung der lokalen Performancedaten nun noch geschehen muss, ist die Einstellung des Verzeichnisses, in das die html-Dateien und Graphen abgelegt werden sollen:

sudo vim /etc/munin/munin.conf

Hinweis: „sudo“ ist in einer Standard-Debian-Installation nicht nötig. Es dient auf meinen Servern lediglich der erhöhten Sicherheit. Infos dazu – wie so oft – bei der Wikipedia.


# The next three variables specifies where the location of the RRD
# databases, the HTML output, and the logs, severally. They all
# must be writable by the user running munin-cron.
dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin

Der Wert hinter htmldir muss entsprechend den eigenen Wünschen angepasst werden. Das speichern der Datei reicht aus um nach spätestens 5 Minuten (Standard-Zeitspanne des installierten Cronjobs) das Ergebnis im entsprechenden Verzeichnis zu sehen (richtige Rechtevergabe vorausgesetzt).

2. Installation eines Munin-Clients auf einem anderen Server

Hier läuft das ganze ähnlich ab, wir benötigen aber nur das munin-node Paket.

sudo apt-get install munin-node

Danach muss in der Datei /etc/munin/munin-node.conf die IP-Adresse des anderen Servers für den Zugriff freigeschalten werden:

sudo vim /etc/munin/munin-node.conf


# A list of addresses that are allowed to connect. This must be a
# regular expression, due to brain damage in Net::Server, which
# doesn't understand CIDR-style network notation. You may repeat
# the allow line as many times as you'd like

allow ^127\.0\.0\.1$

Hier einfach die letzte Zeile kopieren und die eigene IP-Adresse entsprechend eintragen. Wichtig ist, dass die Escape-Zeichen entsprechend beinhaltet sind, damit die IP-Adresse für Munin lesbar bleibt.

Der Munin-Node-Agent muss nach den Änderung neu gestartet werden:

sudo /etc/init.d/munin-node restart

Zum Schluß müssen wir jetzt noch den neuen Client auf dem Master-Server eintragen, damit der weiß, dass er die Daten von dort abfragen soll:

sudo vim /etc/munin/munin.conf


# a simple host tree
[srv01.meinserver.tu]
address 127.0.0.1
use_node_name yes

[srv02.meinserver.tu]
address 123.123.123.123
use_node_name yes

Der erste Eintrag ist normalerweise mit localhost.localdomain beschriftet, und kann nach Wunsch hier entsprechend angepasst werden. Für den zweiten Eintrag kopieren wir einfach den ersten und ändern Name und IP-Adresse.

Das war’s. Wenn alle Rechte stimmen und Ports verfügbar sind, wird bei jedem Cron-Run (Standard: 5-Minuten-Takt) auch der zweite Server abgefragt. Diese Abfrage passiert bei den Standardeinstellungen via Port 4949. Über einen Test von Master zu Client kann also schnell getestet werden ob der Zugriff verfügbar ist:


srv01:/$ telnet srv02.meinserver.de 4949
Trying 123.123.123.123...
Connected to srv02.meinserver.de.
Escape character is '^]'.
# munin node at srv02.meinserver.de

Über einige eingebaute Befehle können direkt zum Test ein paar Werte abgegriffen werden. Die Befehle lauten: list, nodes, config, fetch, version und quit..

Das war’s mit einer Grundkonfiguration zur grafischen Auswertung von Performancedaten. Erfasst werden in der Default-Installation schon jede Menge Daten: Netzwerktraffic, Load, CPU, Memory, MySQL Queries, etc. pp.

Wenn jemand sich die Mühe macht und eine erweiterte Konfiguration bastelt die noch mehr Daten erfasst, würde ich mich über einen Hinweis in den Kommentaren freuen. Ich werde dann später gerne nochmal eine Fortsetzung schreiben und auf entsprechende weiterführende Tutorials verweisen.

Weitere Infos, Dokumentationen und Tutorials zu Munin gibt’s auf der Homepage unter http://munin-monitoring.org/

8 Gedanken zu „Server-Statistik unter Debian mit Munin“

  1. danke für den Artikel, ich habe schon einige Monitoringtools getestet, aber keines funktionierte bisher so problemlos.
    Innerhalb von 5 Minuten läuft und arbeitet munin auf meinem vserver.

  2. Erstmal vielen Dank für das Tutorial! Bis jetzt habe ich nur MRTG im Einsatz gesehen was schon sehr beeindrucken ist. Hast du vielleicht einen Screenshot von den HTML Ausgabe (Graphen) die Munin erstellt?

  3. Pingback: Munin Einrichtung unter Debian erklärt | Server-Monitoring-Blog.de
  4. Pingback: This RRD was created on other architecture » Frank Helmschrott
  5. Ich habe Munin gerade mal installiert. Im Moment ist auf den Grafiken noch nichts zu sehen. Wie lange dauer das in etwa?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.