Monitoring mit Munin einrichten – Teil 1

Montag, 13. Februar 2017, in Application Platform, von Thomas Vogel

Monitoring mit Munin einrichten – Teil 1

Oft taucht die Frage auf, wie man eine einfache Monitoring-Lösung ohne großen Aufwand einrichten kann. Natürlich gibt es unzählige Open-Source- und kommerzielle Monitoring-Lösungen auf dem Markt, aber diese zu implementieren kann zeitaufwändig und kompliziert sein. Wenn es um eine einfache, leicht zu konfigurierende Lösung geht, ist Munin eine gute Wahl. Das Monitoring mit Munin ist in wenigen Minuten eingerichtet. Die folgende Anleitung zeigt Schritt-für-Schritt, wie man einen Monitoring-Server aufsetzt und Systeme hinzufügt, die überwacht werden sollen. Wie sich zeigen wird, ist der Aufwand, um das Monitoring mit Munin einzurichten, sehr gering.

Für diese Anleitung wurde ein ProfitBricks-Debain-8-Image verwendet. Für andere Linux-Distributionen ist das Vorgehen ähnlich.

Monitoring mit Munin

Wie funktioniert das Monitoring mit Munin?

Die vollständige Dokumentation von Munin ist unter folgender Adresse erhältlich: http://munin-monitoring.org. Hier eine Zusammenfassung:

Munin besteht aus mehreren Komponenten. Eine dieser Komponenten ist der Munin-Server. Dieser ruft überwachte Systeme mit Hilfe eines Cron-Jobs in einem festgelegten Intervall ab (in der Standardkonfiguration alle 5 Minuten). Die gesammelten Daten werden Dateisystem-basiert gespeichert – es ist keine Datenbank-Engine nötig. Historische Daten werden aggregiert, daher kann der Munin-Server Daten bis zu einem Jahr rückwirkend darstellen, bedingt durch die Aggregation allerdings mit niedrigerer Auflösung. Folgende Tools kommen dabei zur Anwendung:

  • RRDtool für die grafische Darstellung,
  • PERL für die Datenverarbeitung,
  • Apache 2, um mittels Web-Interface auf die Monitoring-Daten zugreifen zu können.

Die zweite Komponente ist der Munin-Node. Dieser muss auf jedem zu überwachenden System installiert werden. Er läuft als Service auf TCP-Port 4949. Während der Munin-Node definiert, was überwacht wird, sammelt der Munin-Server die Daten und visualisiert sie.

Munin aufsetzen

Die Installation eines Munin-Servers auf einem ProfitBricks-Cloud-Server erfordert nicht mehr als 1 Core und 1 GB RAM. Der damit verbundene Storage basiert auf einem Build des ProfitBricks-Images “Debian-8-Server”.

Nach dem ersten starten ist der Server bereit für die Installation der erforderlichen Pakete und der Basis-Konfiguration. Eine Internetverbindung (entweder direkt oder über ein Gateway) wird benötigt.

Folgende Schritte werden durchgeführt:

  • Als Root einloggen über SSH (oder Remote Console).
  • Auf aktuelle Packages prüfen und diese installieren.
  • #> apt-get update
  • #> apt-get upgrade

Das Monitoring mit Munin erfordert Apache 2, um die Daten darzustellen. Im nächsten Schritt muss das Apache-2-Package installiert werden. Wenn Sie Munin auf einem laufenden Server installieren, auf dem auch bereits ein Apache-Server läuft, können Sie diesen Schritt überspringen.

#> apt-get install apache2

Nun ist der Server bereit für die Installation von Munin:

#> apt-get install munin

Bei der Installation des Munin-Package wird auch das Munin-Node-Package installiert und alles so konfiguriert, dass Munin-Server sich selbst überwachen kann. Bei dieser Installation werden auch einige Abhängigkeitspakete mit installiert (z. B. RRD, PERL usw.).

Das ist alles, was Sie brauchen, um einen Munin-Server zum Laufen zu bringen und das Monitoring mit Munin einzurichten. Alle notwendigen Dienste werden automatisch gestartet und sind mit eingeschränktem Zugriff konfiguriert. Das Munin-Web-Interface kann man nur vom localhost aus nutzen. Da dies ggf. nicht dem gewünschten Zustand entspricht müssen einige Anpassungen an der Konfiguration durchgeführt werden..

Munin konfigurieren

Munin unterstützt das dynamische Generieren von Graphen und dynamisches Zoomen. Um das zu aktivieren, werden die Apache-Module fcgi und rewrite benötigt:

  • #> apt-get install libapache2-mod-fcgid
  • #> a2enmod rewrite
  • #> a2enmod fcgid

Nachdem die Module installiert worden sind, müssen sie noch aktiviert werden.

Den Web-Server konfigurieren

Um auf das Munin-Web-Interface über eine Remote-Verbindung zugreifen zu können, muss apache24.conf in /etc/munin angepasst werden. Das Web-Interface erreicht man dann unter der URL: http://[ip.of.the.host]/munin/.

Man kann entweder das Statement allow from in der Konfiguration anpassen, den auskommentierten Abschnitt zum Erzwingen von HTTP Authentifizierung wieder aktivieren (und dabei /etc/munin/munin-htpasswd erzeugen), oder eine Kombination aus beidem anwenden.

In meiner Konfiguration verwende ich keine IP-Einschränkung und verwende die Authentifizierung. Kommentare habe ich entfernt. Die folgende Konfiguration enthält auch die notwendige Skript-Konfigurationen für dynamisch gezoomte Graphen.

Meine Konfiguration sieht entsprechend folgendermaßen aus:

Munin-Server-Konfiguration

Die Datei htpasswd wird mit dem Befehl htpsswd erzeugt und verwaltet:

