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.

6 Links

Das könnte dich auch interessieren …