Table of Contents

Création d'un plugin pour Munin

Munin est une solution de monitoring très souple. Elle fonctionne en effet en partie grâce à un nombre important de plugins. Ces plugins décrivent en réalité la méthode à utiliser pour récupérer les données à mettre sous forme de graphes et les quelques caractéristiques des graphes à générer. Les plugins sont des scripts écrits dans plusieurs langages tels que Perl, Python ou même Bash. Dans cette page, nous allons décrire la manière permettant de créer des plugins afin d'être capable de mettre en graphes plus ou moins tout ce que l'on veut.

Les règles d'un plugin

Écrire un plugin pour Munin est relativement simple mais chaque plugin doit respecter quelques conventions afin de fonctionner correctement.

La première règle est que chaque script de plugin doit gérer le paramètre nommé config. Lorsque ce paramètre est passé au script ce dernier doit renvoyer les caractéristiques du graphe à dessiner. Le script doit renvoyer sur la sortie standard quelque chose de ce type (au minimum).

graph_title Load average
graph_vlabel load
load.label load

L'attribut graph_title définit le titre du graphe. L'attribut graph_vlabel définit la légende de l'axe Y (vertical) du graphe. Enfin load.label définit le code couleur pour la ligne définit par load.value.

La seconde règle concerne le nom des fichiers. Pour activer un plugin, on utilise un lien symbolique que l'on fait pointer sur le fichier de plugin réel. Ce lien symbolique doit se trouver dans le répertoire /etc/munin/plugins. Les plugins qui doivent prendre un paramètre pour fonctionner doivent se terminer par un _. Et donc pour utiliser le script avec le paramètre voulu on crée un lien symbolique du genre /etc/munin/plugins/plugin_paramètre.

Exemple d'un plugin simple

Voici un exemple de plugin on ne peut plus simple.

#!/bin/sh
 
case $1 in
    config)
        cat <<'EOM'
graph_title Load average
graph_vlabel load
load.label load
EOM
        exit 0
        ;;
esac
 
echo -n "load.value "
cut -d' ' -f2  /proc/loadavg

Et si on le teste on obtient.

$ ./load
load.value 0.08
$ ./load config
graph_title Load average
graph_vlabel load
load.label load

Ce plugin permet de faire un graphe de la charge de la machine. Pour l'activer on crée un lien symbolique du script.

ln -s loadaverage /etc/munin/plugins/loadaverage

Des plugins créés pour nos besoins

Voir cette page.