Munin

From ArchWiki
Revision as of 19:38, 25 March 2010 by Fsa (Talk | contribs) (Changed the path of the munin.conf)

Jump to: navigation, search

Munin the monitoring tool surveys all your computers and remembers what it saw. It presents all the information 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, applications, weather measurements and whatever comes to mind. 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 any resources.

Munin uses the excellent RRDTool (written by Tobi Oetiker) and the framework is written in Perl, while plugins may be written in any language. Munin has a master/node architecture in which the master connects to all the nodes at regular intervals and asks them for data. 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). [1]

Simply put, Munin allows you to make graphs about system statistics. You can check out University of Oslo's Munin install to see some examples of what it can do.

Installation

Munin relies on a client-server model. The client is munin-node, and the server is munin (referred as to "munin-master" in the documentation).

You will only need to install munin-master on a single machine, but munin-node will need to be installed on all machines you wish to monitor. This article will focus on a single-machine installation. Further documentation may be found on the Munin documentation wiki.

Installing Munin

There is currently a munin (munin-master) and a munin-node package in extra.

# pacman -S munin munin-node

Installing an optional web server

The following guide sets up Munin to generate static HTML and graph images and write them in a directory of your choosing. You can view these generated files locally with any web browser. If you want to view the generated files from a remote machine, then you want to install one of the following web servers.

Or one of the other servers found in the web server category.

Configuration

Add the daemon to /etc/rc.conf:

DAEMONS=(syslog-ng network netfs crond httpd munin-node)

Create a directory where the munin-master will write the generated HTML and graph images. The munin user must have write permission to this directory.

/srv/http/munin is used below, so the generated output can be viewed at http://localhost/munin/ provided that a web server is installed and running.

# mkdir /srv/http/munin
# chown munin:munin /srv/http/munin

Uncomment the htmldir entry in /etc/munin/munin.conf and change it to the directory created in the previous step:

htmldir /srv/http/munin

Run the following to have munin collect data and update the generated HTML and graph images every 5 minutes:

# crontab /etc/munin/munin-cron-entry -u munin

You can run also run monin-cron manually for testing purposes.

# su - munin --shell=/bin/bash
$ munin-cron

Testing the Installation

Make sure munin-node is running.

#/etc/rc.d/munin-node start

Run munin-cron manually to generate the HTML and graph images.

# su - munin --shell=/bin/bash
$ munin-cron

Then test the interface by pointing your browser to the output directory or http://localhost/munin.

Note: It might take a while for the graphs to have data, so be patient. Wait for about 30 minutes to an hour.

Plugins

There are many Munin plugins (and they're easy to write). You can start looking for plugins on the MuninExchange.

Basically all plugins are installed in the following manner (although there are exceptions, review each plugin!):

Download a plugin, then copy or move it to /usr/lib/munin/plugins

  cp <plugin> /usr/lib/munin/plugins/

Link the plugin to /etc/munin/plugins

  ln -s /usr/lib/munin/plugins/<plugin> /etc/munin/plugins/<plugin>

And then test your plugin. You do not need to use the full path to the plugin, munin-run should be able to figure it out.

  munin-run <plugin>

Now restart munin-node

  /etc/rc.d/munin-node restart

Then refresh the web page; there should be no need to restart munin-master.

If you want to remove a plugin, simply delete the linked file in /etc/munin/plugins/ - there is no need to actually remove the plugin from /usr. Many scripts also follow the following naming convention <plugin>_<device>. This allows multiple links to a single plugin.