Mehrere Systeme mit munin (Debian Etch) überwachen
Version 1.0
Author: Falko Timme <ft [at] falkotimme [dot] com>
Diese Anleitung veranschaulicht, wie man mehrere Systeme mit munin überwachen kann. Munin erzeugt raffinierte kleine Grafiken von fast jedem Aspekt Deines Servers (durchschnittliche Auslastung, Arbeitsspeicherauslastung, Prozessorauslastung, MySQL Datendurchsatz, Netzwerk-Datendurchsatz, etc.) ohne großartige Konfiguration. Ich werde den munin Client auf allen Systemen installieren, die überwacht werden sollen (inklusive dem munin Server selbst); die munin Clients werden dies dann dem munin Server rückmelden.
Diese Anleitung wurde für Debian Etch geschrieben, jedoch sollte die Konfiguration mit kleinen Änderungen auch auf andere Distributionen zutreffen.
Allerdings möchte ich an dieser Stelle darauf hinweisen, dass dies hier nicht der einzige Weg ist, ein solches System zu installieren. Es gibt viele Möglichkeiten – ich selbst habe mich für diese entschieden. Ich kann aber nicht garantieren, dass diese Lösung bei jedem funktioniert bzw. für jeden die richtige ist!
1 Vorbemerkung
Der Hostname unseres munin Servers ist server1.example.com (IP Adresse: 192.168.0.100). Wir haben darauf eine Web Site www.example.com mit dem Dokumenten-Root /var/www/www.example.com/web.
Ich verwende hier einen munin Client, server2.example.com (IP Adresse: 192.168.0.101). Natürlich kannst Du so viele Client Systeme hinzufügen, wie Du möchtest.
2 Installiere und konfiguriere munin auf dem Server
munin server (server1.example.com):
Um den munin Client und Server auf Debian Etch zu installieren, führen wir Folgendes aus:
apt-get install munin munin-node
Als Nächstes müssen wir die munin Konfigurationsdatei /etc/munin/munin.conf bearbeiten. Wir möchten, dass munin seine Ausgabe in das Verzeichnis /var/www/www.example.com/web/monitoring setzt, daher ändern wir den Wert von htmldir. Wir möchten, dass es die Bezeichnung server1.example.com anstatt localhost.localdomain in der HTML Ausgabe verwendet, daher ersetzen wir localhost.localdomain mit server1.example.com. Mit dieser Konfiguration kann sich der munin Server selbst überwachen. Ohne Kommentare sieht die veränderte Datei wie folgt aus:
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes |
Als Nächstes erstellen wir das Verzeichnis /var/www/www.example.com/web/monitoring und übergeben dessen Besitz an den Benutzer und die Gruppe munin, sonst kann munin die Ausgabe nicht in dieses Verzeichnis setzen. Dann starten wir munin neu:
mkdir -p /var/www/www.example.com/web/monitoring
chown munin:munin /var/www/www.example.com/web/monitoring
/etc/init.d/munin-node restart
Warte ein paar Minuten, damit munin seine erste Ausgabe erzeugen kann. Gehe in Deinem Browser dann zu http://www.example.com/monitoring/ und Du siehst 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 Schütze das munin Ausgabe-Verzeichnis mit einem Passwort (optional)
munin server (server1.example.com):
Es ist sehr vorteilhaft das Verzeichnis /var/www/www.example.com/web/monitoring mit einem Passwort zu schützen, wenn Du nicht möchtest, jeder jede noch so kleine Statistik Deines Servers sehen soll.
Dafür erstellen wir eine .htaccess Datei in /var/www/www.example.com/web/monitoring:
vi /var/www/www.example.com/web/monitoring/.htaccess
AuthType Basic AuthName "Members Only" AuthUserFile /var/www/www.example.com/.htpasswd <limit GET PUT POST> require valid-user </limit> |
Dann müssen wir die Passwort-Datei /var/www/www.example.com/.htpasswd erstellen. Wir möchten uns mit dem Benutzernamen admin anmelden, also führen wir dies aus:
htpasswd -c /var/www/www.example.com/.htpasswd admin
Gib für admin ein Passwort ein und das war’s!
4 Installation und Konfiguration von munin auf dem Client
munin client (server2.example.com):
Auf dem Client System brauchen wir nur das munin Client Paket zu installieren, namens munin-node:
apt-get install munin-node
Als Nächstes müssen wir dem munin Client mitteilen, dass unser munin Server server1.example.com mit der IP Adresse 192.168.0.100 sich verbinden darf um Angaben vom Client einholen zu können. Dazu öffnen wir /etc/munin/munin-node.conf und fügen die Zeile allow ^192.168.0.100$ am Ende ein. Danach sollte die Datei wie folgt aussehen:
vi /etc/munin/munin-node.conf
# # Example config-file for munin-node # log_level 4 log_file /var/log/munin/munin-node.log port 4949 pid_file /var/run/munin/munin-node.pid background 1 setseid 1 # Which port to bind to; host * user root group root setsid yes # Regexps for files to ignore ignore_file ~$ ignore_file .bak$ ignore_file %$ ignore_file .dpkg-(tmp|new|old|dist)$ ignore_file .rpm(save|new)$ # Set this if the client doesn't report the correct hostname when # telnetting to localhost, port 4949 # #host_name localhost.localdomain # 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$ allow ^192.168.0.100$ |
Letztendlich starten wir den munin Client neu:
/etc/init.d/munin-node restart
5 Die munin Server Konfiguration aktualisieren
munin server (server1.example.com):
Nun müssen wir dem munin Server mitteilen, dass es ein weiteres System gibt, das überwacht werden soll (server2.example.com mit der IP Adresse 192.168.0.101). Dazu öffnen wir /etc/munin/munin.conf und fügen eine Zeile für server2.example.com hinzu sodass die Datei wie folgt aussieht:
vi /etc/munin/munin.conf
dbdir /var/lib/munin htmldir /var/www/www.example.com/web/monitoring logdir /var/log/munin rundir /var/run/munin tmpldir /etc/munin/templates [server1.example.com] address 127.0.0.1 use_node_name yes [server2.example.com] address 192.168.0.101 use_node_name yes |
Als Nächstes starten wir munin neu:
/etc/init.d/munin-node restart
Nach ein paar Minuten solltest Du auf der munin Seite (http://www.example.com/monitoring/) einen Link für server2.example.com sehen:
Wenn Du auf diesen Link klickst, siehst Du die Grafiken für server2.example.com.