Linux

Learning more about Nagios for server monitoring

If you use Nagios for server monitoring, you know it's a very powerful tool, but the learning curve can be steep for newcomers. Vincent Danen reviews a resource for Nagios beginners -- or for those who want to learn how to get the most out of this software.

Being an avid Nagios user, and using it to monitor a number of machines both on my local network and remote ones that I am responsible for, I was pleased to get my hands on the book Learning NAGIOS 3.0 by Wojciech Kocjan (ISBN 978-1-84719-518-0, published by Packt Publishing). This book is all about Nagios: how to set it up, configure it, and use it.

The book is not overly large, weighing in at just under 300 pages and the font size is quite large, making it easy reading. While it might not be a book you read cover-to-cover, it makes a great reference book if you're either starting with Nagios or want to learn more about how to get the most out of it.

Nagios has been the subject of a few prior tips, so to quickly recap, it is a monitoring service that is built on an extensible plugin architecture. With it, you have the central Nagios server, which executes various checks to determine whether defined services are in an OK state, a warning state (overloaded systems, slow services), or a critical state (services unavailable, too many resources used). It includes a Web console that can be used to view statistics and real-time monitoring output with the option of executing additional plugins (like sending an e-mail) on predefined criteria, such as a server being unavailable.

As a result, Nagios is quite highly recommended when monitoring multiple servers or services, but the learning curve can be quite steep. It is not the easiest piece of software to configure. This book takes a lot of the sting out of the process with easy-to-understand discourse on various configuration options and scenarios. It also includes many examples that make real-world configuration a snap.

The book carries you from the initial installation and configuration in the first two chapters, to a detailed discourse on using the Web interface and all the features available through it, such as scheduling downtime for hosts, obtaining information on services and hosts and, more importantly, how to use that data.

The next chapter goes into detail on the various Nagios plugins and how they are used. The three chapters after that go into more advanced configuration options such as how to properly structure configuration files to make them easy to manipulate and understand, as well as defining custom templates and variables. It discusses how to handle notifications and events and how to define handlers that deal with such events. Next it goes into how to set up passive checks and use NCSA, the Nagios Service Check Acceptor which can be used to send the results of local checks to a centralized Nagios server. This leads into the next chapter which discusses how to monitor remote hosts which may call for using passive checks. It also illustrates various scenarios using different technologies.

The ninth chapter discusses using Nagios to monitor devices using SNMP, and the chapter after that discusses more advanced monitoring scenarios. The final chapter discusses how to write your own plugins and further extend Nagios functionality.

All told, this book makes for great reference material with a few caveats. The technical information in the book is sound, and is quite useful for anyone interested in Nagios -- from beginners to experienced Nagios users. The editing of the book, however, left a little to be desired and often drew a wry chuckle or a shaking head. Typos and poor grammar are present more than they should be; the back of the book alone contains three grammatical or typographical errors and may be enough to turn prospective readers off. If you are able to get past the grammatical and typographical errors, the spelling mistakes, and the odd misprint (i.e, referring to IMAP4 as POP4), the book can be a very useful resource.

Delivered each Tuesday, TechRepublic's free Linux and Open Source newsletter provides tips, articles, and other resources to help you hone your Linux skills. Automatically sign up today!

About

Vincent Danen works on the Red Hat Security Response Team and lives in Canada. He has been writing about and developing on Linux for over 10 years and is a veteran Mac user.

3 comments
mmatchen
mmatchen

I've tried cacti and while researching installation tips in the cacti forums, I found a nice WinInstaller. Cacti also uses SNMP for monitoring and is customizable with MIBS data and perl scripts. Has anyone compared Nagios with cacti, and if so, which one do you prefer?

bridso_b
bridso_b

The learning curve plots time on the X axis and competence on the Y axis. It is desirable to get to a high level of competence in a short period of time. A STEEP learning curve would thus be a GOOD thing -- it would mean that a lot of learning would take a short period of time. OTOH, a long, gentle learning curve would be BAD -- it would indicate that it takes a long period of time to reach competence.

pgit
pgit

The better analogy would be it's a tall fence to climb. I banged my head against nagios on and off for a couple of months. Alas my curve was somewhat flat. Sure, anyone can write up config files verbatim out of tutorial or book, but wrapping my head around it to the point of familiarity hasn't been in the works thus far.