Munin is an RRDtool-based (Round Robin Database Tool) graphical trending application. The server portion runs on Unix-like machines and the client portion runs on a number of different platforms and architectures. Munin is based on RRDtool, which is a command line based application that stores data in a circular buffer on disk. A circular buffer implies that some data must be removed as new data is added to maintain a reasonable fixed size on disk. This mechanism has the benefit of storing different periods of data in separate buffers showing trends over long periods of time. The downside of such storage is that granularity is lost over time. However, if we are only interested in trends and not specific data points, circular buffers are perfectly fine for our use.

Writing wrappers for polling and storing data via RRDtool would be a painstaking task if we had to do the work ourselves. Luckily, the Munin developers have already built this functionality as well as a number of plug-ins to facilitate SNMP polling. Configuring Munin to trend BIG-IP couldn’t be easier than they’ve made it.

How Munin Works

Munin, in its simplest deployment, consists of a master server and a node. The munin-node process has a number of plugins configured for which it is able to provide data. It listens on TCP port 4949 for requests from the Munin master server and then provides the values on request. The Munin master makes requests to the Munin node(s) and then aggregates the data using RRDtool. The resulting data is then rendered into graphs and rendered into HTML pages viewable by an administrator.

Our deployment will consist of these two components as well as an SNMP agent on the BIG-IP. In order to avoid having to compile and maintain the munin-node process and its plugins for every BIG-IP upgrade, we will run the munin-node process on our master server. The SNMP plug-ins will be configured to proxy SNMP requests to the BIG-IP via the local munin-node agent. The Munin node performing the SNMP polling could be moved to a separate machine, but we will leave it on the master server for simplicity.

Configuring The BIG-IP SNMP Agent

1. Login to your BIG-IP’s GUI at https://mgmt-interface

2. Select System > SNMP

3. Configure the relevant “Contact Information” and “Machine Location”

4. Add the Munin master server’s address to the “Client Allow List” *

5. Click “Update”

001

*As a best practice, we usually encourage users to only allow SNMP polling through the management interface or dedicated VLAN

Configuring The Munin Master Server and Node*

The configuration of Munin master server and node begins with a new Ubuntu server.

1. Configure an interface on the server for communication with the BIG-IP’s management interface

2. Install Munin and Apache

apt-get install munin apache2

3. Create a symlink from the Munin HTML files to Apache’s root directory

ln -s /var/cache/munin/www/ /var/www/munin

4. Configure the Munin node plug-ins for the BIG-IP SNMP agent and exclude the plug-ins that don’t apply to BIG-IPs

munin-node-configure --shell -snmp <BIG-IP hostname> | egrep -v '(df|rdpusers|winload|winmem)' 

5. Copy and paste the commands output from the previous command into the console. This will create the symbolic links for the SNMP plug-ins.

ln -s '/usr/share/munin/plugins/snmp__if_' '/etc/munin/plugins/snmp_test-ltm-ve-01_if_1'
ln -s '/usr/share/munin/plugins/snmp__load' '/etc/munin/plugins/snmp_test-ltm-ve-01_load'
(and about 20 more plug-ins)

6. Add the following lines to /etc/munin/munin.conf

[<BIG-IP hostname>]
    address 127.0.0.1

7. Wait 30 minutes or so (polling interval is every 5 minutes) and navigate to http://munin-master-server/munin/. If all goes well, you should see some charts similar to these.

002 

*This installation method is Debian/Ubuntu-specific. For information on installing for other distributions, see the Munin wiki here.

Conclusion

Monitoring systems are great for alerting at thresholds or on events, but tell very little about the history of a particular metric. This is where trending systems offer value to the administrator. Trending your BIG-IPs can be beneficial for calculating growth and capacity, troubleshooting abnormalities, and trending system health. I use Munin for keeping tabs on all of my systems and have found it to be an invaluable piece of my overall system architectures. We hope this tech tip helps you start trending your BIG-IPs.

Comments on this Article
Comment made 04-Nov-2010 by Kent Perrier -2
How can you make the interface names actually match what they are called in the LTM gui? How would one go about graphing statistics for a virtual server?
1