Serverüberwachung · 4 min read · Oct 15, 2025
Serverüberwachung Mit munin Und monit Auf Debian Wheezy
Serverüberwachung Mit munin Und monit Auf Debian Wheezy
Version 1.0
Autor: Falko Timme
Folge mir auf Twitter
In diesem Artikel werde ich beschreiben, wie Sie Ihren Debian Wheezy-Server mit munin und monit überwachen können. munin erzeugt nette kleine Grafiken über nahezu jeden Aspekt Ihres Servers (Durchschnittslast, Speichernutzung, CPU-Nutzung, MySQL-Durchsatz, eth0-Verkehr usw.) ohne viel Konfiguration, während monit die Verfügbarkeit von Diensten wie Apache, MySQL, Postfix überprüft und die entsprechenden Maßnahmen wie einen Neustart ergreift, wenn es feststellt, dass ein Dienst sich nicht wie erwartet verhält. Die Kombination der beiden bietet Ihnen eine vollständige Überwachung: Grafiken, die Ihnen helfen, aktuelle oder bevorstehende Probleme zu erkennen (wie “Wir brauchen bald einen größeren Server, unsere Durchschnittslast steigt schnell.”), und einen Wächter, der die Verfügbarkeit der überwachten Dienste sicherstellt.
Obwohl munin es Ihnen ermöglicht, mehr als einen Server zu überwachen, werden wir hier nur die Überwachung des Systems besprechen, auf dem es installiert ist.
Dieses Tutorial wurde für Debian Wheezy geschrieben, aber die Konfiguration sollte auch auf andere Distributionen mit wenigen Änderungen anwendbar sein.
Ich möchte zuerst sagen, dass dies nicht der einzige Weg ist, ein solches System einzurichten. Es gibt viele Möglichkeiten, dieses Ziel zu erreichen, aber dies ist der Weg, den ich wähle. Ich gebe keine Garantie, dass dies für Sie funktioniert!
1 Vorbemerkung
Der Hostname unseres Systems ist server1.example.com, und wir haben eine Website www.example.com darauf mit dem Dokumentenstamm /var/www/www.example.com/web.
2 Installieren Und Konfigurieren Von munin
Um munin auf Debian Wheezy zu installieren, tun wir dies:
apt-get install munin munin-node munin-plugins-extraAktivieren Sie einige zusätzliche munin-Plugins:
cd /etc/munin/plugins
ln -s /usr/share/munin/plugins/mysql_ mysql_
ln -s /usr/share/munin/plugins/mysql_bytes mysql_bytes
ln -s /usr/share/munin/plugins/mysql_innodb mysql_innodb
ln -s /usr/share/munin/plugins/mysql_isam_space_ mysql_isam_space_
ln -s /usr/share/munin/plugins/mysql_queries mysql_queries
ln -s /usr/share/munin/plugins/mysql_slowqueries mysql_slowqueries
ln -s /usr/share/munin/plugins/mysql_threads mysql_threadsAls nächstes müssen wir die munin-Konfigurationsdatei /etc/munin/munin.conf bearbeiten. Kommentieren Sie die Zeilen dbdir, htmldir, logdir, rundir und tmpldir aus (die Standardwerte sind in Ordnung). Wir möchten, dass munin den Namen server1.example.com anstelle von localhost.localdomain in der HTML-Ausgabe verwendet, daher ersetzen wir localhost.localdomain durch server1.example.com im einfachen Hostbaum. Ohne die Kommentare sieht die geänderte Datei so aus:
vi /etc/munin/munin.conf| # Beispielkonfigurationsdatei für Munin, generiert von 'make build' # Die nächsten drei Variablen geben an, wo sich die RRD # Datenbanken, die HTML-Ausgabe, Protokolle und die Lock/PID-Dateien befinden. Sie müssen alle # vom Benutzer, der munin-cron ausführt, beschreibbar sein. Sie sind alle # auf die Werte voreingestellt, die Sie hier sehen. # dbdir /var/lib/munin htmldir /var/cache/munin/www logdir /var/log/munin rundir /var/run/munin # Wo nach den HTML-Vorlagen gesucht werden soll # tmpldir /etc/munin/templates # Wo nach den statischen www-Dateien gesucht werden soll # #staticdir /etc/munin/static # temporäre cgi-Dateien sind hier. beachten Sie, dass sie vom # cgi-Benutzer (normalerweise nobody oder httpd) beschreibbar sein müssen. # # cgitmpdir /var/lib/munin/cgi-tmp # (Genau ein) Verzeichnis, um alle Dateien einzuschließen. includedir /etc/munin/munin-conf.d [...] # ein einfacher Hostbaum [server1.example.com] address 127.0.0.1 use_node_name yes [...] |
Wir sollten die Apache-Konfigurationsdatei für munin /etc/apache2/conf.d/munin finden (die tatsächlich ein Symlink zu /etc/munin/apache.conf ist) - sie definiert ein Alias namens munin für das HTML-Ausgabeverzeichnis von munin /var/cache/munin/www, was bedeutet, dass wir munin von allen Websites auf diesem Server über den relativen Pfad /munin (z.B. http://www.example.com/munin) aufrufen können.
Stellen Sie sicher, dass Sie die Zeile Allow from localhost 127.0.0.0/8 ::1 auskommentieren und stattdessen Allow from all hinzufügen (ansonsten können Sie die munin-Ausgabe nur von localhost aus aufrufen):
vi /etc/apache2/conf.d/munin| # Aktivieren Sie dies für die Vorlagenerstellung Alias /munin /var/cache/munin/www # Aktivieren Sie dies für cgi-basierte Vorlagen #Alias /munin-cgi/static /var/cache/munin/www/static #ScriptAlias /munin-cgi /usr/lib/munin/cgi/munin-cgi-html # |
Starten Sie Apache neu:
/etc/init.d/apache2 restartStarten Sie dann munin neu:
/etc/init.d/munin-node restartWarten Sie nun ein paar Minuten, damit munin seine erste Ausgabe erzeugen kann, und gehen Sie dann in Ihrem Browser zu http://www.example.com/munin/, und Sie sehen die ersten Statistiken. Nach ein paar Tagen könnte dies so aussehen:

(Das ist nur ein kleiner Auszug aus den vielen Grafiken, die munin erzeugt…)
3 Passwortschutz Für Das munin-Ausgabeverzeichnis (Optional)
Jetzt ist es eine gute Idee, das munin-Ausgabeverzeichnis passwortgeschützt zu machen, es sei denn, Sie möchten, dass jeder jede kleine Statistik über Ihren Server sehen kann.
Um dies zu tun, müssen wir die Passwortdatei /etc/munin/munin-htpasswd erstellen. Wir möchten uns mit dem Benutzernamen admin anmelden, also tun wir dies:
htpasswd -c /etc/munin/munin-htpasswd adminGeben Sie ein Passwort für admin ein. Öffnen Sie dann erneut /etc/apache2/conf.d/munin…
vi /etc/apache2/conf.d/munin… und kommentieren Sie den folgenden Abschnitt aus:
| [...] AuthUserFile /etc/munin/munin-htpasswd AuthName "Munin" AuthType Basic require valid-user [...] |
Starten Sie dann Apache neu:
/etc/init.d/apache2 restartErhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.