The things I’m about to say will almost certainly be common knowledge to anyone who has used Nagios before, but I’ll say them anyway.
In short, Nagios is a network/server monitoring tool. It’s web based and can monitor almost any network device. It comes with dozens of modules included, to monitor things with something as simple as a ping, to more complicated tests such as executing MySQL queries.
A friend of mine runs a web design and hosting business, and I look after his Linux boxes and some aspects of his network infrastructure in the data centre. He asked me to look into a monitoring tool for his various devices, which include Windows servers, Linux servers, managed switches, routers and firewalls, a couple of NAS boxes and some data centre kit such as an IP KVM and PDU.
I had heard of Nagios before but never used it, so I thought I’d give it a go. I was delighted at how easy it was to compile and install on CentOS, and to get a handful of basic tests set up on localhost. A small amount of fiddling later, I had the majority of the “advanced” tests set up, such as monitoring of HTTP, FTP, MySQL and other services on the Windows boxes. A slightly larger amount of fiddling later and I was interrogating several of the infrastructure devices for SNMP.
I was also very pleased at how modular and extendible the system is. Each test is simply defined in a config file, and an appropriate executable for the test is provided. By “executable” I mean anything that can be called by Nagios, and provides a return code for yay or nay. Many of the included executables were binary files, but I found many free downloadable modules online, many written in Perl. I have written some of my own in bash and Perl.
I’ve also downloaded other extensions, such as the ability to have an RSS feed of status alerts.
If any of the Nagios developers read this, well done, and keep up the good work. This is the ideal tool – quick to set up, yet with endless possibility for expansion once you have a little familiarity.