Monitoring qmail with Cacti & net-snmp

September 14th, 2005

You'll need a fairly recent install of net-snmp for this, as it uses the 'extend' MIB.

You also need Inter7's excellent qmail-mrtg7 installed. You don't need MRTG though - we just stand on the shoulders of Inter7's log parsing to get our numbers.

In snmpd.conf:

extend qmail-message-status /usr/local/bin/qmailmrtg7 s /var/log/qmail
extend qmail-bytes-transfer /usr/local/bin/qmailmrtg7 b /var/log/qmail
extend qmail-smtp-concurrency /usr/local/bin/qmailmrtg7 t /var/log/smtpd
extend qmail-smtp-sessions /usr/local/bin/qmailmrtg7 a /var/log/smtpd
extend qmail-pop3-concurrency /usr/local/bin/qmailmrtg7 t /var/log/pop3d
extend qmail-pop3-sessions /usr/local/bin/qmailmrtg7 a /var/log/pop3d
extend qmail-queue /usr/local/bin/qmailmrtg7 q /var/qmail/queue
extend qmail-messages /usr/local/bin/qmailmrtg7 m /var/log/qmail
extend qmail-concurrency /usr/local/bin/qmailmrtg7 c /var/log/qmail

extend qmail-virus /usr/local/bin/qmailmrtg7 C /var/log/clamd
extend qmail-spam /usr/local/bin/qmailmrtg7 S /var/log/spamd

extend dnscache /usr/local/bin/dnscache-stats
dnscache-stats is a one-liner:
#!/bin/sh

/usr/bin/grep stats /etc/dnscache/log/main/current | /usr/bin/tail -1 | /usr/bin/awk '{ printf("%d\n%d\n%d\n%d\n",$3,$4,$5,$6); }'
Now you can monitor with the following MIBs:
QMail Queue size
.1.3.6.1.4.1.8072.1.3.2.4.1.2.11.113.109.97.105.108.45.113.117.101.117.101.1
QMail Unprocessed Queue
.1.3.6.1.4.1.8072.1.3.2.4.1.2.11.113.109.97.105.108.45.113.117.101.117.101.2
QMail SMTPd Connections
.1.3.6.1.4.1.8072.1.3.2.4.1.2.22.113.109.97.105.108.45.115.109.116.112.45.99.111.110.99.117.114.114.101.110.99.121.1
djbdns queries
.1.3.6.1.4.1.8072.1.3.2.4.1.2.8.100.110.115.99.97.99.104.101.1
TODO: add rest of MIBs.

It's not exactly rocket-science, but it does mean you can get a central view of your Qmail servers in Cacti.

Copyright 1994-2005, by Howard Jones. howie@thingy.com