I install Munin everywhere I can. It's a really helpful tool. After I've started using Munin (and Nagios), I'm puzzled of how I managed without before. Munin gives you historical graphs and enables you to predict resource consumption trends: "Is there any memory increase during the last year? Are the number of mail/spam increasing? What about CPU load? Network throughput?" etc.
Some time ago, I was at a customer and installed Munin on a bunch of servers. The next day, the sysadmin called and thanked me. He finally knew why he had to reboot two of his Oracle server every week. There was some kind of memory leak eating away all memory before the server crashed. He contacted Oracle to come up with a fix.
Another example: You arrive at work, and a server has crashed/rebooted/panicked during the night. Now, why did it do that? Munin can be of great help here: Check the graphs right before the crash - seeing anything unusual? Increase in network traffic? What about CPU load? Memory? Number of processes? It can give you a really good indication of what went wrong.
Munin do have some limitations. It does not scale well (to hundreds of servers) and I find it particularly painful to create aggregated graphs (for example aggregated network graph of two or more hosts). But I know these issues are being worked on.
Okay, enough talk - let's monitor Bind:
First we need enable logging. Create a log directory and add log directives to the Bind configuration file (here on Debian):
Restart bind:
You can now see log files are being populated under /var/log/bind9/*
Next, configure Munin:
Make sure the munin-user ("munin") can read you bind log files.
The "bind" plugin should work right away. "bind9_rndc" however need to read the "rndc.key file, which only are readable by the user "bind". You have two options, either run the plugin as root or add the user "munin" to the group "bind" and enable the group "bind" to read the rndc.file. For the sake of simplicity, I run the plugin as root here. So you need to add:
Next restart Munin:
Munin run every five minutes, so go take a coffee. Wait.
After a while, graphs arrive:
And the bind_rndc plugin:
Nice huh?