Monitoring avec Munin

Installez le serveur et le client Munin :

$ apt-get install munin munin-node

À l’installation il active les plugins en fonction de ce qui installé :

apache_processes cpu df df_inode entropy forks if_err_eth0 if_err_eth1 if_eth0 if_eth1 interrupts iostat irqstats load memory mysql_bytes mysql_queries mysql_slowqueries mysql_threads netstat open_files open_inodes postfix_mailqueue postfix_mailvolume processes smart_sda smart_sdb swap vmstat

Vous aurez les plugins mysql si vous avez mysql-server d’installé. Les plugins actifs sont des liens symboliques dans /etc/munin/plugins/.

Éditez /etc/munin/munin.conf pour changer host.domain.com (ce n’est pas nécessaire dans Ubuntu 12.04) :

# a simple host tree
[host.domain.com]
    address 127.0.0.1
    use_node_name yes

Activer d’autres modules si vous le souhaitez :

$ cd /etc/munin/plugins
$ ln -s /usr/share/munin/plugins/fail2ban
$ ln -s /usr/share/munin/plugins/smart_ smart_sda

Tous les fichiers dans /var/lib/munin et /var/log/munin doivent appartenir à l’utilisateur munin (à exécuter seulement si vous n’avez pas de stats) :

$ chown -R munin:munin /var/lib/munin /var/log/munin

Reexécutez cette commande si vous n’avez toujours pas de stats après 15 minutes.

Redémarrez munin-node pour reprendre en compte la configuration :

$ /etc/init.d/munin-node restart

Plugins Zope

Exemple de buildout de deploiement avec munin :

[buildout]
extends = buildout.cfg
parts +=
    zeoserver
    instance1
    instance2
    munin1

[hosts]
zeoserver   = 127.0.0.1
instance1   = 127.0.0.1
instance2   = 127.0.0.1

[ports]
zeoserver   = 8100
instance1   = 9880
instance2   = 9881

[instance-settings]
eggs =
    ${instance:eggs}
    munin.zope
zcml =
    ${instance:zcml}
    munin.zope
products = ${instance:products}
user = ${instance:user}
zodb-cache-size = 8000
zeo-client-cache-size = 300MB
debug-mode = off
zope2-location = ${zope2:location}
zeo-client = true
zeo-address = ${zeoserver:zeo-address}
effective-user = ${users:zope}
environment-vars = ${instance:environment-vars}
zserver-threads = 2

[instance1]
recipe = collective.recipe.zope2cluster
instance-clone = instance-settings
http-address = ${hosts:instance1}:${ports:instance1}

[instance2]
recipe = collective.recipe.zope2cluster
instance-clone = instance-settings
http-address = ${hosts:instance2}:${ports:instance2}

[munin1]
recipe = zc.recipe.egg
eggs = munin.zope
scripts = munin=munin1
arguments = ip_address='${hosts:instance1}', http_address='${ports:instance1}', user='${instance1:user}'

[munin2]
recipe = zc.recipe.egg
eggs = munin.zope
scripts = munin=munin2
arguments = ip_address='${hosts:instance2}', http_address='${ports:instance2}', user="${instance2:user}"

Installez les liens symboliques :

$ sudo ./bin/munin1 install /etc/munin/plugins instance1
installed symlink /etc/munin/plugins/instance1_zopecache_plonesite
installed symlink /etc/munin/plugins/instance1_zopememory_plonesite
installed symlink /etc/munin/plugins/instance1_zodbactivity_plonesite
installed symlink /etc/munin/plugins/instance1_zopethreads_plonesite
$ sudo ./bin/munin2 install /etc/munin/plugins instance2
installed symlink /etc/munin/plugins/instance2_zopecache_plonesite
installed symlink /etc/munin/plugins/instance2_zopememory_plonesite
installed symlink /etc/munin/plugins/instance2_zodbactivity_plonesite
installed symlink /etc/munin/plugins/instance2_zopethreads_plonesite

Redémarrez munin-node pour reprendre en compte la configuration :

$ /etc/init.d/munin-node restart

Plugins Varnish

Il existe des plugins munin pour Varnish. Voyez la page sur pypi pour les instructions : http://pypi.python.org/pypi/munin.varnish

Les plugins utilisent la commande varnishstat. Cette commande est disponible si vous avez le package libncurses5-dev lors de la compilation de Varnish.