munin

Munin-cron overlap fix

One solution I tried was to turn up the time between tests from 5 minutes to 10 minutes. This still had generated problems, as munin-cron runs still weren’t done after 10 minutes, and any greater time between polls meant subpar graph granularity. My final solution was to modify munin’s cron entry to the following: */7 * * * * munin test ( ! "$(pidof /usr/bin/munin-cron)" ) && test -x /usr/bin/munin-cron && nice -19 /usr/bin/munin-cron I ran a test to see if there’s still a PID active from munin-cron, and if not check to see if the munin-cron executable exists.

Part III: Munin[node] in cfEngine

A tarball of all relevant files can be found here. All files are hereby released under the GNU Public License version 2, and are apparently copyrighted by Oregon State University. There are 2 major parts to this system. The first is the cf.classes file, which simply describes which hosts belong in each class. The relevant classes are as follows: service_munin_host = ( larch ) service_munin_node = ( binhost columbia coos fir fraxinus g1 g2 g3 g4 ) package_munin_node = ( service_munin_node www_phpbb_com ) The second part is the cf.

Part II: The Munin-master

First off, you’re going to have to install the munin package. You’ll also need to have a web server installed, I prefer apache: # For Gentoo, emerge munin apache # For CentOS/Fedora yum install munin apache # For Debian aptitude install munin apache Gentoo and CentOS both install the HTTP root in /var/www/localhost/htdocs/munin. After setup, the graphs will be available at http://localhost/munin Debian requires a bit more attention. Debian munin installs the HTTP root in /var/www/munin.

Part I: Setting up Munin-Node

Munin showed the most promise and compatibility with many of the services we run at the OSL, such as memcached and varnish. I liked how the plugin system is set up independently on each host, and that each plugin can be managed, configured, and consolidated through symlinks. For the benefit of the uninitiated the setup on each node goes something like this: #For gentoo emerge munin #For Fedora/CentOS yum install munin-node #For Debian/Ubuntu apt-get install munin-node Each client is a “node”, and runs the daemon ‘munin-node’.