21. 12. 2012 Michael Medin NetEye, Unified Monitoring

NSClient++ 0.4.1 released!

NSClient++ founder Michael Medin

NSClient++ has for many years been the de facto way to monitor Windows machines from Nagios derived monitoring solutions such as Neteye, which over the past years has integrated various additional functionalities in its offer. With the new version (0.4.1) we are now moving steadily from “just a windows agent” to become versatile tool to help you simplify your monitoring by adding protocol independence platform independence as well as modern monitoring paradigms such as state full scripting and real-time monitoring. This post will go through many of the major changes from the previous stable version (0.3.9) and while it is not intended as a hands on tutorial or an upgrade guide it will hopefully give you a good idea about the new features introduced. A tutorial for how to upgrade will be posted soon so please stay tuned for that.

The core
The main change in 0.4.1 (and 0.4.0 as well) is that much of the  internals have been replaced with standard libraries meanings things  should work much better. It also means things are a lot more extensible  and customizable meaning this is the most power-full NSClient++ yet.  Another new change is the configuration which introduces a new  hierarchal ini-format as registry support. To help with managing the  configuration the new version has extensive command line support for  validating, generating, migrating and documenting the configuration.
Lastly the new version boost a much improved command line syntax making  it a joy to work with NSClient++ from the command line as well as Linux  support.
All in all 0.4.0 was the biggest change ever in the history of  NSClient++.

An interesting side effect of the new core is platform independence  meaning you can now use NSClient++ on Linux (and while not all modules  are supported more are added in each new version) I also start to  incorporate real-time checks starting with event log monitoring.  Last but not least over 10.000 unit test was added to help improve code  quality and reduce the number of regression issues.  Just a final reminder the configuration file format has changed but the  old (nsc.ini) is still supported and more importantly you can easily  migrate to the new (nsclient.ini) format. Please note that while you can  use both and migrate between them they are not compatible as both keys  and section names have changed their names.

In the check department we have a lot of new features. in general the  shift towards real-time monitoring is continuing as well as the focus to  modernize and provide plattform independence for checks. The first brand  new platform independent module is ChecklogFile which provides similar  features as CheckEventLog for checking text (log) files. This module has  a new improved syntax over CheckEventlog which will be added to  CheckEventlog (and many other modiules as well) if deemed a good  interface.  To seamlessly integrate real-time monitoring in “active” (aka NRPE)  style setups we have provided another new module called SimpleCache  which can be used to stor real-time results for checking via for  instance NRPE.
The combination with the cache and the two log file checks provides a  way to efficiently process massive file with millions of lines without  impacting system performance.  In addition to this we also introduce the SimpleFileWriter module whch  can direkt the results to a file similar to what NSCA server does on  Linux. This means in theory NSCLient++ could now replace NSCA server  component.  In addition to this there is there usual myrriad of bug fixes and  enhancments.  The most notable enchantment is the performance counters which are now
working (again) on various localized windows.  Also don’t forget to lookinto the varoous commad line helpers such as  “nscp sys” and “nscp eventlog” and “nscp wmi” for helping you diagnose  and configure checks as well as even provide unit testing for your  monitoring enviornment.

One of the major features in this category is the new Python script  support as well as Lua support. The scripts are running inside  NSClient++ which means you have access to all parts of NSClient++ as  well as full support for state. In addition to this we have full dot-net  support as well as a new sample plugin.

A lot of new protocols were added bringin the supported list to NRPE,  NSCA, NRDP, NSClient (check_nt), SysLog, SMTP, Graphite, check_mk. In  addition to this another big focus was improving quality as well as add  real security in the form of FULL ssl support including certificate  based authentication.  Other notable fixes and enchantments include full ipv6 support as well  as retry handling to better cater for network issues as well as prop-per  timeout handling.

Command line syntax
This has been a big focus are and the new command line syntax  improvments makes this the first time I can say that it is a joy to work  with the command line I have almost entirely tarted to use the command  line for configuration changes for instance. We have also introdiuced a  myrriad of wys to work with your settings file including vlidating,  generating and even removing all default values (good to cleanout your  config file). hopefully this will help resolve your configuration  issues.  The most important thing to understand avout the new configuration  syntax is the use of the double dash (–) which can be a bit confusing  to the cashual observer but in essence it is pretty straight forward  everthing after the double dashes are sent to the module anything before  “will be interceptetd if understood by NSClient++”. est way to  illustrate this is comparing “nscp nrpe –help” with “nscp nrpe —
–help” where the first will give you information about how to  configutre logging and loading settings file and what not where as the  latter gives you the NRPE options such as host port command and arguments.

Bulding and writing plugins
Building NSClient++ is now a breeze on both Linux and Windows due to  some nifty helper scripts (I am looking at you fetchdeps.py) and there  is a fully fledged (not really) sample plugin if you want to try out writing custom plugins. I have also fixed almost all -Wall warning on gcc so should look nice when you compile now. I also have for internal use setup on-commit builds in Ubuntu, debian and centos so seems we are well underway to have a stable Linux enviornment. I am still lookig for insight into how better turn NSCLient++ into a nice option on the Linux side as well.

Michael Medin

Michael Medin


Michael Medin

Latest posts by Michael Medin

21. 12. 2012 NetEye
NSClient++ 0.4.1 released!
21. 12. 2012 NetEye
NSClient++ 0.4.1 released!
See All

Leave a Reply

Your email address will not be published. Required fields are marked *