Munin ist eine Monitoring-Lösung, mit der diverse Dienste und Informationen eines Server ausgelesen werden können. Es gibt aber auch Fälle, für die es keine Plugins im Netz gibt. Dann muss man sich die Plugins selbst schreiben. ### Ein Komplettbeispiel
Folgendes PHP-Skript liest eine Datei aus, in der die durchschnittliche Bewertung für den Distrochooser enthalten ist. Man kann ein Plugin prinzipiell in allen Sprachen schreiben, solange die Ausgaben für die Konfiguration (Parameter config
) und die eigentliche Werte (ohne Parameter) erfolgen.
!/usr/bin/php
if(count($argv) == 2 && $argv == 'config') {
echo "graph_title Distrochooser: Bewertung (Durchschnitt)\n";
echo "graph_vlabel Bewertung\n";
echo "graph_category Projekte\n";
echo "rating.label Bewertung\n";
echo "rating.type GAUGE\n";
exit();
}
$hits = file_get_contents("/tmp/ldc_rating");
echo "rating.value $hits\n";
Der Parameter „config“
Munin muss wissen, wie die Graphen gezeichnet werden müssen. Hierfür wird das Plugin mit dem Parameter „config“ aufgerufen. Das eigene Plugin muss somit auch den Parameter config
bearbeiten können. Fehlt dieser Parameter, wird das Plugin nicht dargestellt. Es müssen folgende Ausgaben erfolgen, die das Plugin für Munin beschreiben. Ganz wichtig: Pro Ausgabe eine Zeile.
Ausgabe | Beschreibung |
---|---|
graph_title | Beschreibung des Diagramms |
graph_vlabel | Vertikaler Text am Rand (Beschreibung Y-Achse) |
graph_category | Kategorie des Plugins |
datenreihe.label | Beschreibung des Graphs „datenreihe“ (Name beliebig) |
datenreihe.type | Entweder GAUGE oder COUNTER . In den meisten Fällen ist Gauge ausreichend |
Pro Datenreihe (wenn man z. b. mehrere Graphen erstellen will) muss man sowohl datenreihe.label
als auch datenreihe.type
angeben, damit Munin weiß, wie das Plugin bzw. deren Datenreihen darzustellen sind. Wird das Plugin nun mit dem Parameter config
ausgeführt, so sollte die Ausgabe wie folgt aussehen:
user@machine $ php /usr/share/munin/plugins/distrochooser_rating config
graph_title Distrochooser: Bewertung (Durchschnitt)
graph_vlabel Bewertung
graph_category Projekte
rating.label Bewertung
rating.type GAUGE
Wird das Plugin ohne den Parameter config
ausgeführt, so wird nur der Wert der Datenreihe(n) ausgegeben, z. B. also
rating.Value 3,96
Das Plugin aktivieren
In /usr/share/munin/plugins
liegen alle verfügbaren Plugins. Um ein Plugin zu aktivieren, muss ein Link nach /etc/munin/plugins
erstellt werden. Es ist zu empfehlen, die selbst geschriebenen Plugins auch dort abzulegen.
sudo ln -s /usr/share/munin/plugins/pluginname /etc/munin/plugins/pluginname
Anschließend muss man Munin-node neu starten. Das geht je nach Distribution z. B. über `systemctl restart munin-Node` oder `service munin-node restart`. ### Funktioniert immer noch nicht?
In den Munin-HIlfeseiten gibt es [ein weiterführendes Tutorial](http://munin-monitoring.org/wiki/HowToWritePlugins) zum Schreiben von Plugins. Ebenfalls sollte man die Zugriffsrechte überprüfen und in den Munin-Logfiles nach Fehlermeldungen suchen, falls das Plugin nicht angezeigt wird. Gewöhnlich wird das Plugin erst nach der nächsten Generierung angezeigt! – – – – – –
_Bild: https://stocksnap.io/photo/DUAHA1V312_
Eine Antwort zu „Munin: Eigene Plugins entwickeln“
[…] Anleitung findet sich im Munin Wiki und einige Beispiele wurden von Lamertz, Gwendragon oder von Fury’s Blog […]