#> htpasswd -c /etc/munin/munin-htpasswd Username

Starten oder laden Sie Apache neu nach der Konfiguration:

#> /etc/init.d/apache2 reload

Damit ist die Basis-Konfiguration vollständig. Sie können nun auf das Web-Interface Ihres Monitoring-Servers zugreifen. Dabei werden Sie sehen, dass das Monitoring für den Server selbst bereits aktiviert ist mit localhost.localdomain.

Monitoring mit Munin: Startseite des Web-Interface

Firewall-Einstellungen

Der Munin-Server verbindet sich mit den zu überwachenden Clients mittels TCP über Port 4949. Ist auf den zu überwachenden Systemen eine lokale Firewall aktiviert muss der Zugriff auf diesen TCP Port vom Munin-Server erlaubt sein.

Wichtige Dateien und Verzeichnisse

  • /etc/munin/munin.conf – Konfigurationsdatei für den Munin-Server (nur auf dem Munin-Server verfügbar)
  • /etc/munin/munin-node.conf – Konfigurationsdatei für den überwachten Node (auf jedem überwachten Node benötigt)
  • /etc/munin/apache24.conf – Munin-bezogene Konfiguration für den Apache-2-Web-Server (nur auf dem Munin-Server verfügbar)
  • /etc/munin/plugins – Monitoring-Plugins für den überwachten Node (auf jedem überwachten Node benötigt)
  • /var/log/munin/ – enthält Munin-bezogene Log-Dateien
  • /var/cache/munin/www – Document-Root für das Munin-Web-Interface (nur auf dem Munin-Server)

Den Munin-Node (Client) installieren

Auf jedem überwachten Host muss das Munin-Node-Package installiert und konfiguriert sein:

#> apt-get install munin-node

Mit der Installation werden automatisch auch die empfohlenen Monitoring-Plugins basierend auf der bereits installierten Software und den laufenden Services konfiguriert.

Den Munin-Node konfigurieren

Nachdem das Munin-Node-Package installiert ist, sind nur zwei kleine Anpassungen notwendig:

  • Den Munin-Server konfigurieren, um Daten von einem zusätzlichen Node abzufragen
  • Den Munin-Node so einstellen, dass Verbindungen von Munin-Server akzeptiert werden

Einen neuen Client hinzufügen

Ein neuer Client, auf dem der Munin-Node installiert und konfiguriert sein muss, wird unter /etc/munin/munin.conf auf dem Munin-Server hinzugefügt.
Der Abschnitt, der die Client-Konfiguration enthält, sieht in einer nicht veränderten config-Datei wie folgt aus (nach der Installation überwacht der Munin-Server nur sich selbst):

Es ist nun einfach, die weiteren zu überwachenden Nodes hinzuzufügen. Darüber hinaus habe ich den localhost in LinuxNode umbenannt. Nachdem die Datei munin.conf angepasst wurde, muss der Munin-Dienst neu gestartet werden.

So sieht der Abschnitt mit der Node-Konfiguration in meiner Testumgebung aus:

Grundeinstellungen des Clients

Die einzige Einstellung, die nötig ist, besteht darin, dem Munin-Server zu erlauben, sich mit dem Munin-Node-Dienst zu verbinden. Die Standardeinstellung nach einer Installation des Munin-Nodes in /etc/munin/munin-node.conf ist auf den localhost beschränkt:

Ersetzen Sie den localhost-Eintrag ^127\.0\.0\.1$ durch einen regulären Ausdruck, der der IP-Adresse Ihres Munin-Servers entspricht.

Danach starten Sie den Munin-Node-Dienst neu:

#> /etc/init.d/munin-node restart

Fertig! Innerhalb der nächsten 5 Minuten wird der neu hinzugefügte Node im Web-Interface des Munin-Servers verfügbar sein.
Nach der Installation konfiguriert sich der Munin-Node selbstständig die Plugins, die er benötigt. Plugins kann man manuell aktivieren/deaktivieren, indem man Symlinks für die im Verzeichnis /usr/share/munin/plugins/ eines Munin-Nodes befindlichen Plugins erzeugt oder entfernt. Es werden nur die Plugins verwendet, für welche Symlinks in /etc/munin/plugins/existieren.

Nach der Installation (oder dem Entfernen) zusätzlicher Software und Services auf einem von Munin überwachten Host kann es notwendig sein, Monitoring-Support für diese hinzuzufügen (z. B. NFS, RDMBS, Mailserver usw.).

Um das möglichst einfach zu gestalten, kann man munin-node-configure verwenden:

munin-node-configure –suggest – listet alle verfügbaren Plugins auf und gibt an, ob sie tatsächlich vom Node verwendet werden und ob sie – basierend auf der installierten Software und laufenden Diensten – für das Monitoring mit Munin vorgeschlagen werden

munin-node-configure –shell – analysiert dasselbe wie –suggest, aber erzeugt ein Shell-Skript, um das Plugins-Verzeichnis entsprechend des Vorschlags zu konfigurieren

Effektiv macht munin-node-configure –shell | /bin/sh – dasselbe wie die Auto-Konfiguration nach der Installation des Munin-Node-Packages. Es wird analysiert welche Plugins auf Basis des aktuellen Systemzustandes sinvoll erscheinen und diese werden aktiviert (oder deaktiviert).

Einige Plugins benötigen zusätzliche Konfigurationen (z. B. Connection-Strings für RDMBS). Diese sind abgelegt unter /etc/munin/plugin-conf.d/. Die Munin-Dokumentation enthält weitere Informationen dazu.

Was Munin noch so kann

SNMP-Monitoring: Dazu eine Anleitung zu SNMP vom Munin-Projekt.

Hinterlasse eine Antwort

* Pflichtfeld

© 2012-2017 by ProfitBricks