Munin: Unterschied zwischen den Versionen
K Textersetzung - „== Syntax ==“ durch „== Aufruf ==“ |
|||
(37 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
''' | '''Munin''' - Kurzbeschreibung | ||
== Beschreibung == | == Beschreibung == | ||
Die [[freie Software]] '''Munin''' ist ein Werkzeug zur [[Service-Monitoring|Überwachung]] von Rechnern in einem [[Rechnernetz]]werk mit Status- und Prozess-Visualisierung. Ein zentraler Rechner, der sogenannte „Master“, sammelt Leistungsdaten von im Netzwerk verteilten Computern, den „Nodes“, speichert diese und stellt die Daten mittels Webschnittstelle graphisch dar. Die Speicherung der Messwerte geschieht mit Hilfe von [[RRDtool]]. | Die [[freie Software]] '''Munin''' ist ein Werkzeug zur [[Service-Monitoring|Überwachung]] von Rechnern in einem [[Rechnernetz]]werk mit Status- und Prozess-Visualisierung. Ein zentraler Rechner, der sogenannte „Master“, sammelt Leistungsdaten von im Netzwerk verteilten Computern, den „Nodes“, speichert diese und stellt die Daten mittels Webschnittstelle graphisch dar. Die Speicherung der Messwerte geschieht mit Hilfe von [[RRDtool]]. | ||
Zeile 59: | Zeile 13: | ||
|Website = [https://munin-monitoring.org/ munin-monitoring.org/] | |Website = [https://munin-monitoring.org/ munin-monitoring.org/] | ||
[[Bild(./munin_logo.png, align=left)]] | |||
[http://munin-monitoring.org/ Munin] {en} ist eine umfassende und sehr einfach zu bedienende Rechner-Überwachungssoftware. Verschiedene Informationen wie die Prozessorauslastung, Festplattenbelegungen oder auch Zugriffe auf Serverdienste eines oder mehrerer Rechner werden permanent gesammelt und können über eine Weboberfläche betrachtet werden. | |||
Munin selber ist als Master/Client-Anwendung aufgebaut. Der Master-Rechner kann den "Munin-Node" auf weiteren Rechnern im Netzwerk abfragen und so diese Informationen mit anzeigen. Munin eignet sich daher für die Überwachung eines einzigen Rechners wie auch für die Überwachung eines ganzen Rechnerparks. Ein Beispiel einer Munin-Installation zur Überwachung eines ganzen Rechnerfuhrparks findet man [http://munin.ping.uio.no/ hier] {en} . | |||
Alternativen zu Munin sind [http://www.nagios.org Nagios] {en} und [https://www.icinga.org/ Icinga] {en}. | |||
== Plugins == | == Plugins == | ||
Für Munin gibt es eine Reihe von clientseitigen Plugins, die es möglich machen, verschiedene Dienste eines Servers (z. B. [[Datenbank]]en, [[Hauptprozessor|CPU]]-Last, [[Mail Transfer Agent|Mails]], Sensoren, [[Netzwerk]] etc.) zu überwachen. Diese Plugins werden von einem [[Daemon]] gestartet, der Anfragen des Munin-Masters über eine Netzwerkverbindung entgegennimmt. Während der Daemon mit privilegierten Rechten ([[Root-Account|root]]) läuft, sorgt die Konfiguration dafür dass die Plugins mit eingeschränkten Rechten ausgeführt werden. Die Entwicklung eigener Plugins ist mit grundlegenden Programmier-Kenntnissen möglich. Mit ''MuninExchange'' existiert eine Plattform zum Austausch der von Anwendern entwickelten Plugins. Ebenfalls existiert eine Schnittstelle zu [[Nagios]], einer alarmorientierten Überwachungs- und Monitorlösung. | Für Munin gibt es eine Reihe von clientseitigen Plugins, die es möglich machen, verschiedene Dienste eines Servers (z. B. [[Datenbank]]en, [[Hauptprozessor|CPU]]-Last, [[Mail Transfer Agent|Mails]], Sensoren, [[Netzwerk]] etc.) zu überwachen. Diese Plugins werden von einem [[Daemon]] gestartet, der Anfragen des Munin-Masters über eine Netzwerkverbindung entgegennimmt. Während der Daemon mit privilegierten Rechten ([[Root-Account|root]]) läuft, sorgt die Konfiguration dafür dass die Plugins mit eingeschränkten Rechten ausgeführt werden. Die Entwicklung eigener Plugins ist mit grundlegenden Programmier-Kenntnissen möglich. Mit ''MuninExchange'' existiert eine Plattform zum Austausch der von Anwendern entwickelten Plugins. Ebenfalls existiert eine Schnittstelle zu [[Nagios]], einer alarmorientierten Überwachungs- und Monitorlösung. | ||
== Unterstützte Plattformen == | == Unterstützte Plattformen == | ||
Munin ist plattformübergreifend in [[Perl (Programmiersprache)|Perl]] geschrieben, es werden daher alle gängigen Unix-/Linux Plattformen unterstützt. Die Installation ist jedoch auch auf nicht unterstützten Systemen möglich, die Installation von Perl vorausgesetzt. Daneben existiert eine Portierung für MS-Windows, sowie für eingebettete Systeme (wie bspw. [[OpenWrt]]). Munin-Plugins können in beliebigen [[Programmiersprache|Sprachen]] programmiert sein. Darüber hinaus ist es möglich, Abfragen per [[SNMP]] von beliebigen SNMP-fähigen Geräten (z. B. [[Switch (Computertechnik)|Switches]], WLAN-Access-Points, Thermometer) durchzuführen, womit die Notwendigkeit der Installation eines Munin-Plugins entfällt. | Munin ist plattformübergreifend in [[Perl (Programmiersprache)|Perl]] geschrieben, es werden daher alle gängigen Unix-/Linux Plattformen unterstützt. Die Installation ist jedoch auch auf nicht unterstützten Systemen möglich, die Installation von Perl vorausgesetzt. Daneben existiert eine Portierung für MS-Windows, sowie für eingebettete Systeme (wie bspw. [[OpenWrt]]). Munin-Plugins können in beliebigen [[Programmiersprache|Sprachen]] programmiert sein. Darüber hinaus ist es möglich, Abfragen per [[SNMP]] von beliebigen SNMP-fähigen Geräten (z. B. [[Switch (Computertechnik)|Switches]], WLAN-Access-Points, Thermometer) durchzuführen, womit die Notwendigkeit der Installation eines Munin-Plugins entfällt. | ||
== Funktionsweise == | == Funktionsweise == | ||
Zeile 73: | Zeile 34: | ||
Die so gesammelten Daten werden in ein [[RRD]]-Archiv gespeist, durch Munin aufbereitet und auf dem Webinterface dargestellt. An den [[Webserver]] werden keine besonderen Ansprüche gestellt, da Munin die Seiten generiert und der Webserver nur statische Seiten ausliefern muss. Allerdings unterstützt Munin bei der Einrichtung eines Passwortschutzes vor der Abfrage der Daten sowie beim Caching der Graphen im Webserver selbst. | Die so gesammelten Daten werden in ein [[RRD]]-Archiv gespeist, durch Munin aufbereitet und auf dem Webinterface dargestellt. An den [[Webserver]] werden keine besonderen Ansprüche gestellt, da Munin die Seiten generiert und der Webserver nur statische Seiten ausliefern muss. Allerdings unterstützt Munin bei der Einrichtung eines Passwortschutzes vor der Abfrage der Daten sowie beim Caching der Graphen im Webserver selbst. | ||
== | == Installation == | ||
[[Bild(./munin.png, align=right)]] | |||
Munin kann aus den Paketquellen installiert werden. Dazu müssen je nach Bedarf die Pakete | |||
* '''munin''' (''universe'', [2]) | |||
* '''munin-node''' (''universe'') | |||
installiert [1] werden. Je nach Einsatz sollte nur '''munin''' bzw. '''munin-node''' installiert werden. '''munin-node''' sammelt nur die Daten, die dann von '''munin''' abgerufen und über einen Webserver dargestellt werden. | |||
== Weblinks == | Bei der Installation von '''munin''' ist zu beachten, dass ein [:Serverdienste:Webserver] auf dem Rechner bereits eingerichtet sein sollte, damit die Informationen auch abgerufen werden können. Ebenso muss der [:Cron:Cron-Daemon] installiert sein, damit '''munin''' auch die Serverstatistiken erstellt (Der Master und der Client erstellen dazu in /etc/cron.d/ je einen Cron-Job). Anschließend kann man die Statistiken unter der Adresse http:/''''''/''<Servername oder -IP>''/munin/ abrufen. | ||
== Aufruf == | |||
=== Optionen === | |||
=== Parameter === | |||
=== Umgebung === | |||
=== Rückgabewert === | |||
== Anwendung == | |||
=== Problembehebung === | |||
== Konfiguration == | |||
=== Dateien === | |||
<noinclude> | |||
== Anhang == | |||
=== Siehe auch === | |||
{{Special:PrefixIndex/{{BASEPAGENAME}}}} | |||
==== Dokumentation ==== | |||
===== Man-Page ===== | |||
===== Info-Pages ===== | |||
==== Links ==== | |||
===== Projekt ===== | |||
===== Weblinks ===== | |||
# https://wiki.ubuntuusers.de/Munin/ | |||
# https://de.wikipedia.org/wiki/Munin_(Software) | # https://de.wikipedia.org/wiki/Munin_(Software) | ||
# [http://munin-monitoring.org/ Offizielle Webpräsenz] | |||
# Plugin-Verzeichnis [https://github.com/munin-monitoring/contrib/ MuninExchange auf github] | |||
= TMP2 = | |||
== Munin steuern == | |||
Wie alle anderen Dienste bringt Munin Systemd-Service-Units mit. | |||
{{{#!vorlage Befehl | |||
# Allgemein | |||
sudo systemctl {status|start|stop|restart} munin.service | |||
# Beispiel | |||
sudo systemctl status munin.service | |||
}}} | |||
* ''"start"'' - Startet den Dienst | |||
* ''"stop"'' - Stoppt den Dienst | |||
* ''"restart"'' - Startet den Dienst neu, bestehende Verbindungen auf den Server werden gekappt | |||
Mehr dazu im Wiki unter [:Dienste:]. | |||
== Konfiguration == | |||
Munin und Munin-Node können nun getrennt voneinander eingerichtet werden. Die Konfiguration erfolgt jeweils über eine Textdatei, die mit einem beliebigen Texteditor sowie Root-Rechten bearbeitet werden kann [4]. | |||
=== Munin === | |||
Munin ruft die Informationen der einzelnen Nodes ab und stellt die gewonnenen Informationen über einen Webserver dar. Die Konfiguration erfolgt über die Datei '''/etc/munin/munin.conf'''. | |||
==== Anderes Webverzeichnis ==== | |||
Munin benutzt in Ubuntu 18.04 das Datenverzeichnis per default in '''/var/cache/munin/www/'''. Hier reicht ein symlink in '''/var/www/''', wenn man das Verzeichnis dort belassen und die conf nicht anpassen möchte (zumindest bei Verwendung eines alternativen www-servers wie lighttpd): | |||
{{{#!vorlage Befehl | |||
cd /var/www/ | |||
sudo ln -s /var/cache/munin/www/ munin | |||
}}} | |||
Sollte man dieses Verzeichnis nicht benutzen wollen, so kann man dies in der '''munin.conf''' ändern. | |||
{{{ | |||
# The next three variables specifies where the location of the RRD | |||
# databases, the HTML output, and the logs, severally. They all | |||
# must be writable by the user running munin-cron. | |||
dbdir /var/lib/munin | |||
htmldir /var/www/munin | |||
logdir /var/log/munin | |||
rundir /var/run/munin | |||
}}} | |||
Man sollte nicht vergessen das neue Verzeichnis selber zu erstellen und '''munin''' die Rechte mittels | |||
{{{#!vorlage Befehl | |||
chown munin:munin /var/www/domain/example.org/munin | |||
}}} | |||
zu übergeben. | |||
==== Hosts ==== | |||
In der Standardeinstellung wird nur der ''"localhost"'', also der eigene Rechner von munin abgefragt. | |||
{{{# a simple host tree | |||
[localhost.localdomain] | |||
address 127.0.0.1 | |||
use_node_name yes | |||
}}} | |||
Hier kann man jedoch problemlos weitere Munin-Nodes hinzufügen. Also beispielsweise einfach | |||
{{{[webserver.beispiel] | |||
address 192.168.0.10 | |||
[sqlserver.beispiel] | |||
address 192.168.0.11 | |||
}}} | |||
in die Konfigurationsdatei einfügen. | |||
==== Warnungen verschicken ==== | |||
Munin kann beim Überschreiten festgelegter Werte automatisch Warnungen verschicken. So wird man als Administrator rechtzeitig gewarnt, wenn beispielsweise Plattenplatz knapp wird. Dazu muss in der '''munin.conf''' zuerst der Empfänger mittels der Zeilen | |||
{{{# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime | |||
# something changes (OK -> WARNING, CRITICAL -> OK, etc) | |||
contacts me | |||
contact.me.command mail -s "Munin notification ${var:host}" user@example.com | |||
contact.me.always_send warning critical | |||
}}} | |||
bestimmt werden. Die E-Mailadresse ist hier anzupassen. Voraussetzung für den Versand solcher Emails ist, dass ein MTA wie beispielsweise [:Postfix/] installiert und konfiguriert ist. Anschliessend kann man die kritischen Werte definieren, bei denen die Warnung abgeschickt werden soll. Dies geschieht bei jedem einzelnen Host in der Art | |||
{{{[localhost.localdomain] | |||
address 127.0.0.1 | |||
use_node_name yes | |||
<plugin>.<feldname>.{critical,warning} <wert> | |||
}}} | |||
Hierbei sind für die Platzhalter zu ersetzen: | |||
* ''"<plugin>"'' - Den Namen des Plugins bekommt man am einfachsten über die Url des Graphen. Am Ende der Url findet man den Namen wie z. B. beim Plugin zur Festplattenbelegung ".../localhost.localdomain-'''df'''.html". Das ''"df"'' wäre in diesem Fall der Pluginname. | |||
* ''"<feldname>"'' - Die Feldnamen erfährt man wiederum, wenn man sich einen Graphen im Detail ansieht. Auf diesen Seiten sind am Ende die Feldnamen unter der Bezeichnung ''"Internal name"'' aufgeführt. | |||
* ''"{critical,warning}"'' - Diese beiden Optionen sind frei wählbar und bestimmen ob eine ''"Warnung"'' oder eine ''"Kritische"'' Warnmeldung verschickt wird. | |||
* ''"<wert>"'' - Dieser Wert ist frei wählbar und sollte entsprechend dem Wert gesetzt werden, ab dem die Warnung verschickt werden soll. | |||
Letztendlich sieht dann ein Eintrag beispielsweise so aus: | |||
{{{[localhost.localdomain] | |||
address 127.0.0.1 | |||
use_node_name yes | |||
df._dev_evms_hda2.warning 70 | |||
df._dev_evms_hda2.critical 95 | |||
df._dev_mapper_hda5.warning 70 | |||
df._dev_mapper_hda5.critical 70 | |||
}}} | |||
=== Munin-Node === | |||
Der Munin-Node sammelt Daten über das System. In der Konfigurationsdatei '''/etc/munin/munin-node.conf''' des Munin-Nodes wiederum gibt es auch nicht sehr viel einzustellen. Die wichtigste Option ist sicherlich die Möglichkeit, dass der Node von einem anderen Munin-Client abgefragt wird. Die Standardeinstellung limitiert die Abfrage auf den ''"localhost"'', weitere Nodes müssen so wie beispielsweise hier | |||
{{{# 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\.5$ | |||
}}} | |||
hinzugefügt werden. | |||
==== Weitere Plugins ==== | |||
Von Haus aus sind zahlreiche Plugins aktiviert. Im Verzeichnis '''/usr/share/munin/plugins''' findet man noch weitere Module, die man bei Bedarf hinzufügen kann. Prinzipiell geschieht dies durch das Setzen eines Links in das Verzeichnis '''/etc/munin/plugins/'''. Alle Plugins, die dort verlinkt sind, werden von Munin-Node beachtet. | |||
===== Autoconf-Plugins ===== | |||
Die meisten Plugins konfigurieren sich selber. Über den Befehl [3] | |||
{{{#!vorlage Befehl | |||
./<plugin> autoconf | |||
}}} | |||
{{{yes | |||
}}} | |||
kann man überprüfen, ob das Modul ''"autoconf"'' beherrscht, also nicht konfiguriert werden muss. Ist die Antwort ''"yes"'', so kann das Modul ohne weitere Probleme aktiviert werden. Dazu später mehr. | |||
===== Wildcard-Plugins ===== | |||
Wildcard Plugins erkennt man daran, dass sie einen Unterstrich ''"_"'' am Ende des Dateinamens wie '''if_''' oder '''sensors_''' tragen. Diese Plugins können mehrere Geräte überwachen und benutzen die Angabe nach dem Unterstrich als Variable. Über die Option ''"suggest"'' bekommt man Informationen zu den Möglichkeiten. | |||
{{{#!vorlage Befehl | |||
# Allgemein | |||
./<plugin>_ suggest | |||
# Beispiel | |||
./sensors_ suggest | |||
}}} | |||
{{{fan | |||
volt | |||
temp | |||
}}} | |||
===== Plugin testen ===== | |||
Bevor man ein Plugin aktiviert, sollte man es kurz testen. Dazu gibt es das Kommando ``munin-run``. Dieses führt das Plugin aus und zeigt die Ergebnisse in einem Terminal an. | |||
{{{#!vorlage Befehl | |||
# Allgemein | |||
sudo munin-run <plugin> | |||
# Beispiel | |||
sudo munin-run df | |||
}}} | |||
{{{_dev_evms_hda2.value 50 | |||
varrun_var_run.value 1 | |||
varlock_var_lock.value 1 | |||
procbususb.value 1 | |||
udev_dev.value 1 | |||
devshm_dev_shm.value 0 | |||
lrm_lib_modules_2_6_20_16_generic_volatile.value 11 | |||
_dev_mapper_hda1.value 57 | |||
_dev_mapper_hda5.value 78 | |||
}}} | |||
So kann man frühzeitig erkennen, ob das Plugin funktioniert und ob Daten ausgegeben werden. | |||
===== Plugin aktivieren ===== | |||
Wie schon gesagt müssen die Plugins aus '''/usr/share/munin/plugins''' nur in '''/etc/munin/plugins/''' verlinkt werden um aktiviert zu werden. Dies geschieht in einem Terminal mittels des Befehls [3] | |||
{{{#!vorlage Befehl | |||
# Normales Plugin | |||
sudo ln -s /usr/share/munin/plugins/<modul> /etc/munin/plugins/ | |||
# Wildcard-Plugin | |||
sudo ln -s /usr/share/munin/plugins/<modul>_ /etc/munin/plugins/<modul>_<ausgabe> | |||
}}} | |||
Nachdem man ein Plugin aktiviert hat, muss man den Munin-Node [#Steuerung neu starten], damit das Plugin auch berücksichtigt wird. | |||
===== Beispiel 1: Hardwaredaten ===== | |||
Munin kann die Daten, die die Programme [:Lm_sensors:Lm sensors] sowie [:hddtemp:] liefern, einbinden. Sind die Programme bei der Installation von Munin-Node bereits installiert, so wird dies meist erkannt und das Plugin aktiviert. Möchte man dies nachholen, so müssen die entsprechenden Programme installiert und dann die Plugins mittels | |||
{{{#!vorlage Befehl | |||
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan | |||
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt | |||
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp | |||
}}} | |||
aktiviert werden. | |||
===== Beispiel 2: Weitere Netzwerkschnittstelle ===== | |||
In den Standardeinstellungen werden nur die Netzwerkschnittstellen ''"eth0"'' und ''"eth1"'' abgefragt. Besitzt der Rechner eine Anbindung über WLAN oder nutzt eine Einwahlleitung, so kann man diese über | |||
{{{#!vorlage Befehl | |||
# Allgemein | |||
sudo ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/if_<schnittstelle> | |||
sudo ln -s /usr/share/munin/plugins/if_err_ /etc/munin/plugins/if_err_<schnittstelle> | |||
# Beispiel | |||
sudo ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/if_ppp0 | |||
sudo ln -s /usr/share/munin/plugins/if_err_ /etc/munin/plugins/if_err_ppp0 | |||
}}} | |||
überwachen lassen [3]. | |||
===== Beispiel 3: Statistiken des Apache Webservers ===== | |||
Auch verschiedene Serverdienste lassen sich abfragen. So z. B. auch der Webserver [:Apache/]. Dieser muss jedoch noch so konfiguriert werden, dass er Informationen über seinen Zustand bereitstellt. Dies geschieht in der Konfigurationsdatei '''/etc/apache2/mods-available/status.conf'''. Hier muss noch ''"ExtendedStatus On"'' eingetragen [4] werden, so dass die Konfiguration am Ende so | |||
{{{<IfModule mod_status.c> | |||
# | |||
# Allow server status reports generated by mod_status, | |||
# with the URL of http://servername/server-status | |||
# Uncomment and change the ".example.com" to allow | |||
# access from other hosts. | |||
# | |||
ExtendedStatus On | |||
<Location /server-status> | |||
SetHandler server-status | |||
Order deny,allow | |||
Deny from all | |||
Allow from localhost | |||
# Eventuell notwendig: Allow from <öffentliche IP-Addresse des Servers> | |||
</Location> | |||
</IfModule> | |||
}}} | |||
aussieht. Eventuell muss das status-Modul noch aktiviert werden: | |||
{{{#!vorlage Befehl | |||
sudo a2enmod status | |||
}}} | |||
Anschließend muss Apache [:Apache/neu gestartet] werden. Nun kann man die Munin-Plugins für Apache aktivieren | |||
{{{#!vorlage Befehl | |||
sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/ | |||
sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/ | |||
sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/ | |||
}}} | |||
und Munin zeigt die Zugriffszahlen des Apache Servers an. | |||
Eventuell bleiben die Graphen für Apache aber auch leer. In diesem Fall sollte die Verfügbarkeit von LWP (Library for WWW in Perl) mittels | |||
{{{#!vorlage Befehl | |||
sudo apt-get install libwww-perl | |||
}}} | |||
sichergestellt werden. | |||
[[Kategorie: | [[Kategorie:Monitoring]] | ||
</noinclude> |
Aktuelle Version vom 12. November 2024, 18:48 Uhr
Munin - Kurzbeschreibung
Beschreibung
Die freie Software Munin ist ein Werkzeug zur Überwachung von Rechnern in einem Rechnernetzwerk mit Status- und Prozess-Visualisierung. Ein zentraler Rechner, der sogenannte „Master“, sammelt Leistungsdaten von im Netzwerk verteilten Computern, den „Nodes“, speichert diese und stellt die Daten mittels Webschnittstelle graphisch dar. Die Speicherung der Messwerte geschieht mit Hilfe von RRDtool.
Auf diese Weise wird eine Visualisierung der Leistungsdaten erzeugt, die einen Vergleich der aktuellen Daten mit den Daten anderer Rechner und Daten aus der Vergangenheit (im Regelfall maximal für etwa 400 Tage) gestattet. Dabei nimmt die Datengenauigkeit der historischen Werte mit ihrem Alter ab, so dass die verwendete Datenbank eine konstante Größe besitzt. Wegen dieses Mechanismus liegen die Daten des letzten Tages mit einer Auflösung von 5 Minuten vor, die Daten der letzten Woche mit einer Auflösung von 30 Minuten, die Daten des letzten Monats mit einer Auflösung von 2 Stunden und die Daten des letzten Jahres mit einer Auflösung von einem Tag.
|Name = Munin |Screenshot = Datei:Munin.png |Betriebssystem = Unix-Derivate |Kategorie = Monitoring |Lizenz = GPL (Freie Software) |Website = munin-monitoring.org/
Bild(./munin_logo.png, align=left)
Munin {en} ist eine umfassende und sehr einfach zu bedienende Rechner-Überwachungssoftware. Verschiedene Informationen wie die Prozessorauslastung, Festplattenbelegungen oder auch Zugriffe auf Serverdienste eines oder mehrerer Rechner werden permanent gesammelt und können über eine Weboberfläche betrachtet werden.
Munin selber ist als Master/Client-Anwendung aufgebaut. Der Master-Rechner kann den "Munin-Node" auf weiteren Rechnern im Netzwerk abfragen und so diese Informationen mit anzeigen. Munin eignet sich daher für die Überwachung eines einzigen Rechners wie auch für die Überwachung eines ganzen Rechnerparks. Ein Beispiel einer Munin-Installation zur Überwachung eines ganzen Rechnerfuhrparks findet man hier {en} .
Alternativen zu Munin sind Nagios {en} und Icinga {en}.
Plugins
Für Munin gibt es eine Reihe von clientseitigen Plugins, die es möglich machen, verschiedene Dienste eines Servers (z. B. Datenbanken, CPU-Last, Mails, Sensoren, Netzwerk etc.) zu überwachen. Diese Plugins werden von einem Daemon gestartet, der Anfragen des Munin-Masters über eine Netzwerkverbindung entgegennimmt. Während der Daemon mit privilegierten Rechten (root) läuft, sorgt die Konfiguration dafür dass die Plugins mit eingeschränkten Rechten ausgeführt werden. Die Entwicklung eigener Plugins ist mit grundlegenden Programmier-Kenntnissen möglich. Mit MuninExchange existiert eine Plattform zum Austausch der von Anwendern entwickelten Plugins. Ebenfalls existiert eine Schnittstelle zu Nagios, einer alarmorientierten Überwachungs- und Monitorlösung.
Unterstützte Plattformen
Munin ist plattformübergreifend in Perl geschrieben, es werden daher alle gängigen Unix-/Linux Plattformen unterstützt. Die Installation ist jedoch auch auf nicht unterstützten Systemen möglich, die Installation von Perl vorausgesetzt. Daneben existiert eine Portierung für MS-Windows, sowie für eingebettete Systeme (wie bspw. OpenWrt). Munin-Plugins können in beliebigen Sprachen programmiert sein. Darüber hinaus ist es möglich, Abfragen per SNMP von beliebigen SNMP-fähigen Geräten (z. B. Switches, WLAN-Access-Points, Thermometer) durchzuführen, womit die Notwendigkeit der Installation eines Munin-Plugins entfällt.
Funktionsweise
Munin arbeitet mit einem Master-Rechner und beliebig vielen Nodes. Wenn nicht nur ein einziger lokaler Server überwacht werden soll, werden auf den zusätzlichen Computern sogenannte Munin-Nodes (die Clientsoftware) eingerichtet und vom Munin-Master regelmäßig abgefragt. Diese Intervalle werden durch Cronjobs gesteuert, welche bei der Installation von Munin automatisch angelegt werden.
Die so gesammelten Daten werden in ein RRD-Archiv gespeist, durch Munin aufbereitet und auf dem Webinterface dargestellt. An den Webserver werden keine besonderen Ansprüche gestellt, da Munin die Seiten generiert und der Webserver nur statische Seiten ausliefern muss. Allerdings unterstützt Munin bei der Einrichtung eines Passwortschutzes vor der Abfrage der Daten sowie beim Caching der Graphen im Webserver selbst.
Installation
Bild(./munin.png, align=right)
Munin kann aus den Paketquellen installiert werden. Dazu müssen je nach Bedarf die Pakete
- munin (universe, [2])
- munin-node (universe)
installiert [1] werden. Je nach Einsatz sollte nur munin bzw. munin-node installiert werden. munin-node sammelt nur die Daten, die dann von munin abgerufen und über einen Webserver dargestellt werden.
Bei der Installation von munin' ist zu beachten, dass ein [:Serverdienste:Webserver] auf dem Rechner bereits eingerichtet sein sollte, damit die Informationen auch abgerufen werden können. Ebenso muss der [:Cron:Cron-Daemon] installiert sein, damit munin auch die Serverstatistiken erstellt (Der Master und der Client erstellen dazu in /etc/cron.d/ je einen Cron-Job). Anschließend kann man die Statistiken unter der Adresse http:/'/<Servername oder -IP>/munin/ abrufen.
Aufruf
Optionen
Parameter
Umgebung
Rückgabewert
Anwendung
Problembehebung
Konfiguration
Dateien
Anhang
Siehe auch
Dokumentation
Man-Page
Info-Pages
Links
Projekt
Weblinks
- https://wiki.ubuntuusers.de/Munin/
- https://de.wikipedia.org/wiki/Munin_(Software)
- Offizielle Webpräsenz
- Plugin-Verzeichnis MuninExchange auf github
TMP2
Munin steuern
Wie alle anderen Dienste bringt Munin Systemd-Service-Units mit.
start
* "start" - Startet den Dienst * "stop" - Stoppt den Dienst * "restart" - Startet den Dienst neu, bestehende Verbindungen auf den Server werden gekappt
Mehr dazu im Wiki unter [:Dienste:].
Konfiguration
Munin und Munin-Node können nun getrennt voneinander eingerichtet werden. Die Konfiguration erfolgt jeweils über eine Textdatei, die mit einem beliebigen Texteditor sowie Root-Rechten bearbeitet werden kann [4].
Munin
Munin ruft die Informationen der einzelnen Nodes ab und stellt die gewonnenen Informationen über einen Webserver dar. Die Konfiguration erfolgt über die Datei /etc/munin/munin.conf.
Anderes Webverzeichnis
Munin benutzt in Ubuntu 18.04 das Datenverzeichnis per default in /var/cache/munin/www/. Hier reicht ein symlink in /var/www/, wenn man das Verzeichnis dort belassen und die conf nicht anpassen möchte (zumindest bei Verwendung eines alternativen www-servers wie lighttpd): {{{#!vorlage Befehl cd /var/www/ sudo ln -s /var/cache/munin/www/ munin }}}
Sollte man dieses Verzeichnis nicht benutzen wollen, so kann man dies in der munin.conf ändern. {{{
- The next three variables specifies where the location of the RRD
- databases, the HTML output, and the logs, severally. They all
- must be writable by the user running munin-cron.
dbdir /var/lib/munin htmldir /var/www/munin logdir /var/log/munin rundir /var/run/munin }}}
Man sollte nicht vergessen das neue Verzeichnis selber zu erstellen und munin die Rechte mittels
{{{#!vorlage Befehl chown munin:munin /var/www/domain/example.org/munin }}}
zu übergeben.
Hosts
In der Standardeinstellung wird nur der "localhost", also der eigene Rechner von munin abgefragt.
{{{# a simple host tree
[localhost.localdomain]
address 127.0.0.1 use_node_name yes
}}}
Hier kann man jedoch problemlos weitere Munin-Nodes hinzufügen. Also beispielsweise einfach
{{{[webserver.beispiel]
address 192.168.0.10
[sqlserver.beispiel]
address 192.168.0.11
}}} in die Konfigurationsdatei einfügen.
Warnungen verschicken
Munin kann beim Überschreiten festgelegter Werte automatisch Warnungen verschicken. So wird man als Administrator rechtzeitig gewarnt, wenn beispielsweise Plattenplatz knapp wird. Dazu muss in der munin.conf zuerst der Empfänger mittels der Zeilen
{{{# Drop somejuser@fnord.comm and anotheruser@blibb.comm an email everytime
- something changes (OK -> WARNING, CRITICAL -> OK, etc)
contacts me contact.me.command mail -s "Munin notification ${var:host}" user@example.com contact.me.always_send warning critical }}} bestimmt werden. Die E-Mailadresse ist hier anzupassen. Voraussetzung für den Versand solcher Emails ist, dass ein MTA wie beispielsweise [:Postfix/] installiert und konfiguriert ist. Anschliessend kann man die kritischen Werte definieren, bei denen die Warnung abgeschickt werden soll. Dies geschieht bei jedem einzelnen Host in der Art
{{{[localhost.localdomain]
address 127.0.0.1 use_node_name yes <plugin>.<feldname>.{critical,warning} <wert>
}}} Hierbei sind für die Platzhalter zu ersetzen:
* "<plugin>" - Den Namen des Plugins bekommt man am einfachsten über die Url des Graphen. Am Ende der Url findet man den Namen wie z. B. beim Plugin zur Festplattenbelegung ".../localhost.localdomain-df.html". Das "df" wäre in diesem Fall der Pluginname. * "<feldname>" - Die Feldnamen erfährt man wiederum, wenn man sich einen Graphen im Detail ansieht. Auf diesen Seiten sind am Ende die Feldnamen unter der Bezeichnung "Internal name" aufgeführt. * "{critical,warning}" - Diese beiden Optionen sind frei wählbar und bestimmen ob eine "Warnung" oder eine "Kritische" Warnmeldung verschickt wird. * "<wert>" - Dieser Wert ist frei wählbar und sollte entsprechend dem Wert gesetzt werden, ab dem die Warnung verschickt werden soll.
Letztendlich sieht dann ein Eintrag beispielsweise so aus:
{{{[localhost.localdomain]
address 127.0.0.1 use_node_name yes df._dev_evms_hda2.warning 70 df._dev_evms_hda2.critical 95 df._dev_mapper_hda5.warning 70 df._dev_mapper_hda5.critical 70
}}}
Munin-Node
Der Munin-Node sammelt Daten über das System. In der Konfigurationsdatei /etc/munin/munin-node.conf des Munin-Nodes wiederum gibt es auch nicht sehr viel einzustellen. Die wichtigste Option ist sicherlich die Möglichkeit, dass der Node von einem anderen Munin-Client abgefragt wird. Die Standardeinstellung limitiert die Abfrage auf den "localhost", weitere Nodes müssen so wie beispielsweise hier
{{{# 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\.5$ }}} hinzugefügt werden.
Weitere Plugins
Von Haus aus sind zahlreiche Plugins aktiviert. Im Verzeichnis /usr/share/munin/plugins findet man noch weitere Module, die man bei Bedarf hinzufügen kann. Prinzipiell geschieht dies durch das Setzen eines Links in das Verzeichnis /etc/munin/plugins/. Alle Plugins, die dort verlinkt sind, werden von Munin-Node beachtet.
Autoconf-Plugins
Die meisten Plugins konfigurieren sich selber. Über den Befehl [3]
{{{#!vorlage Befehl
./<plugin> autoconf
}}}
{{{yes }}} kann man überprüfen, ob das Modul "autoconf" beherrscht, also nicht konfiguriert werden muss. Ist die Antwort "yes", so kann das Modul ohne weitere Probleme aktiviert werden. Dazu später mehr.
Wildcard-Plugins
Wildcard Plugins erkennt man daran, dass sie einen Unterstrich "_" am Ende des Dateinamens wie if_ oder sensors_ tragen. Diese Plugins können mehrere Geräte überwachen und benutzen die Angabe nach dem Unterstrich als Variable. Über die Option "suggest" bekommt man Informationen zu den Möglichkeiten.
{{{#!vorlage Befehl
- Allgemein
./<plugin>_ suggest
- Beispiel
./sensors_ suggest }}}
{{{fan volt temp }}}
Plugin testen
Bevor man ein Plugin aktiviert, sollte man es kurz testen. Dazu gibt es das Kommando ``munin-run``. Dieses führt das Plugin aus und zeigt die Ergebnisse in einem Terminal an.
{{{#!vorlage Befehl
- Allgemein
sudo munin-run <plugin>
- Beispiel
sudo munin-run df }}}
{{{_dev_evms_hda2.value 50 varrun_var_run.value 1 varlock_var_lock.value 1 procbususb.value 1 udev_dev.value 1 devshm_dev_shm.value 0 lrm_lib_modules_2_6_20_16_generic_volatile.value 11 _dev_mapper_hda1.value 57 _dev_mapper_hda5.value 78 }}} So kann man frühzeitig erkennen, ob das Plugin funktioniert und ob Daten ausgegeben werden.
Plugin aktivieren
Wie schon gesagt müssen die Plugins aus /usr/share/munin/plugins nur in /etc/munin/plugins/ verlinkt werden um aktiviert zu werden. Dies geschieht in einem Terminal mittels des Befehls [3]
{{{#!vorlage Befehl
- Normales Plugin
sudo ln -s /usr/share/munin/plugins/<modul> /etc/munin/plugins/
- Wildcard-Plugin
sudo ln -s /usr/share/munin/plugins/<modul>_ /etc/munin/plugins/<modul>_<ausgabe> }}} Nachdem man ein Plugin aktiviert hat, muss man den Munin-Node [#Steuerung neu starten], damit das Plugin auch berücksichtigt wird.
Beispiel 1: Hardwaredaten
Munin kann die Daten, die die Programme [:Lm_sensors:Lm sensors] sowie [:hddtemp:] liefern, einbinden. Sind die Programme bei der Installation von Munin-Node bereits installiert, so wird dies meist erkannt und das Plugin aktiviert. Möchte man dies nachholen, so müssen die entsprechenden Programme installiert und dann die Plugins mittels
{{{#!vorlage Befehl
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_fan
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_volt
sudo ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp
}}}
aktiviert werden.
Beispiel 2: Weitere Netzwerkschnittstelle
In den Standardeinstellungen werden nur die Netzwerkschnittstellen "eth0" und "eth1" abgefragt. Besitzt der Rechner eine Anbindung über WLAN oder nutzt eine Einwahlleitung, so kann man diese über
{{{#!vorlage Befehl
- Allgemein
sudo ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/if_<schnittstelle> sudo ln -s /usr/share/munin/plugins/if_err_ /etc/munin/plugins/if_err_<schnittstelle>
- Beispiel
sudo ln -s /usr/share/munin/plugins/if_ /etc/munin/plugins/if_ppp0 sudo ln -s /usr/share/munin/plugins/if_err_ /etc/munin/plugins/if_err_ppp0 }}} überwachen lassen [3].
Beispiel 3: Statistiken des Apache Webservers
Auch verschiedene Serverdienste lassen sich abfragen. So z. B. auch der Webserver [:Apache/]. Dieser muss jedoch noch so konfiguriert werden, dass er Informationen über seinen Zustand bereitstellt. Dies geschieht in der Konfigurationsdatei /etc/apache2/mods-available/status.conf. Hier muss noch "ExtendedStatus On" eingetragen [4] werden, so dass die Konfiguration am Ende so
{{{<IfModule mod_status.c>
- Allow server status reports generated by mod_status,
- with the URL of http://servername/server-status
- Uncomment and change the ".example.com" to allow
- access from other hosts.
ExtendedStatus On
<Location /server-status>
SetHandler server-status Order deny,allow Deny from all Allow from localhost # Eventuell notwendig: Allow from <öffentliche IP-Addresse des Servers>
</Location>
</IfModule> }}} aussieht. Eventuell muss das status-Modul noch aktiviert werden:
{{{#!vorlage Befehl sudo a2enmod status }}}
Anschließend muss Apache [:Apache/neu gestartet] werden. Nun kann man die Munin-Plugins für Apache aktivieren
{{{#!vorlage Befehl sudo ln -s /usr/share/munin/plugins/apache_accesses /etc/munin/plugins/ sudo ln -s /usr/share/munin/plugins/apache_processes /etc/munin/plugins/ sudo ln -s /usr/share/munin/plugins/apache_volume /etc/munin/plugins/ }}} und Munin zeigt die Zugriffszahlen des Apache Servers an.
Eventuell bleiben die Graphen für Apache aber auch leer. In diesem Fall sollte die Verfügbarkeit von LWP (Library for WWW in Perl) mittels {{{#!vorlage Befehl sudo apt-get install libwww-perl }}} sichergestellt werden.