Well, I have spent a few days now working on converting parts of the wiki documentation to rst and now I will publish the first version of the documentation http://docs.nsclient.org/
Please understand that this is the first version so many pages are still missing and some parts of it are not formatted properly and the index is rubbish. But I figured I would get some feedback from the community in the mean time.
Also note that while this documentation is the for the up-coming 0.4.2 much is still valid and relevant for the current stable 0.4.1 as well so please spend some time to brows through it and let me know what you think!
A new version of 0.4.1 is now available fixing a number of issues as well as some minor enhancements.
The main enhancements are:
- Encoding support. Encodings are now supported via NSCA/NRPE as well as external scripts meaning you should be able to resolve any encoding issues.
- NSCA hostname can now be made upper or lowercase (using auto schemes)
For full details read the full change log at the end.
I have for the first time ever started to work more proactively on documentation. This means I will soon be shipping proper documentation starting with 0.4.2. It also means the wiki as documentation will be abandoned instead a new documentation only site will be launched. The documentation system is sphinx which is the one python use so hopefully it will turn out as nice documentation.
A preview of the documentation is deployed here (please understand that is is all very temporary) so feel free to let me know what you think: http://www.nsclient.org/trac/tmp/
once it is improved and I have resolved the auto documentation issues it will be moved over to http://docs.nsclient.org
Full changelog of 0.4.2.101:
2013-05-18 MickeM * Fixed issue with NSCA hostname * Fixed "ok ping" date handling in real-time check_log_file 2013-05-05 MickeM * Fixed a bug in the check_logfile which made filtering bail-out after the first hit. * Added default column-split as \t 2013-04-30 MickeM * Fixed issue with negative performance data * Added unit test for arguments and external script * Fixed truncation issue with performance data (#624) 2013-04-27 MickeM * Fixed bug added in build 95 regarding allowing nasty characters 2013-04-24 MickeM * Added auto-uc to get hostname as upper case 2013-04-23 MickeM * Added encoding option to external scripts * Added encoding option to NSCAClient * Added NSCPDOTNET.dll for making dot-net plugins 2013-04-22 MickeM * Fixed an issue with % in warn and crit thresholds for CheckCPU 2013-04-21 MickeM * Fixed issue with eventlog reset (will not rescan from the beginning if an error is encountered) 2013-04-16 MickeM * re-added check_nt FILEAGE option. 2013-04-13 MickeM * Fixed issue with binding to multiple interfaces (ie. machines with both ipv6 and ipv4 addresses). * Fixed some missing documentation from core settings keys such as /settings/log and /includes. * Added debug message warning about having $ARG??$ in external scripts wehn allowe arguments is false. * Removed need to escape and qoute commands for external scripts (command line will now be used as-is) * Fixed qouting issues with external scripts 2013-01-21 MickeM * Fixed two include files issues 2013-01-19 MickeM * Fixed Wix 3.7 and added wix to dependencies
Some bugs sneaked in to the previous release candidate as well as another issue fixed.
The full change log for this update (since previous RC is):
2013-04-30 MickeM * Fixed issue with negative performance data * Added unit test for arguments and external script * Fixed truncation issue with performance data (#624) 2013-04-27 MickeM * Fixed bug added in build 95 regarding allowing nasty characters 2013-04-24 MickeM * Added auto-uc to get hostname as upper case
A new update for 0.4.1 is available as a release candidate now. If no one reports any major bug this build will be released as an update to 0.4.1 in a week or so.
So please everyone help out and make sure there are no major bugs and/or issues. This contains some bugfixes as well as a few enhancements some of the highlights are:
- Encoding support (for External scripts as well as NSCA)
- Eventlog reset issues for realtime monitoring
- Readded the check_nt -v FILEAGE check
- Qouting of command lines now works
- No works with both an ipv6 and ipv4 interface
The full changelog is here:
2013-04-23 MickeM * Added encoding option to external scripts * Added encoding option to NSCAClient * Added NSCPDOTNET.dll for making dot-net plugins 2013-04-22 MickeM * Fixed an issue with % in warn and crit thresholds for CheckCPU 2013-04-21 MickeM * Fixed issue with eventlog reset (will not rescan from the beginning if an error is encountered) 2013-04-16 MickeM * re-added check_nt FILEAGE option. 2013-04-13 MickeM * Fixed issue with binding to multiple interfaces (ie. machines with both ipv6 and ipv4 addresses). * Fixed some missing documentation from core settings keys such as /settings/log and /includes. * Added debug message warning about having $ARG??$ in external scripts wehn allowe arguments is false. * Removed need to escape and qoute commands for external scripts (command line will now be used as-is) * Fixed qouting issues with external scripts 2013-01-21 MickeM * Fixed two include files issues 2013-01-19 MickeM * Fixed Wix 3.7 and added wix to dependencies
I guess the biggest news is that I will once again be attending the Open Source System Management Conference 2013 in Bolzano Italy. So if your near Italy please come by (it is free) and feel free to bump in to me if you have any thoughts, ideas or questions.
You can find more information here http://www.wuerth-phoenix.com/de/loesungen/system-management/nagios-event/die-ausgabe-2013/. And please note that even though the page is in German the conference it self is translated into German, Italian and English meaning it is open to most people in the region.
Also I am now officially back from my vacation and have hopefully responded to most questions from when I was gone if I have accidentally missed your question please don't hesitate to bump it to the top and I shall answer ASAP!
I will hopefully in the next few weeks have some news on the up-coming 0.4.2 version which will be the net major version of NSClient++.
Just to let people know the reason I have been offline is due to some vacationing in China and Vietnam. Unfortunetly the internet situation here is not what it is in europe, parently the meain telco only has "G3" which I guess is chinese for making people think GPRS and edge is really really fast (it is not).
And to top it off I lost my phone in a cab in Vietnam!!! (AGH!!!) so I only have sporadic acess to internet. So I probably wont resond till I get back in a week or two.
But right now I dont really care! I am in heaven! Shenzhen, where they sell lots and lots and lots of cool stuff!
Happy (lunar) new year greetings from Dongxing, Guangxi, China!
(P.S. Yes i am still on vacation...)
A new build (0.4.1.90) (build means bug fixes and minor tweaks) is out: The following new features:
- nsclient-full.ini is now whipped with the installer to give you some copy-pasting inspirations.
- Reload support from script (if you want to reload config in runtime)
- Encoding support for NRPE
- scan-range for CheckEventLog to severely reduce the load and resources required when checking eventlog.
As well as some bugfixes for details see the full changelog below.
I would also take this opportunity to say I will be vacationing for the next month so don't expect much in the ways of updates or changes or fixes (or answers) in that period. If it is urgent please email me (michael AT medin DOT name) and I will try to respond as quickly as possible (please tag email with NSCP or NSClient++ to reduce risk of it being ignored).
Also if you haven't noticed I did some 0.4.2 commits yesterday which is the fruit of a massive refactoring effort to add documentation and new command line parser for all internal commands, very nice now you can do:
To get help!
2013-01-21 MickeM * Fixed two include files issues 2013-01-19 MickeM * Fixed Wix 3.7 and added wix to dependencies 2013-01-17 MickeM * Added nsclient-full.ini with "all" (non advanced) avalible options. * Fix for reloading settings from file from script: core:reload('settings') will not work. Notice it still will onlya reload the settings not the modules so modules have to be reloaded manually. * Fixed return code issue in nsclient-ini full generator. * Added support for delayed reloading 2013-01-13 MickeM * Fixed crash when collector thread is not started. 2013-01-02 MickeM * Fixed message dialog when loading PythonScript module without python installed. * (re)add check_fiulesize which was accidentally removed. * Fix for http settings * fix for --version command line option 2012-12-28 MickeM * Reverted default NRPE encoding to "system" (not UTF-8). * Added new option to configure NRPE encoding: [/settings/NRPE/server] encoding = utf8 Valid values are currently system and utf8 (and strangely enough utf7). If you need something else let me know. 2012-12-25 MickeM * Added option scan-range to CheckEventLog. This new option reduces the entries scanned a *lot* and can help solve memory, time and CPU issues. The idea is that is negative we start scanning from the end and once we hit something outsiden the range we stop scanning. There is a chanse that entries reported are "outside" the range so set range bigger then generate/written date/times (to reduce this risk). CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -1h AND level eq 'info'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)" Executes in 7 seconds adding scan-range=-5h executes in 0 seconds (yields the same result). * Added error message when overriding a commad (ie. when alias check_cpu overrides the new command check_cpu). Wont work (for technical reasons) for duplicate aliases ie.- alias x=foo and x=bar
Since I managed to get NSClient++ to build with Visual Studio 2012 I created a guide to help me (and other people) set things up correctly. It requires some hands-on mainly due to some of the dependencies from Google not working correctly with 2012. But this means you can build NSClient++ on Windows for free''' which I think is really nice. So now there is no reason at all not to help out!
Find the guide here: build/express2012
I started to write a guide about migrating to 0.4.1 (from 0.3.x) so if you are upgrading please read through that first to give some understanding and insight into what has changed and how it affects you as well as some info on whats to come soon.
As always please feel free to comment and let me know what is needed. I hope to add/update it a bit more during the week end.
Since I got a lot of questions (the chat thing really works!) I posted on my blog about using external scripts with NSClient++.
The biggest reason for Nagios success is the ability to extend it with custom scripts which makes it one of the most powerful monitoring systems. Now Nagios is not the only place where you can extend your monitoring! NSClient++ provides many ways to extend it with scripts and since I have gotten many questions about how to use scripts with NSClient++ lately I have decided to write this tutorial to help sort out the concepts.
Read the entire post here: http://blog.medin.name/2013/01/28/scripting-on-the-windows-side/
Hello everyone (read google bot)!
Just thought Id let you know whats happening lately, I have been working a lot with 0.4.2 on the documentation generation and managed to add almost all "kinds" of modules now (still some loose end with the Client interface). This means I will very soon (read in the next week or so) update ALL the documentation to reflect the new version of NSClient++.
So please have a look at the converted pages and let me know what you think about the content.
If you havent noticed one of the big changes in 0.4.1 is that configuration is now self documenting and for 0.4.2 the idea is that ALL commands will be slef documenting. This means all commands will support "check_xxx help" which will return a list of available options and they can be used for. I hope this will both simplify my life but also create a much higher quality documentation!
0.4.2 will "hopefully" also ship with proper reference manuals (so you wont have to go to the wiki quite as much)!
Hello, a few bug fixes and minor improvements to the 0.4.1 branch ready for testing. If nothing major is reported I will release this in a few days.
- New option which can drastically improve CheckEventLog performance scan-range
- Sample config with "all" options
- Encoding support for NRPE
- No more loading issue in PythonModule? if python is not installed.
- Some additional bug fixes
Full change log:
2013-01-17 MickeM * Added nsclient-full.ini with "all" (non advanced) avalible options. * Fix for reloading settings from file from script: core:reload('settings') will not work. Notice it still will onlya reload the settings not the modules so modules have to be reloaded manually. * Fixed return code issue in nsclient-ini full generator. 2013-01-13 MickeM * Fixed crash when collector thread is not started. 2013-01-02 MickeM * Fixed message dialog when loading PythonScript module without python installed. * (re)add check_fiulesize which was accidentally removed. * Fix for http settings * fix for --version command line option 2012-12-28 MickeM * Reverted default NRPE encoding to "system" (not UTF-8). * Added new option to configure NRPE encoding: [/settings/NRPE/server] encoding = utf8 Valid values are currently system and utf8 (and strangely enough utf7). If you need something else let me know. 2012-12-25 MickeM * Added option scan-range to CheckEventLog. This new option reduces the entries scanned a *lot* and can help solve memory, time and CPU issues. The idea is that is negative we start scanning from the end and once we hit something outsiden the range we stop scanning. There is a chanse that entries reported are "outside" the range so set range bigger then generate/written date/times (to reduce this risk). CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -1h AND level eq 'info'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)" Executes in 7 seconds adding scan-range=-5h executes in 0 seconds (yields the same result). * Added error message when overriding a commad (ie. when alias check_cpu overrides the new command check_cpu). Wont work (for technical reasons) for duplicate aliases ie.- alias x=foo and x=bar
Just released a new nightly build which adds two new features:
- New option for CheckEventLog scan-range to help combat issues with high memory usage, high CPU load and/or similar issues. The option can be used to reduced the entries scanned when scanning the event log and mor importantly start scanning from the end do if you have large enevtlogs this will save you a lot of computing time. Essentially if you set scan-range=-2d the log will be read backwards and as soon as an entry older then 2 days is found it will stop scanning. The potential drawback is that there is no guarantee that entries are ordered so setting this close to your filters might miss entries.
- A minor change which will create an error when a duplicate command is added which makes it simpler to detect aliases which override internal commands.
2012-12-25 MickeM * Added option scan-range to CheckEventLog. This new option reduces the entries scanned a *lot* and can help solve memory, time and CPU issues. The idea is that is negative we start scanning from the end and once we hit something outsiden the range we stop scanning. There is a chanse that entries reported are "outside" the range so set range bigger then generate/written date/times (to reduce this risk). CheckEventLog file=application file=system MaxWarn=1 MaxCrit=1 "filter=generated gt -1h AND level eq 'info'" truncate=800 unique descriptions "syntax=%severity%: %source%: %message% (%count%)" Executes in 7 seconds adding scan-range=-5h executes in 0 seconds (yields the same result). * Added error message when overriding a commad (ie. when alias check_cpu overrides the new command check_cpu). Wont work (for technical reasons) for duplicate aliases ie.- alias x=foo and x=bar
Welcome to the all new stable version of NSClient++
0.4.1 is finally released it has been a long ride and it is fashionably late as always. but hopefully the delay (which has been very intentional) will help reduce the number of critical bugs encountered by people upgrading. Speaking of upgrading I will post a tutorial about how best to approach that later this week. But first off lets briefly discuss how NSClient++ has evolved sine 0.3.9.
Not your fathers NSClient++
While this post focuses on whats new in 0.4.1 I will begin by giving a quick recap of whats new in 0.4.0 since the previous stable was 0.3.9. The main change in 0.4.0 was the rewritten "core" as well as many of the home brew utility classes was scrapped in favor of boost. And while all this is mainly internal changes a lot of things now work the way it should and a lot of edge cases will no just work since it is standard library function and not custom written code. While I did this I also reworked the settings subsystem to be hierarchical as well as self-documenting. All in all 0.4.0 was the biggest change ever in the history of NSClient++. A lot of new protocols was added as well making the list: NRPE, NSCA, NSClient (check_nt), SysLog?, SMTP, Graphite. The extensibility was extended by adding support for internal python scripts as well as .net support. 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 platform 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 modules 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 store 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 which can direct 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 myriad of bug fixes and enhancements. The most notable enchantment is the performance counters which are now working (again) on various localized windows. Also don't forget to look into the various command line helpers such as "nscp sys --help" and "nscp eventlog --help" and "nscp wmi --help" for helping you diagnose and configure checks as well as even provide unit testing for your monitoring environment.
On the protocol side the main focus has been on security as well as fixing various bugs in the new protocol stack introduced i 0.4.0. This means we now have FULL ssl support including certificate based authentication. I would almost dare say that finally the tag line from the logo "secure monitoring deamon" is finally true! In addition to this we have introduced check_mk support (both client and server) as well we NRDP and Graphite. Other notable fixes and enchantments include full ipv6 support as well as retry handling to better cater for network issues as well as proper timeout handling.
one of the most notable feature here is the settings subsystem which has gotten a lot of fixes making it a lot easier to work with in addition to ini file we now support registry as well as remote http. But a lot of bug fixes has gone into the various components as well and hopefully most of the bugs introduced in 0.4.0 has been fixed. For me the most noticeable ting was the performance data parsing which had lots of issues in 0.4.0.
Command line syntax
This has been a big focus are and the new command line syntax improvements makes this the first time I can say that it is a joy to work with the command line I have almost entirely started to use the command line for configuration changes for instance. We have also introduced a myriad of ways to work with your settings file including validating, generating and even removing all default values (good to clean out your config file). hopefully this will help resolve your configuration issues. The most important thing to understand about the new configuration syntax is the use of the double dash (--) which can be a bit confusing to the casual observer but in essence it is pretty straight forward everything after the double dashes are sent to the module anything before "will be intercepted 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 configure logging and loading settings file and what not where as the latter gives you the NRPE options such as host port command and arguments.
Building 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 environment. I am still looking for insight into how better turn NSClient++ into a nice option on the Linux side as well.
NSCP-0.4.1.73 can be download can be done from the download section on this webpage or sourceforge (in a bit takes hours to upload to source forge).
The road ahead
Just a quick note about where we are aiming next. The work on 0.4.2 is well underway and where the main focus for 0.4.0 and 0.4.1 was improved "core" the main focus for 0.4.2 is improved check experience. There are four areas where I will make improvements:
- Improved module API allowing modules to do more tings as well as provide better documentation. The idea is that 0.4.2 will be able to generate full documentation form the code (not just for configuration). In addition to this the NSCP protocol will become stable and it will be possible to completely remotely administrated NSClient++ using command line interface remotely.
- Support for metrics. The current focus in NSClient++ is checks (ie ok or bad) but the vision is to start split checks and metrics meaning you will be able to write your own "check_counter" as a script utilizing only the metrics from the existing check.
- Port all checks to have a modern flexible syntax ALl checks should have the "modern" natural expression syntax for warn and critical thresholds such as "warn=any > 90% or 'c:' > 80%"
- Brand new windows subsystem and introducing a unix subsystem. This is the potential bad part, this means there might be changes in how check commands work but the idea is that 0.4.2 will making monitoring windows simpler especially on modern windows machines. Another vision is that it will make monitoring the same regardless of if it is unix or windows. We will also drop support for NT4 and possibly windows 2000 to some degree.
Completion: 0% (This is the big one, and possibly this will be done in two stages one for 0.4.2 and one for 0.4.3)
I expect to start releasing beta versions early next year and the initial focus will be on the three first ones since that is what will change the internals.
For a full list of changes please check the change-log as it has a detailed list of changes.
2012-12-18 MickeM * Fixed path issues in the installer * Fixed shortcuts in the installer * Fixed so clients can understand no prefixed arguments ie. ... -c nrpe_query -a command=check_ok host=188.8.131.52 2012-12-02 MickeM * Added option to disable new alias check_cpu and only register old ones CheckCPU [/settings/default] modern commands=false 2012-11-29 MickeM * Improved exception handling in server threads 2012-11-28 MickeM * Fixed crash in NRPE server when payload was to large (#585 #582) * Fixed issue with lua unit test * Added payload length simulation in lua unit tests (so it returns various payload sizes) * Added nscp.sleep to Lua scripts (but dont use as I will implement coroutines in 0.4.2) * Fixed registry settings bug * Fixed issue with parsin performance data with leading spaces * Fixed issue with rendering filters 2012-11-18 MickeM * Created nscpnobp.exe which is a version without break pad for older machines (windows 2000 and nt4). This can only be foundin the zip file (not the msi) * Added some missing file to zip * Removed counters.defs since it is not used anymore 2012-11-17 MickeM * CheckEventLog: Added debug message lisgin all loaded filters to make it simpler to detect missing once * SimpleCache: Added keywords not-found-msg and not-found-code option to configure the outcome of "item not found". check_cache index=foobar "not-found-code=Doch! item was not found" not-found-code=critical * CheckProcess is no longer case sensetive * CheckServiceState: added support for pending states 2012-11-16 MickeM * CheckDriveSize now supports regular expressiion filtering: CheckDriveSize ShowAll MaxWarn=1M MaxCrit=2M CheckAll=volumes matching=.*[CD].* 2012-11-15 MickeM * CheckFiles filter is now optional (not specifying a filter will find all files matching) * CheckFiles no longer matching . and .. 2012-11-14 MickeM * Added perf-unit to allow for stable performance data units (if not specified it will guess which is the current solution). checkmem type=paged MaxWarn=80% perf-unit=M => 'paged bytes %'=34%;80;0 'paged bytes'=8454.04M;19629.84;0;0;24537.3 checkmem type=paged MaxWarn=80% perf-unit=K => 'paged bytes %'=34%;80;0 'paged bytes'=8655200K;20100963.19;0;0;25126204 checkmem type=paged MaxWarn=80% perf-unit=B => 'paged bytes %'=34%;80;0 'paged bytes'=8872108032B;20583386316;0;0;25729232896 checkmem type=paged MaxWarn=80% => 'paged bytes %'=34%;80;0 'paged bytes'=8.25G;19.1;0;0;23.96 * Fixed threadding issue related to servers (ie. check_nt causing a crash) Dont know what I was thinking when I designed that, pretty stupid bug :( 2012-11-11 MickeM * Fixed issue with loading performance counters (check_cpu) * Fixed default service name (nscp) * CheckWMI: Added support for lists of integers 2012-10-25 MickeM * Fixed installer in preparation of 0.4.1 2012-10-15 MickeM * Added support for lists in targets/destination (passive checks/channels) * Added new --remove-defaults option when generating settings files. nscp settings --remove-defaults --generate * Added new module SimpleFileWriter for writing passive check results to files. * Fixed issues here and there (mainly new filtering for CheckLogFile) 2012-10-14 MickeM * Added support for real-time log file checks (Linux) 2012-10-07 MickeM * Added support for real-time log file checks (Windows) 2012-09-28 MickeM * Fixed NRPE and NSCA buffer issue: Invalid packet length: 1059 != 1036 configured payload is: 1024 2012-09-27 MickeM * Much improved CheckLogFile with warn/crit/filter concepts (currentl no real-time support) check_logfile debug "file=c:\\test.txt" "column-split=\\t" "filter=column1 eq '123' OR column(2) like 'bar' or column3 like 'foo'" "warn=column3 like 'foo'" "crit=column1 eq '123'" Use "check_logfile help" for more details 2012-09-25 MickeM * Initial version of CheckLogFile added (currentl no real-time support) 2012-09-23 MickeM * Fixed a centos (?) linkage issue with PythonScript module 2012-09-22 MickeM * Fixed performance data parsing for empty sections such as f=1;;;;1 will now work (and not become f=1;0;0;0;1) * Added unit test for perfoamnce data parsing * Added gtest unit test to ctest 2012-09-11 MickeM * Added NSCP uptime to check_nscp 2012-09-08 MickeM * Fixed log matching in CheckEventLog when no log was specified * Improved command line syntax for eventlog * Fixed return code issue in SimpleCache module 2012-09-08 MickeM * Improved command line help texts and added global --version option. Running nscp without options now lists all context and their use. * settings: bool options are now case insensetive so TrUe will now evaluate to true... * Improved clients command line interface adding support for default command * Improved command line syntax removing som extra printouts * Added support for lists (int and string) to wmi checks and commands. 2012-09-07 MickeM * Full SSL support for all server (NRPE, NSCA, check_mk, NSCP) by full I mean certificate based authentication 2012-09-06 MickeM * Full SSL support for all clients (NRPE, NSCA, check_mk, NSCP) by full I mean certificate based authentication 2012-09-05 MickeM * Full SSL support for NRPE (meaning certificate based authentication) 2012-09-04 MickeM * Fixed config parser issue for inheriated fields * Changed so ports in clients/servers are strings (so smtp and such should work) 2012-09-03 MickeM * New module SimpleCache which acts as a brdge between passive and active monitoring (and other use cases) Enables storing of results for later use Replaces check_eventlogcache (since it does the same) * REMOVED cache from check eventlog (use SimpleCache instead) 2012-08-26 MickeM * Added google test and the first (of many) google test unit case * Added SimpleCache module * Removed caching from CheckEventLog (use SimpleCache instead) 2012-08-26 MickeM * REMOVED global maximum age from real-time eventlog * Added per-filter maximum age option to real-time eventlog * Added per-filter log option to real-time eventlog (this can be set to "any" to make this match recoreds from all checked logs) * Improved fetchdeps script which now takes an option (--msver) to set target visual studio version (currently 2005 and 2008) * Added initial support for real certificates 2012-08-30 MickeM * Fixed issue with NSCA and AES encryption (still broken, but broken the way it was before) * Fixed issue with aliases in upperaase not working (#554) * Fixed (yet more) performance data parsing issues. 2012-08-25 MickeM * Added initial check_mk server CheckMKServer 2012-08-25 MickeM * Added initial check_mk client CheckMKClient * Added sample check_mk lua script 2012-08-23 MickeM * Added initial proof of concept for the check_mk client 2012-08-21 MickeM * Refactoring and cleanup of the lua scripting wrappers 2012-08-14 MickeM * New experimental way to build things automagically as well as new cleanedup build scripts. http://nsclient.org/nscp/wiki/build/04x#Automatic 2012-08-07 MickeM * Fixed issue with perfoamnce data overflowing 32-bit integers (#550) * Fixed issue with CheckUptime and time rendering beein wrong (#549) 2012-08-04 MickeM * Re implemented INSTANCES command via the new pdh exec subsystem. 2012-08-04 MickeM * Fixed exception with "nscp service" * Improved nscp settings so help is displayed. * Improved nscp settings so default action (no arguments) also lists all installed services. * Improved nscp settings to default list service nscp as well as legcy nsclientpp * Added initial retry (default 3) when sending data. * Fixed protocol issue in NSClientServer (should now work again) 2012-08-03 MickeM * Hopefully fixed the "cant load counter" issue by reowrking how counters are handled. 2012-08-02 MickeM * major improvments to the CheckSystem command line syntax: Run: "nscp sys" to get help. A good way to validate your CheckSystem issues are running the following: nscp sys --validate 2012-08-02 MickeM * Added so commandline parser will stop at .. and pass along all extra options to the module. So now you can do: (Notice the double --log where the first is a log arg and the second is a module arg) nscp lua --log debug .. --script foo.lua --log this-is-a-lua-argument But perhaps more importantly you can do: nscp lua .. --help Which previously would always give you "command line help" and not lua help. 2012-08-01 MickeM * Resolved issue with crypto++ on linux (introduced by buildspeedups) * Added so running "nscp settings" will list all loaded settins context (as a tree). Quick way to see where your settings are stored. 2012-07-31 MickeM * Fixed issue with files not copied by default build * Swapped graphite client to use UTC instead of local time 2012-07-30 MickeM * Restructured settings a bit removing dead code * Added nscp settings --validate to validate a given settings file listing all invalid (unregistered) keys. * Added SamplePluginSimple which currently is not very rich but at least has some comments to explain some of the things. 2012-07-29 MickeM * Tracked down a few memoryleaks when connections time-out. * Added testcases for connection timeouts in lua NRPE test suite * Improved the LUA module a bit 2012-07-26 MickeM * Fixed some memoryelaks in LUAModule * Extracted the test functions into a library * Added lib folder as search path for lua scripts * Tweaks and improvments all around * Improved the build scripts a lot making files work on linux (still need to manually build the targets though) 2012-07-23 MickeM * Added support for LUAScripts to linux enviornments (still a few warnings to sort out) * Improved lua unit test scripts * Added support for using member functions as handlers in Lua scripts 2012-07-17 MickeM * Performance enhancements to build time 2012-07-11 MickeM * LUAScript: Improved lua scripting module a lot * LUAScript: Added protocol buffer support to lua scripts * tests: Rewrote (halfway there) test_nrpe python script as a lua script. * CheckEventLog: Fixed command name when submitting real-time "no action checks" 2012-06-18 MickeM * Fixed issue with parsing in test mode * Fixed Graphite client using wrong time for datestamp * Added so debug NSCA logs host name 2012-06-16 MickeM * Initial (rather crude) NRDP support. 2012-06-16 MickeM * Merged in master branch * Fixed almost all -Wall warnings (the rest are probably not getting fixed in the near future due to their nature) 2012-06-12 MickeM * Improved error handling in performance counters #436 * Improved parsing of "legacy command lines" 2012-06-12 MickeM * Added log level = off to disable logging. * Added option in NSCAClient to hostname (auto-lc) to use lower case version of hostname. #533 * Reworked how commands are read. If a command is defined without a section (default) no section will be added and instead a comment will be addded on how to add the section. This should (I hope) resolve the "missing command" for good. * Improved error messages for missing commands * Fixed scientific notation on performance data (#) 2012-06-11 MickeM * Fixed some gcc compile issues * Fixed a lot of gcc -Wall warnings 2012-06-08 MickeM * Fixed some issues with real time eventlog. * Extended the event log unit tests to encompass the new real-time checks. 2012-06-01 MickeM * Tweaked all servers to use the new internals and added first testcase for NSCP socket 2012-05-24 MickeM * Reworked real time event log support to be a lot more flexible You can now specify all options on a "filter" level. * WARNING* Old syntax NOT supported (and will not upgrade) but hopefully not to many will be affected. * Added support for ipv6 allowed hosts validation 2012-05-21 MickeM * Sofia Born (My second daughter) 2012-05-19 MickeM * Fixed issue with checking rate counters (such as disk idle %) * Fixed (I think) the negative denominator counter issue * Fixed so indexes are only converted on \\123\\ and not also \\123 hello world\\ which caused some issues with numeric counter variables. 2012-05-13 MickeM * Take 2 on fixing the empty command parsing. * Refactored (same as with server) client internals to be more uniform (Again, next up are NSClient Server and NRDP) 2012-05-07 MickeM * Fixed parsin of empty sections (CheckExternalScripts) - #524 * Fixed so duplicate command are not created when both sections and shorthands are used (CheckExternalScripts) * Added a test to see if I can resolve the negative denominator issue. 2012-05-06 MickeM * Refactored server internals to be more uniform (This is the first step to adding more protocols like NRDP and unittests for check_nt) 2012-05-03 MickeM * Fixed issue with parsing size-type (usch as MinCritFree=10G)
I have posted yet another tutorial this time on using hte client interface to both use NSClient++ as a client but also how to create various forms of proxies and such as well as accessing the clients from scripts.
NSClient++ despite its name is most often used in server mode responding to remote calls via either NRPE or check_nt. The closest thing to a client we get in normal mode of operation is NSCA where we submit data back. But NSClient++ can act as a client as well which is not just something I use for unit testing but something which can actually be useful in your monitoring environment. A good example of a really useful feature is creating a proxy or use NSClient++ as proxies to add intelligence (see my post earlier on writing stateful scripts Enhance your monitoring with stateful scripts).
You can find the post here http://blog.medin.name/2012/12/16/putting-some-client-into-nsclient/
I wrote a tutorial on the new certificate handling in 0.4.1 and how to setup various forms of certificate based authentication.
NRPE is a common easy to use option for monitoring remote machines from Nagios or Icinga. Unfortunately NRPE, with out of the box setup, is not what I would consider secure. This tutorial looks at how you can secure your NRPE traffic by using NSClient++ both as a client and server (yes it runs on Linux as well) in conjunction with SSL certificates to provide certificate based authentication.
You can find the full post here: http://blog.medin.name/2012/12/02/securing-nrpe-with-certificate-based-authentication/
Hello, release RC4 of 0.4.1 (build 72). It contains some fixes for major issues and hopefully the last batch. Since I have promised to release 0.4.1 this year I hope this will be the final RC so unless there are no important issues this will become golden (ie. release) in a week or so...
So please pleas please everyone try it out and let me know any issues you have!
2012-12-02 MickeM * Added option to disable new alias check_cpu and only register old ones CheckCPU [/settings/default] modern commands=false 2012-11-29 MickeM * Improved exception handling in server threads 2012-11-28 MickeM * Fixed crash in NRPE server when payload was to large (#585 #582) * Fixed issue with lua unit test * Added payload length simulation in lua unit tests (so it returns various payload sizes) * Added nscp.sleep to Lua scripts (but dont use as I will implement coroutines in 0.4.2) * Fixed registry settings bug * Fixed issue with parsin performance data with leading spaces * Fixed issue with rendering filters
Also I have switched master to 0.4.2 so master is now development branch. 0.4.1 remains in 0.4.1 branch, and previous master is now 0.4.0 (which contains the 0.4.0 code).
Just found a tutorial by Henri Siponen about getting NSClient++ up and running with Nagios I figured I would share with everyone.
Windows monitoring was fairly simple to set up but I did run into some small issues. All the guides and tutorials that I found were so outdated that they weren’t really much of a help. This guide is for the latest Nagios and nsclient versions (at least for now). Puppet module for the NSClient at the end of this post.
Though a word of caution: I would not really advocate people to use check_nt. You will get a lot more mileage from NSClient++ using other protocols (such as NRPE, NSCA, NRDP or some such). Still it is great new (modern) tutorial written with the focus of a beginner in mind!
You can find the entire tutorial here: http://awaseroot.wordpress.com/2012/11/23/monitoring-windows-with-nagios/
I wrote a tutorial on using the new real-time monitoring facilities in NSClient++ on my blog.
Time for yet another tutorial this time detailing how to monitoring log files both event log and regular text files. The event log parts will build a bit on the earlier posts on monitoring the event log but since the “event log cache” feature has been replaced by the generic SimpleCache in 0.4.1 as well as 0.4.1 introducing a new SimpleFileWriter module as well I felt it was time to re-visit this topic.