Munin – performance monitoring tool

My favorite performance monitoring tool: Munin by linpro.

Munin 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 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).

Previous articles in my blog about munin:

Integrating Munin with Mon

Munin already integrates with Nagios .. But I didn’t find anything for mon ..

So I hacked check_munin.pl from Nagios Exchange to work with mon ..

Download munin.monitor and place it in mon.d/ of your mon installation.

Now you can monitor ANY munin value using mon.

Use something like the following in your systems_monitor.m4

watch system01
    service disk_root
        interval 5m
        monitor munin.monitor -M df -F _dev_cciss_c0d0p1 -w 90 -c 95 -H
        depend SELF:ping
        period _ANYTIME_
            alertevery 15m summary
            comp_alerts
            alertafter 3
            alert mail.alert _MY_EMAIL_
            upalert mail.alert _MY_EMAIL_
    service toomanyqueuedmails
        interval 5m
        monitor munin.monitor -M sendmail_mailqueue -F mails -w 50 -c 100 -H
        depend SELF:ping
        period _ANYTIME_
            alertevery 15m summary
            comp_alerts
            alertafter 3
            alert mail.alert _MY_EMAIL_
            upalert mail.alert _MY_EMAIL_
    service dnsresponse
        interval 5m
        monitor munin.monitor -M dnsresponse_193.92.110.1 -F avg -w 20 -c 50 -H
        depend SELF:ping
        period _ANYTIME_
            alertevery 15m summary
            comp_alerts
            alertafter 3
            alert mail.alert _MY_EMAIL_
            upalert mail.alert _MY_EMAIL_

Make sure that your MON server’s IP is allowed in munin-node.conf of your munin client.

munin plugin to monitor dns response times

A munin plugin that allows you to monitor the response time of any DNS that allows you to recurse.

dnsresponse_ — it’s a poor man’s smokeping DNS probe :)
(wordpress.com does not allow arbitrary file uploads, so grab it from munin-exhange)

To install it, place it in /usr/share/munin/plugins/ and run «munin-node-configure –shell«.

By default it graphs the Average, Median and StdDev of 20 DNS queries.

sample dnsresponse_ graph
sample dnsresponse_ graph