How-To: Running Munin 2.0 on Debian Squeeze (6.0)
Munin 2.0 has been released and a .deb package has even been backported to Debian Squeeze!.
Version 2.0 comes with a bunch of new features and scalability improvements. This how-to will explain how to install and configure Munin 2.0 using Apache and mod-fcgid on Debian Squeeze.
The feature that I was really looking forward in Munin 2 was graph zooming which makes it really easy and convenient to visualize what happened at a given moment in time.
Most of the install process is actually detailed in http://munin-monitoring.org/wiki/CgiHowto2 but there were some missing bits to get it properly working on my set up (Debian Squueze + Apache2), hence while this how-to will look pretty similar to that wiki page, it should hopefully fill the gaps.
I will not cover the munin-node part as there should not be anything different since 1.4 and this old tutorial should still be accurate: How-To: Monitoring A Server With Munin.
Installing Munin
Debian backport is providing a .deb for Debian Squeeze, so once you have added debian backports repository, installing Munin is nearly an apt-get away.
Adding Debian Backport Repository
Create and edit /etc/apt/sources.list.d/backports.list and add:
deb http://backports.debian.org/debian-backports squeeze-backports main
Update your repositories:
# apt-get update
and finally, install Munin from the squeeze-backports:
# apt-get install munin -t squeeze-backports
The default /etc/munin/munin.conf is enough to monitor localhost. Within the next 5 minutes, a cron job will be ran and will start collecting metrics.
Now, we need to configure Apache to serve munin pages.
Apache settings
This new version of Munin now defaults to using CGI to generate HTML and GRAPH, so if you don’t have any CGI module installed yet, get it rolling and install one and enable it:
# apt-get install libapache2-mod-fcgid
# a2enmod fcgid
Then, we will create a new virtual host that will serve Munin graphs. So, let’s create /etc/apache2/sites-available/munin and edit it with:
<VirtualHost *:80>
DocumentRoot /var/cache/munin/www
ServerName munin.example.com
Alias /static /etc/munin/static
# Rewrites
RewriteEngine On
# HTML
RewriteCond %{REQUEST_URI} !^/static
RewriteCond %{REQUEST_URI} .html$ [or]
RewriteCond %{REQUEST_URI} =/
RewriteRule ^/(.*) /usr/lib/munin/cgi/munin-cgi-html/$1 [L]
# Images
# - remove path to munin-cgi-graph, if present
RewriteRule ^/munin-cgi/munin-cgi-graph/(.*) /$1
RewriteCond %{REQUEST_URI} !^/static
RewriteCond %{REQUEST_URI} .png$
RewriteRule ^/(.*) /usr/lib/munin/cgi/munin-cgi-graph/$1 [L]
# Ensure we can run (fast)cgi scripts
ScriptAlias /munin-cgi/munin-cgi-graph /usr/lib/munin/cgi/munin-cgi-graph
<Location /munin-cgi/munin-cgi-graph>
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
Allow from all
</Location>
ScriptAlias /munin-cgi/munin-cgi-html /usr/lib/munin/cgi/munin-cgi-html
<Location /munin-cgi/munin-cgi-html>
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
Allow from all
</Location>
<Location />
Options +ExecCGI
<IfModule mod_fcgid.c>
SetHandler fcgid-script
</IfModule>
<IfModule !mod_fcgid.c>
SetHandler cgi-script
</IfModule>
Allow from all
</Location>
<Location /static/>
SetHandler None
Allow from all
</Location>
<Directory /var/cache/munin/www>
Order allow,deny
#Allow from localhost 127.0.0.0/8 ::1
Allow from all
Options None
# Set the default expiration time for files to 5 minutes 10 seconds from
# their creation (modification) time. There are probably new files by
# that time.
#
<IfModule mod_expires.c>
ExpiresActive On
ExpiresDefault M310
</IfModule>
</Directory>
</VirtualHost>
Finally, enable this new site:
# a2ensite munin
That’s it, we now need to reload apache:
# /etc/init.d/apache2 reload
Now, you should be able to access munin at http://munin.example.com and zoom on graph!