Munin ist ein freies Werkzeug unter (GPL) Lizenz zur Überwachung von Rechnerleistung und Netzwerke, System übergreifend in Perl geschrieben. Die Ausgabe wird mit Hilfe des RRDtools über einen Webserver graphisch dargestellt.

Munin ist als Master / Node Anwendung aufgebaut, in dem der Master die Daten der Nodes (dies können verschiedene Hosts in einem Netzwerk sein) einsammelt. Dabei können Grenzwerte definiert und Warnungen via Email oder Skripte ausgeführt werden.

Munin kann von der Projektseite heruntergeladen werden, ist jedoch auch in den Quellen von vielen Linux Distibutionen entalten.



Munin installieren


Vor der Installation von Munin muss ein Webserver und der cron Daemon installiert sein. In diesem Beispiel wird Munin auf ein Debian System aus den Quellen installiert.


Programmpakete:

  • munin (Basispaket)
  • munin-node (Munin Nodes)


Plugins:

  • munin-plugins-core (Offizielle Plugins für Munin Node)
  • munin-plugins-extra (Nichtunterstützte Plugins für Munin)
  • groonga-munin-plugins (Munin Node Plugins für Groonga)
  • munin-plugins-c (in C umgeschriebene Plugins für Munin)
  • munin-plugins-java (Munin Java Plugins)
  • munin-plugins-openstack (Plugins für OpenStack basierende Systeme)




root@home:~# apt-get install munin munin-node munin-plugins-core munin-plugins-extra




Syntax:

  • /etc/init.d/munin-node [start|stop|restart|force-reload|try-restart]
  • service munin-node [start|stop|restart|force-reload|try-restart]




Nach der Installation und Dienststart kann die Ausgabe von Munin unter der Adresse „http://<servername-ip>/munin/“ aufgerufen werden. Es werden dann Graphen der Konfigurierten Nodes in (Tag, Woche, Monat, Jahr) dargestellt.


Beispielgraph: eth0



Munin einrichten


Die Programmdateien und Plugins befinden sich bei einer Installation aus den Debian Quellen im Verzeichnis „/usr/share/munin“, die Konfigurationsdateien im Verzeichnis „/etc/munin“.


Dateiübersicht:

root@home:/usr/share/munin# ls
munin-datafile2storable  munin-graph  munin-html  munin-limits  munin-storable2datafile  munin-update  plugins



root@home:/etc/munin# ls
apache.conf  munin.conf  munin-conf.d  munin-node.conf  plugin-conf.d  plugins  static  templates




In der Konfigurationsdatei „/etc/munin/munin.conf“ sollten folgende Einstellungen vorgenommen werden.

dbdir   /var/lib/munin
htmldir /srv/www/munin/
logdir /var/log/munin
rundir  /var/run/munin


In diesen Variablen wird definiert wo sich die Munin Datenbank, HTML Ausgabe und Lock/Pid Dateien befinden.



In folgenden Zeilen werden die zu überwachenden Hosts (Nodes) eingetragen.

# a simple host tree
[hostname.example.com]
    address 127.0.0.1
    use_node_name yes

# [fii.foo.com]
#       address foo
#
# [fay.foo.com]
#       address fay





In der Datei „/etc/munin/munin.conf“ können eine Menge weiterer Einstellungen, wie die Maximale Größe der Graphen oder Ausgabe Templates u.v.m. eingestellt werden.



Um die Hosts / Nodes einzurichten, muss die Datei „/etc/munin/munin-node.conf“ auf allen zu überwachenden Hosts eingerichtet werden, wie z.B. Loglevel, Ports und an welchen Host der Dienst „munin-node“ gebunden werden soll.

...
log_level 4
log_file /var/log/munin/munin-node.log
pid_file /var/run/munin/munin-node.pid
...
user root
group root
...
host 127.0.0.1
...
port 4949
...





Die Datei „/etc/munin/apache.conf“ ist die VirtualHost Datei für die Webserverausgabe und über einen symbolischen Link in der Datei „/etc/apache2/conf.d“ (,nur bis Server Version: Apache/2.2.x) verknüpft.

root@host:/etc/apache2/conf.d# l
munin -> ../../munin/apache.conf



Seit der Apache Version 2.4.x befinden sich die symbolischen Links für die Web Ausgabe in den Verzeichnissen „/etc/apache2/conf-available“ und „/etc/apache2/conf-enabled“. Siehe weitere VirtuellHosts und Aliase.




In der Datei „/etc/munin/apache.conf“ wird dann das Webverzeichnis von Munin und CGI basierende Templates oder Plugins konfiguriert. Siehe auch Apache Webserver.



Möchte man die Munin Ausgabe im Webserver nur im lokalen Netzwerk ausgeben, kann die Datei „/etc/munin/apache.conf“ wie folgt angepasst werden.

Alias /munin /srv/www/munin
...
<Directory /srv/www/munin>
        Order deny,allow
        Deny from ALL
        Allow from localhost 127.0.0.0/8 ::1
        Allow from 192.168.178
        Options None
...
...
</Directory> 


In Allow from 192.168.178 muss die eigene Lokale Netzwerkadresse eingetragen und der Webserver neu gestartet werden.



Munin Plugins


Installiert man unter Debian die Pakete „munin-plugins-core“ und / oder „munin-plugins-extra“, gibt Munin schon eine Anzahl von Graphen über das System aus. Weitere Plugins von Munin oder Drittanbieter kann man auf der Munin Seite Munin-Plugins herunterladen oder auch selbst schreiben. Bei einer Debian Installation sind die Plugins im Verzeichnis „/usr/share/munin/plugins“ abgelegt.

Aktiviert werden die gewünschten Plugins über Symbolische Links im Verzeichnis „/etc/munin/plugins“. Das heist, im Verzeichnis „/usr/share/munin/plugins“ befinden sich die Plugins, wie z.B. „netstat“, „fail2ban“, „diskstats“ und Plugins wie „if_“, „df_“, „port_“.

Die Plugins, die mit *_ enden, benötigen bei der Aktivierung noch einen Parameter, wie z.B. if_eth0 oder port_80.


Beispiele:

root@host:/etc/munin/plugins# ln -s /usr/share/munin/plugins/netstat netstat



root@host:/etc/munin/plugins# ln -s /usr/share/munin/plugins/port_ port_80





Die Konfigurationsdateien für die Plugins werden im Verzeichnis „/etc/munin/plugin-conf.d“ erstellt. Eine Beschreibung für die Konfiguration befindet sich meist in der Quelldatei des Plugins im Verzeichnis „/usr/share/munin/plugins“.

Bei einer Debian Installation ist in „/etc/munin/plugin-conf.d“ schon die Konfigurationsdatei „munin-node“ enthalten und kann angepasst werden.

...
[munin_stats]
user munin
group munin

[fail2ban]
user root

[df*]
env.exclude none unknown iso9660 squashfs udf romfs ramfs debugfs
env.warning 92
env.critical 98

[if_*]
user root
...

Beispielauszüge aus der Datei „/etc/munin/plugin-conf.d/munin-node“


Nach dem aktivieren der Plugins noch den Munin Dienst neustarten oder neuladen. Beim Aufruf im Webbrowser werden die Graphen dann Standardmäßig alle 5 - 10 min. aktualisiert.



Cloud