Monitoring mit Munin

Debian Swirl

http://www.black-board.net
Es ist nicht gestattet dieses Tutorial losgelöst von dem Namen BlackBoard und der URL zu verbreiten.


Das Tutorial befindet sich noch in der Entwicklung. Wenn du mitwirken möchtest, melde dich hier.
Dies ist ein Aufruf - wenn du Ahnung hast, mach mit!



1. Monitoring


1.1 Definition

Unter Monitoring versteht man im IT-Bereich im Allgemeinen die Überwachung und Kontrolle von IT-Netzwerken und Telekommunikationsnetzen bzw. einzelner Anlagen (z.B. Server).


1.2 Anforderungen

Ein gutes Monitoringsystem sollte den folgenden Anforderungen gerecht werden:

  1. Monitoring vieler Systeme
  2. Messung und Darstellung von Kurz -und Langzeitdaten
  3. einfacher Vergleich der selben Messung zwischen verschiedenen Systemen
  4. Übersicht aller Messergebnisse auf einem System
  5. Plots müssen immer aktuell und überall verfügbar sein
  6. das Monitoring sollte keinen Einfluss auf das System haben (die durch das Monitoring genutzten Ressourcen sollten kleiner als 1% der Systemleistung sein)

2. Was ist Munin?


Bei Munin handelt es sich um eine Monitoringsoftware (genauer gesagt ist es nur das Frontend), welche auf das RRD-Tool aufsetzt und eine Server-Client-Struktur mitbringt. Die Round Robin Database (RRD, näheres siehe 6) stellt eine Weiterentwicklung der Grafik -und Loggingfunktionalität von MRTG (Multi Router Traffic Grapher) dar und stammt vom selben Entwickler (Tobias Oetiker).

Munin bringt bereits einige sehr nützliche Plugins mit, beispielsweise zur Überwachung von Mail- oder MySQL-Servern. Die Installation und Konfiguration geht sehr einfach vonstatten, die gewünschten Plugins werden einfach über symbolische Links aktiviert. Somit hat man innerhalb weniger Minuten ein lauffähiges Monitoringsystem. Munin holt sich über einen Cronjob alle 5 Minuten die aktuellen Daten und erzeugt dann die entsprechenden Grafiken und HTML-Seiten.

Munin live erleben: http://munin.ping.uio.no


3. Installation


Munin besteht aus 2 Paketen:

  • munin - erzeugt die Grafiken und HTML-Seiten (sozusagen der Server)
  • munin-node - Client

Die Installation der Pakete erfolgt mit dem Befehl:

apt-get install munin munin-node


4. Konfiguration


Wie bereits weiter oben erwähnt ist Munin sehr schnell und einfach zu konfigurieren, und somit gibt es auch nicht viel zu tun um ein lauffähiges Monitoringsystem zu erhalten. Aus diesem Grund wird im folgenden nur auf die grundlegende Konfiguration sowie den einen oder anderen interessanten Punkt eingegangen.

Weitere Beispiele/Optionen findet man auf der FAQ-Seite von Munin.


4.1 Dateien

  • /etc/munin/ - Verzeichnis mit den Configfiles (munin.conf, munin-node.conf)
  • /etc/munin/plugin-conf.d/ - Configfiles für das Verhalten/Umgebung
  • /etc/munin/plugins - symbolische Links zu den PlugIns
  • /usr/share/munin/plugins - Plugins
  • /var/lib/munin - RRD-Files, Statistikfiles etc.
  • /var/www/munin - HTML-Files (darunter Verzeichnisse für die Domänen und dort die einzelnen Files)
  • /var/log/munin - Log-Files
  • /var/run/munin - Run-Files
  • /etc/cron.d/munin - CronJob, welcher /usr/bin/munin-cron ausführt

4.2 Serverkonfiguration

Die Konfiguration des Servers erfolgt in der Datei munin.conf

General Config
Option Beschreibung
dbdir Verzeichnis zur Speicherung der RRD-Files
htmldir HTML-Verzeichnis
logdir Verzeichnis für die Logfiles
rundir Run-Files (PID und Lockfile)
tmpldir Templates
max_processes max. Anzahl paralleler Munin-Prozesse
nsca* Optionen für Nagios
domain_order ändert die Sortierung der Domains
[foo.com;foo.de] ordnet die Domain foo.de der Domain foo.com zu
[machine.foo.com] ordnet machine.foo.com der Domain foo.com zu (Kurzform von [foo.com;machine.foo.com])

Domain-level options
Option Beschreibung
node_order ändert die Reihenfolge der Clients in der Darstellung

Node-level options
Option Beschreibung
address IP oder hostname.domain
use_node_name yes, nur nötig wenn unter address die IP eingetragen ist

Minimum-ConfigFile:


munin.conf

dbdir /var/lib/munin
htmldir /var/www/munin
logdir /var/log/munin
rundir /var/run/munin
[node.foo.com]
address 10.10.10.10

