Je suis un grand fanatique de Munin (http://munin-monitoring.org/) c'est un outil de monitoring très simple (voire simplet parfois) qui fonctionne « tout seul ».
Je le préfère largement à Cacti et d'autres systèmes beaucoup plus complets car avec munin on est certain qu'il n'y aura jamais de maintenance à faire (pas de base de données à gérer, pas d'exécutable complexe à maintenir et mettre à jour...). J'aime aussi l'aspect simplissimme pour créer/ajouter un plugin : simple script à poser dans un dossier et « pouf le graphique apparaît ».
Un défaut que munin possède tout de même réside dans les pages HTML qu'il génère : elles contiennent rapidement un grand nombre d'images PNG et le navigateur rame pour les charger, surtout qu'il le fait plus ou moins de manière séquentielle. C'est embêtant, notamment quand on cherche à voir un graphique précis (par exemple en cliquant sur "System" en face d'une machine dans l'index général) : mais le navigateur charge toutes les images du host avant celle qui nous intéresse : on télécharge des Mo pour rien et on attend pour voir l'image qui nous intéresse... Gachis !
Une solution KISS (comme munin) à ce problème est d'ajouter un système de LazyLoad dans les pages générées par munin. L'idée est de mettre en place du javascript qui ne chargera que les images visibles à l'écran. Celles qui seront "en dessous ou au dessus" dans votre scroll ne seront téléchargées que lorsqu'elles deviennent visibles.
Pour cela c'est très simple... Il faut ajouter le plugin javascript lazyload dans le DocumentRoot :
mkdir /var/www/munin/js cd /var/www/munin/js wget http://www.appelsiini.net/projects/lazyload/jquery.lazyload.js
Puis modifier le template utilisé pour générer les pages. Editez le fichier /etc/munin/templates/partial/header.tmpl et ajoutez juste avant le </head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" type="text/javascript" charset="utf-8"></script>
<script src="/js/jquery.lazyload.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript" charset="utf-8">
$(function() {
$("img").lazyload({
effect : "fadeIn"
});
});
</script>
Note : ici la librairie jquery reste téléchargée chez notre ami Google. Vous pouvez choisir de la stocker dans votre DocumentRoot pour éviter de hitter Google à chaque page de votre munin.
C'est tout ! C'est fini ! Il suffit d'attendre que munin regénère les pages HTML (par défaut toutes les 5 minutes sur une installation standard). Pour les impatients et ceux qui ont choisi de générer les HTML a une fréquence moindre vous pouvez regénérer les pages avec la commande su munin -s /bin/sh -c /usr/share/munin/munin-html.
Le résultat est bluffant, on a l'impression que tout va plus vite ! Je pense que cela doit être aussi TRES bénéfique pour ceux qui ont configuré munin pour générer les images à la volée (CGI).
Bien sûr tout le mérite revient à l'auteur de ce plugin jQuery : Mika Tuupola. Son site explique les détails d'utilisation du plugin : http://www.appelsiini.net/projects/lazyload Il nous informe que le plugin n'est pas maintenu et ne fonctionne pas avec les navigateurs récents, mais tous ceux que j'ai essayé fonctionnent parfaitement...