Monitoring Servers and Clients using Munin in Debian Linux
What is Munin?
"Munin" means "memory".
Munin the tool surveys all your computers and remembers what it saw. It presents all the information in in graphs through a web interface. Its emphasis is on plug and play capabilities. After completing a installation a high number of monitoring plugins will be playing with no more effort. Using Munin you can easily monitor the performance of your computers, networks, SANs, and quite possibly applications as well. It makes it easy to determine "what's different today" when a performance problem crops up. It makes it easy to see how you're doing capacity wise on all limited resources.
It uses the excellent RRDTool and is written in Perl. Munin has a master/node architecture in which the master connects to all the nodes at regular intervals and asks them for sdata. It then stores the data in RRD files, and (if needed) updates the graphs. One of the main goals has been ease of creating new plugins (graphs).
If you want to configure munin server you need to edit the /etc/munin/munin.conf file.The sample file looks like this
# Example configuration file for Munin, generated by 'make build'
# The next three variables specifies where the location of the RRD
# databases, the HTML output, and the logs, severally. They all
# must be writable by the user running munin-cron.
# Where to look for the HTML templates
# Make graphs show values per minute instead of per second
# Drop [email protected] and [email protected] an email everytime
# something changes (OK -> WARNING, CRITICAL -> OK, etc)
#contact.someuser.command mail -s "Munin notification" [email protected]
#contact.anotheruser.command mail -s "Munin notification" [email protected]
# For those with Nagios, the following might come in handy. In addition,
# the services must be defined in the Nagios server as well.
#contact.nagios.command /usr/sbin/send_nsca -H nagios.host.com -c /etc/send_nsca.cfg
# a simple host tree
In this above sample config file we need to look maily these files
# Set this if the client doesn't report the correct hostname when
# telnetting to localhost, port 4949
# A list of addresses that are allowed to connect. This must be a
# regular expression, due to brain damage in Net::Server, which
# doesn't understand CIDR-style network notation. You may repeat
# the allow line as many times as you'd like
In the above configuration file there are two important things you need to enter first one is under
#host_name localhost.localdomain you need to add your client machine fully qualified name example
Second one is you need to enter the server ipaddress by defauly you can see 127.0.0.1 in your config file under that you need to add your munin server ipaddress example as follows
Now you need to add plugins for for your client machine to monitor the required services for this edit the file located at /etc/munin/plugin-conf.d/munin-node sample file looks like below
# This file is used to configure how the plugins are invoked.
# user <user> # Set the user to run the plugin as.
# group <group> # Set the group to run the plugin as.
# command <command> # Run <command> instead of the plugin. %c expands to
# what would normally be run.
# env.<variable> # Sets <variable> in the plugin's environment, see the
# individual plugins to find out which variables they
# care about.
here you need to add the user,group,command,env.<variable> and plugin name
Now look in to plugins/ directory
A directory in which each file is a symlink to a real plugin in /usr/share/munin/plugins.
Any plugin linked in here will be checked for and displayed in the resulting web pages.
Add the plugins you want (e.g. if running exim4 then I'd add exim_mailqueue and exim_mailstats).
You'll need to set user/group rights in the munin-node conf file.
Most plugins can be run from the command line with the autoconf param to check if they can run - e.g.
./exim_mailstats autoconf yes
You can add any plugins you want to monitor and default plugins are located at /etc/munin/plugins directory