4.3 Client-Konfiguration

Die an Munin angeschlossenen Clients lassen sich in 2 Gruppen unterteilen:

Linux, BSD, Solaris, AIX

Für diese Systeme gibt es die Client-Software munin-node. Somit erfolgt die Konfiguration, nach der Installation des Paketes munin-node, auf dem Client selbst.

Windows, Router und der Rest

Diese Syteme kann man derzeit nur über SNMP (Simple Network Monitoring Protocol) überwachen. Hier erfolgt die Konfiguration des Monitorings auf dem Server selbst, hier muss also ebenfalls das Paket munin-node installiert sein.

Für beide Gruppen ist die Konfiguration also prinzipiell gleich, sie unterscheiden sich nur dadurch, auf welchem System die Konfiguration durchgeführt wird.


Ablauf der Konfiguration

  1. Installation der Clientsoftware munin-node (Gruppe 1)
    Installation eines SNMP-Servers (Gruppe 2, sofern erforderlich z.B. bei Windows)
  2. Konfiguration des Clients (/etc/munin/munin-node.conf; Gruppe 1)
    • Eintragen des Hostnamen
      #host_name localhost.localdomain
      host_name munintest.foo.com
    • dem Server Zugriff auf den Client gewähren
      allow ^127.0.0.1$ #localhost
      allow ^192.168.0.1$ #IP des Munin-Servers
  3. Einbinden der Plugins
    Wie bereits weiter oben erwähnt werden die Plugins einfach über einen symbolischen Link eingebunden. Hierbei gibt es einige Besonderheiten, z.B. haben einige Plugins einen Unterstrich am Ende (port_) oder sogar 2 Unterstriche direkt im Namen (snmp__load), an diesen Stellen wird jeweils etwas erwartet.

    Bespiel:
    ln -s /usr/share/munin/plugins/port_ /etc/munin/plugins/port_ssh
    ln -s /usr/share/munin/plugins/snmp__load /etc/munin/plugins/snmp_hostname.domain-des-snmp-hosts_load


    weitere Plugins: http://munin.projects.linpro.no/wiki/PluginCat
  4. Um sicherzustellen das alle Änderungen übernommen werden:
    /etc/init.d/munin-node restart
  5. Einbinden des Clients in die Überwachung:
    /etc/munin/munin.conf
    [host.domain]
    address IP oder Hostname
    (Hostname welcher in der /etc/hosts des Servers eingetragen ist)

Nach dem nächsten Start des Cronjobs sollte nun auch der neue Client erscheinen.


5. Fehlersuche


Logfiles des Servers:

  • munin-node.log
  • munin-graph.log
  • munin-html.log


Logfiles des Clients:

  • munin-node.log


Probleme mit Plugins:
Die Hauptursache dafür, dass ein Plugin einmal nicht funktioniert, ist dass es eine Bibliothek verwendet, die nicht auf dem System installiert ist. Die Fehlerursache lässt sich leicht mit folgenenden Befehlen herausfinden (benötigt root-Rechte und man sollte sich im Verzeichnis /etc/munin/plugins befinden):

munin-run plugin
munin-run plugin config


6. Funktionsweise des RRD-Tools


Das von Tobias Oetiker entwickelte RRD-Tool stellt mittlerweile den Quasi-Standard für die Speicherung von Monitoringdaten dar. Es legt seine Daten in so genannten Round-Robin-Datenbanken (RRD) ab, die dann von diversen Frontends wie Munin, Orca oder Cacti genutzt werden.

Die Funktionsweise eines Round-Robin-Archivs (RRA) stellt man sich am besten wie folgt vor:

Round Robin Funktionsweise

Im Round-Robin-Archiv liegen die erfassten Messwerte auf einer begrenzten Anzahl von Speicherplätzen, beginnend um 0 Uhr und dann im Uhrzeigersinn bis zum aktuellen Wert von 3,1 um 0:15 Uhr (Zeiger). Da der nächste Messwert 0:20 Uhr aber nicht mehr ins Archiv passt, wird der Wert von 0 Uhr überschrieben.

Wäre man nur an den Daten der letzten paar Minuten interessiert, wäre dies kein Problem, aber auch hierfür gibt es eine Lösung ohne dass man riesige Datenmengen speichern muss. Die Lösung heißt Unschärfe, welche über lange Zeiträume akzeptabel ist. Das RRD-Tool legt hierzu weitere Archive an, welche die Durchnittswerte (oder Min/Max-werte speichert). Sind diese Archive erst einmal in einer RRD angelegt, speichert das RRD-Tool kontinuierlich die entsprechenden Messwerte ab.

Der sich daraus ergebende Vorteil ist eine schnelle Datenbank mit fester Größe.


7. Links


Verfasser


Letzte Aktualisierung 22.06.2006 von HazardEvil