====== 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 [[gnu_linux_server:monitoring:monitoring_munin_plugin_list|page]].