Munin is simple and easy to use. It's easy to write plugin extensions for munin-node.
Munin-node is much easier to install using Apt or another package manager. It has many Perl dependencies :-(
apt-get install munin-node
Double-check that it included sym links to the plugins:
email@example.com: /etc/munin/plugins # ls -l total 116 drwxr-xr-x 2 root root 4096 Aug 28 15:51 ./ drwxr-xr-x 4 root root 4096 Aug 28 15:51 ../ lrwxrwxrwx 1 root root 41 Aug 28 15:51 apache_processes -> /usr/share/munin/plugins/apache_processes* lrwxrwxrwx 1 root root 28 Aug 28 15:51 cpu -> /usr/share/munin/plugins/cpu* lrwxrwxrwx 1 root root 27 Aug 28 15:51 df -> /usr/share/munin/plugins/df* lrwxrwxrwx 1 root root 30 Aug 28 15:51 forks -> /usr/share/munin/plugins/forks* lrwxrwxrwx 1 root root 32 Aug 28 15:51 if_err_eth0 -> /usr/share/munin/plugins/if_err_* lrwxrwxrwx 1 root root 28 Aug 28 15:51 if_eth0 -> /usr/share/munin/plugins/if_* lrwxrwxrwx 1 root root 35 Aug 28 15:51 interrupts -> /usr/share/munin/plugins/interrupts* lrwxrwxrwx 1 root root 31 Aug 28 15:51 iostat -> /usr/share/munin/plugins/iostat* lrwxrwxrwx 1 root root 29 Aug 28 15:51 load -> /usr/share/munin/plugins/load* lrwxrwxrwx 1 root root 31 Aug 28 15:51 memory -> /usr/share/munin/plugins/memory* lrwxrwxrwx 1 root root 32 Aug 28 15:51 netstat -> /usr/share/munin/plugins/netstat* lrwxrwxrwx 1 root root 34 Aug 28 15:51 processes -> /usr/share/munin/plugins/processes* lrwxrwxrwx 1 root root 29 Aug 28 15:51 swap -> /usr/share/munin/plugins/swap* lrwxrwxrwx 1 root root 31 Aug 28 15:51 vmstat -> /usr/share/munin/plugins/vmstat*
Use `update-rc.d` under Ubuntu/Debian or under RedHat use `chkconfig`:
# chkconfig --add munin-node # chkconfig munin-node on # chkconfig --list munin-node munin-node 0:off 1:off 2:on 3:on 4:on 5:on 6:off
By default munin-node is configured to only allow connections from localhost (127.0.0.1). I usually modify it to allow connections from any machine on a localnet. Also, some systems have their /etc/hosts file setup to map their FQDN to 127.0.1.1 instead of 127.0.0.1, which is valid, so the default Munin-node config is too restrictive. In the following I remove this restriction.
# localhost allow ^127\.\d+\.\d+\.\d+$ # localnets # 192.168.0.0/16 allow ^192\.168\.\d+\.\d+$ # 172.16.0.0/12 allow ^172\.(1[6-9]|2[0-9]|3)\.\d+\.\d+$ # 10.0.0.0/8 allow ^10\.\d+\.\d+\.\d+$
Munin-node has a very short connection timeout. This is frequently a problem if you are processing data from a server that sends a large amount of data because the munin-cron may spend more than 5 seconds processing data between each fetch. To fix this add the following to /etc/munin/munin-node.conf.
apt-get install munin
Edit /etc/munin/munin.conf and set htmldir. Make sure to create the htmldir and set ownership to munin:munin.
Edit /etc/crontab and add this line:
*/5 * * * * munin /usr/bin/munin-cron
Add munin plugin
Add new plugin to /usr/share/munin/plugins/. Be sure to make it executable, chmod 755 /usr/share/munin/plugins/NEWPLUGIN.
Create symlink ln -s /usr/share/munin/plugins/NEWPLUGIN /etc/munin/plugins/NEWPLUGIN.
Edit /etc/munin/plugin-conf.d/munin-node and add a section for the new plugin. Often you want the plugin to run as root, so the following is the most common, minimal configuration section you need for a new plugin:
[NEWPLUGIN] user root