Tout d'abord, une petite explication sur comment fonctionne munin, à savoir en 2 temps :
1/ le service munin-node écoute sur un port tcp de notre choix, afin de pouvoir récupérer les données
2/ ensuite script tourne régulièrement (toutes les 5 minutes par défaut), interroge ce service, collecte les données et calcule les graphiques

Par défaut, la configuration se fait dans /etc/munin/ et les fichiers générés (html et graphs au format png) dans _/var/www/munin/_
(Il faudra que vous ayez paramétré votre serveur web pour accéder à ce dossier afin de vous extasier devant ces œuvres d'art :D )

Une fois dans le dossier /etc/munin/ on a plusieurs fichiers et dossiers :
- le fichier munin.conf: dans lequel on indique sur quelle(s) machine(s) on va récupérer les données
- le fichier __munin-node.conf_: la ou on configure les accès depuis d'autres machines, ainsi que l'ip et le port sur lequel le service va écouter
- le dossier plugin-conf.d: contient les parmètres des plugins
- le dossier plugins: contient les plugins. ce sont les scripts chargés de récupérer les données
- le dossier templates: contient les templates html qu'on peut modifier à loisir

1/ configuration de munin.conf

voici les données essentielles à éditer selon vos besoins ;)
htmldir: indique ou seront générés les fichiers html et graphiques, par défaut dans /var/www/munin/
logdir: ou sont enregistrés les logs

et le plus important du fichier, quelle machine doit on surveiller

[localhost.localdomain]
address 127.0.0.1
use_node_name yes

indique ici qu'on va se connecter à la machine locale, sur le port tcp 4949 (par défaut).
use_node_name à yes si on veut voir apparaitre le nom de la machine. par défaut à oui.
Par exemple, depuis le zotac,je souhaite également surveiller mon routeur. je rajoute donc

[routeur]
address 192.168.0.1
use_node_name yes

2/ configuration de munin-node.conf

Ici on va définir qui a accès aux données de la machine sur laquelle on vient d'installer munin.
Par défaut on a

allow ^127\.0\.0\.1$

pour autoriser juste la machine en local.
Cette clé "allow" utilise une expression régulière. on indique donc ^ pour indiquer le début de la chaine, puis l'ip dont on échappe les points avec un \ et enfin un $ pour indiquer la fin.

Ensuite on indique sur quelle ip on veut que le service écoute

host 127.0.0.1

Par défaut, c'est en local uniquement, mais on peut mettre une autre ip si veut être "écoutable" sur le réseau, ou 0.0.0.0 pour toutes les ip de la machine.

Enfin on indique le port sur lequel écouter

port 4949

4949 étant le port tcp par défaut ;)

3/ configuration des plugins

Haaa voila le point le plus interessant :w En premier il faut savoir ce qu'est un plugin. C'est tout simple, c'est un script (dont le langage peut être le perl, le script shell, le php, le python... ou autre ;) ) qui va récuperer une ou plusieurs données précise à un instant t, et l'écrire dans la sortie standard.
Il est donc très facile de se faire soi même un plu gin pour monitorer quelque chose que l'on souhaite surveller. J'en ai d'ailleurs écrit moi même quelques un, par exemple pour surveiller les connections imaps au serveur mail de mon boulot (beaucoup de outlook assez irrespectueux balançant 4 ou 5 connections à la fois alors que 2 suffisent... :o ), ou d'autres que j'ai un peu améliorer, par exemple les authentifications par SSH, ou l'état des mails délivrés, rejettés etc par postfix.

Bref, ils se trouvent dans le dossier "plugins". Une fois dedans que voit on ? pas des fichier standards mais des liens symboliques.
En effet les plugins sont en fait physiquement enregistrés dans le dossier /usr/share/munin/plugins/ et seuls ce qu'on souhaite utiliser sont linkés dans ce dossier.
Par défaut il y en a deja quelques un qui vous permettront de voir l'utilisation du cpu, de la ram, du disque dur, des netstats, températures et autres... ils sont toutà fait suffisant, mais une fois que vou saurez à peu près ce que fait chaque plugin, rien ne vousempêche de supprimer les liens symboliques de ceux dont vous n'avez pas besoin, et de faire un lien vers d'autres plus utiles
Jettez donc un coup d'oeil dans ces fichiers pour voir comment ils sont écrit afin de vous en inspirer si le coeur vous en dit ;)

