Search This Blog

Wednesday, July 23, 2014

Book Review -- Learning Nagios 4 by Wojciech Kocjan




Summary

Learning Nagios 4 by Wojciech Kocjan documents the new Nagios 4 project, released in September, 2013. It is a practical guide written by an experienced Nagios administrator in a format more practical than the technical documentation provided by the project maintainers. It is useful not only for those new to Nagios, but as a comprehensive continuing education review of the Nagios 4 milestone release. Its structure begins with the basics and proceeds through the most important advanced and add-on features that make Nagios such a powerful systems monitoring tool.

Review

Learning Nagios 4 by Wojciech Kocjan is an ambitious project. Its preface sets out its goal: to be a practical guide for setting up Nagios 4. It begins with installation, describes the tools available and their configuration and concludes with more advanced topics such as programming service checks and using query handlers. In between, it systematically covers the most important tools available to the sysadmin and how to use them. If that scope sounds ambitious, its 400 page length presages the thoroughness of its content.

Although there is abundant documentation available from the project maintainers, that documentation is thorough, almost too much so. Equal weight is given to the less-commonly used options in that documentation, and reading it can become a burden. Kocjan's book, by selecting the most important topics, is better focused for practical implementations. The book thus achieves a practicality that only an experienced professional can attain.

Nagios 4 -- a September 2013 milestone release -- is a good point for experienced administrators to review the application from the basics up. Periodic continuing education is important and milestone releases are an appropriate time to thoroughly review skills from the foundation up. Yet the book is also written at a level appropriate to new Nagios administrators. While a thorough knowledge of basic Linux skills is necessary, even those unfamiliar with Nagios will be able to build a monitoring system. While stating it is focused on Ubuntu, there is adequate discussion of installations from source and RPM-based distributions for administrators of other Linux distributions to understand Nagios. However, there are likely details specific to those other distributions that are not covered and will require additional research on the administrators part.


Installation and Configuration

The book begins with basic installation and configuration tasks. The author's experience is evident. While some of the material looks like it is drawn directly from the maintainer's documentation, the format is much more practical. As opposed to the topic-based organization of the maintainer's technical documentation, the author's format is organized in an order that reflects a real-world implementation. For instance, the author includes a concise discussion of topology definitions with host definitions -- the point at which an administrator would define topology. Descriptions of the web interface and basic plugins follows. These are illustrated with practical examples.

The author proceeds with advanced topics, such as organizing definitions in a maintainable manner with suggested sets of definitions and version control. Indeed, troubleshooting a Nagios installation that is not well organized will invariably add a great deal of time simply searching for errors in a poorly organized system. That organization is the foundation upon which more advanced definitions such as dependencies and templates are built.

Having established a well-defined framework, the author then addresses the whole point of a monitoring system: events, notifications and escalations and event handlers. These are also illustrated with practical examples. Event handlers are often afforded only light coverage in Nagios manuals; that is not the case here. Event handlers a a Nagios strength that automate responses to events; the code required to restart a web server serves as an example. Adaptive monitoring is also often overlooked altogether, but is adequately described here.


Advanced Nagios 4 Configuration and Features

Establishing this solid foundation is only half the book. The second half explores much more advanced topics such as workload distribution, scalability and extending Nagios to monitor additional platforms.

The Nagios Service Check Acceptor (NSCA) is more difficult to understand and implement, but the author does a good job explaining and providing an example. So, too, is the description and illustration of load distribution using ssh and the Nagios Remote Plugin Executor (NRPE), preferable to ssh because it reduces Nagios server overhead. SNMP is a protocol that, well-implemented, affords a great deal of availability and performance data. However, it can be a bit difficult to learn and understand. Here, the author's experience is evident as the text provides a very practical, understandable and thorough description of the protocol and its application.

Finally, the last quarter of the book addresses the most advanced topics, such as Windows, distributed monitoring, programming and query handlers.

Windows is ubiquitous in the enterprise, but requires expertise to monitor using Nagios. NSClient++ is the agent used and it provides NSCA, NRPE and other functionality. It also acts as an "interpretor" for Nagios to record Windows-specific data. Yet here, the author does not explore deploying and maintaining NSClient++ using Active Directory Group Policy Objects. Rather, the example provided is limited to manual installation and configuration -- an onerous and possibly impractical task for a Windows enterprise. However, the descriptions and examples provided are otherwise thorough and practical.

Distributed monitoring is discussed only at a high level and examples are rather basic. However, implementing a distributed Nagios implementation is a complex task worthy of a book itself. This book lays out the reasons and higher-level architecture of distributed Nagios well enough for an administrator to recognize when it is required and with the necessary architectural understanding to research and design it.

Programming, too, is covered at a high level. Several languages may be used and the author uses C for examples. Examples include web services, VMWare and Amazon Web Services -- topics of current and practical interest.

The book ends with a discussion of Query Handlers -- a feature new to Nagios 4. Think of it as a Unix domain sockets communications implementation for Nagios. Query Handlers, using tools such as the Nagios Event Radio Dispatcher (NERD) and Google's open source Gource provide a framework to receive real-time updates from Nagios.

Conclusion

Learning Nagios 4 has an ambitious scope. Kocjan has the experience to deliver a thorough and well-organized book.  The expertise is apparent from his recommendations for organized definitions and the logic flow of the presentation.  The book is detailed enough for a new Nagios administrator to learn the application quickly.  There is enough detail for seasoned administrators to learn about advanced features and how they are implemented.  Even experts can benefit from a top to bottom review of the milestone Nagios 4 release.

No comments :

Post a Comment