(For this book review, Packt Publishing offered me a free eBook edition of “Instant OpenNMS Starter” as well as a free Moodle eBook since they knew I’ve been looking at Moodle for a client. The review is written completely impartial and no expectation of bias was expressed by Packt Publishing in spite of the complimentary copies of their books.)
Instant OpenNMS Starter is one title in Packt Publishing’s line of “Instant” books. The book is a mere 60 pages long and was published in June of 2013. I recently had to work with a greenfield OpenNMS deployment for a small office and was shocked at the lack of learning resources for the software.
Usually a FOSS project of the size and tenure that OpenNMS is would have a large library of books, both officially published and community created. OpenNMS seems to be rather behind in the documentation department compared to other similar projects. This book is a welcome addition to the meager resources available to learn about such a long-lasting and truly FOSS NMS.
Packt publishing offers their eBooks in ePub, mobi, and PDF. I was thus able to read this book on my eInk Kindle Touch, which I was happy about.
It’s not really organized by chapters. It’s essentially one big chapter titled “instant OpenNMS Starter” with multiple bullet points underneath it. A look at the table of contents on the Packt Publishing website confirms that it’s merely a long bulleted list of different bite sized topics.
Manage your expectations
It is self evident, based on the title of the book and page count, that this is truly a quick start guide. This is not a book that attempts to exhaust anything. Fast readers can finish this book in a lunch break. I’m a slow reader preferring to dawdle and pause as I Google topics that intrigue me in the pages. Even so, it took less than three hours for me to finish.
Based Upon a Creaky Foundation
A lot of the Instant OpenNMS Starter is based upon the OpenNMS documentation / wiki, which is notoriously slim. The first quarter of the starter, mostly referring to how to install OpenNMS, will often reference the documentation, which is somewhat rough. I’ve implemented OpenNMS myself based on the documentation and was underwhelmed.
At times in the Instant OpenNMS Starter it will admit that certain features of OpenNMS are sparsely documented and that you’ll simply have to look at existing code and config files to figure it out on your own. An actual quote from the book concerning polling custom services says ”…good documentation for achieving this is missing at the moment.” In another location, the use of actiond and scriptd services for automation is touched upon and then left as an exercise to the reader saying: “The little documentation on how to achieve this can be found at…” along with a link.
But Wait! It’s Actually Good!
Okay, so at this point maybe I’ve sounded a little pessimistic. I don’t mean it to sound that way at all. The book is well done and fills a gap that exists in regards to getting people up and running quickly and reliably with a broad base of understanding that they can move forward with.
It initially starts with a general overview of what OpenNMS is and what niche it fills. It mentions the ITU’s landmark document “M.3010: Principles for a telecommunications management network” and how OpenNMS conforms to it. It briefly mentions FCAPS and OpenNMS’s role to play in that framework.
After those very briefly touched upon topics, it launches a quick introduction on how to install OpenNMS, including selecting the JDK, configuring PostgreSQL a little bit, and finding proper repos. Once that’s done, it introduces you to some overall concepts in the OpenNMS world. In so doing, it uses the theoretical situation of an IT services company that has their own infrastructure to manage as well as customer services to watch over. I found that bit of realism very helpful, even in such a brief book, to make the bite-sized concepts gel.
The web user interface is touched on, host discovery, and some of the “out-of-the-box features” like events and alarms are introduced. After that, more advanced topics are brushed over such as how to organize users in groups and use categories to make a hierarchy of notification paths. All the while the scenario of an IT services company is used to show brief, real-world use cases for these features.
Then comes the largest single portion of the book, the meatiest section, “Top 5 Features You Need to Know About.” Those five features are, in order:
- Service Assurance Through Polling
- Data Collection Through Collectors
- Thresholds and Notifications
- Events, Alarms, and Automations
Each of those sections gives you point by point insight into the basics, and sometimes the intermediate insights, of the topics at hand. I was impressed that most times the actual .xml config files were explored rather than simply showing how to do something in the web GUI. Even automation (a sparse feature in OpenNMS) was explored a bit, including making custom actions that execute SQL queries.
This is what has been needed in the OpenNMS community for people just getting off the ground. In my experience as just such an individual not too long ago, there is no sufficient quick start guide in the official OpenNMS wiki that is broad, thorough, and accurate enough to get you started on a solid course to continuing education. There were parts of the book that had some rough grammar, tense, and even doubled words, but those are minor editorial mistakes that I’m sure will be taken care of shortly and they certainly don’t detract from the meat of the book.
At many points during the few hours it took to finish this book, I found myself saying “Ohhhh! So that’s how it works…” and this is after having spent hours scouring the wiki, implementing OpenNMS myself, and working with it for a short time. If you are new to OpenNMS or considering it, I don’t think you could go wrong by spending a lunch break reading through this. You might get some good ideas on how to take your implementation of OpenNMS to the next level. The Instant OpenNMS Starter won’t take you there itself, but it will give you pointers to a few good paths that you can walk yourself down.