Ensuite, pour chaque plugin, un droit d'accès est défini dans le fichier plugin-conf.d/munin-node sous la forme

[nom_du_plugin]
user nom_user
group nom_groupe
autre variable_denvironnement

par exemple, pour le plugin hddtemp_smartctl, on a

[hddtemp_smartctl]
user root

car le plugin utilise la commande smartctl qui ne peut s'executer qu'en root.
Autre exemple,pour les plugin postfix, le fichier de log postfix (généralement /var/log/mail.log) doit pouvoir être lu. On mettra donc les droits sur le groupe adm

[postfix_mailstats]
group adm

Donc à peu près chaque plugin a ses droits, sauf certain qui n'ont pas besoin de plus que les accès de base.
Au passage, si vous cherchez des plugins intéressants, il y en a toute une tripotée ici
Et pour le site officiel, ça se passe la: http://munin.projects.linpro.no/

4/ configuration d'accès http au répertoire munin

Enfin on configure son serveur web pour pouvoir voir tous ces jolis graphiques depuis son navigateur web.
Ici l'accès est autorisé en local (127.0.0.1) et à 192.168.0.1. A vous de l'adapter ;) Pour apache :

Alias /munin "/var/www/munin/"
<Directory /var/www/munin/>
Order deny,allow
deny from all
allow from 127.0.0.1 192.168.0.1
</Directory

Pour nginx :

server {
...
location /munin {
root /var/www;
index index.html;
allow 127.0.0.1;
allow 192.168.0.1;
deny all;
}
}

Enfin, n'oubliez pas de redémarrer munin pour valider votre configuration :

/etc/init.d/munin-node restart

De même pour chaque fois que vous installez un nouveau plugin. Enregistrez le dans /usr/share/munin/plugins/ puis faites en un lien symbolique vers /etc/munin/plugins/votre_plugin et redémarrez munin pour valider.

Si vous souhaitez changer la fréquence de récuperation des données (par défaut toutes les 5 minutes) ça se passe dans /etc/cron.d/munin
Il y a une ligne lancant la récuperation :

 */5 * * * *     munin if [ -x /usr/bin/munin-cron ]; then /usr/bin/munin-cron; fi 

ne mettez pas moins de 5 minutes car ça ne servirait pas à grand chose, si ce n'est à utiliser beaucoup de ressources. En moyenne, 10mn est pas mal.
Egalement, ne transformez pas munin en usine à gaz en installant 10 mille plugins qui ne vous serviront pas. Voyez desquels vous avez besoin et désactivez les autres ;)

Au final, attendez 10/15 minutes, lancez votre naviguateur web sur http://votre_machine/munin/ et admirez :)

Et si vous avez un jouli zotac mag dont vous voulez monitorer les températures, allez lire ce précèdent billet pour savoir comment les obtenir.
Après, activez le plugins sensors pour avoir le cpu

ln -s /usr/share/munin/plugins/sensors_ /etc/munin/plugins/sensors_temp

Activez la plugin hddtemp_smartctl pour le disque dur

ln -s /usr/share/munin/plugins/hddtemp_smartctl /etc/munin/plugins/hddtemp_smartctl

Et pour la carte graphique (qui est toujours à 55/56°), j'ai écrit un plugin en script shell qui récupère les températures grâce à la commande nvclock -i

De même, à enregistrer dans /usr/share/munin/plugins et faire un lien symbolique

ln -s /usr/share/munin/plugins/nvclock /etc/munin/plugins/nvclock

Et rajouter dans /etc/munin/plugin-conf.d/munin-node

[nvclock]
user root

EDIT: raaah quelle buse, j'avais z'oublié le presque plus important : configurer munin pour qu'il puisse vous prévenir par email.
Pour ce faire, dans le fichier munin.conf, on rajoute ces 2 lignes :
contact.moi.command mail -s "Notification Munin pour ${var:host}" mon_adresse@mondomaine.com
contact.moi.always_send warning critical
dans ces 2 lignes, "moi" est le nom du contact, vous pouvez mettre ce que vous voulez, ou meme vous faire plusieurs contacts.
dans la 1è ligne on indique la commande utilisée pour envoyer un mail d'alerte (avec dans le sujet la variable host)
dans la 2è ligne, on définit le type d'alerte à envoyer à notre contact.
On peut ainsi se faire un 1er contact qui ne recevra que les warnings, et un 2è pour les cas de force majeurs, qui recevra les alertes critiques ;)