What’s New in NSClient++ 0.5.1

The main goals of the 0.5.1 was to add event subsystem and make fix bugs/issues. In addition to this the installer has been rewritten as well as the documentation.

  • Event subsystem
  • New documentation
  • New installer
  • Numerous bugfixes and minor enhancements

Event subsystem

This is perhaps more interesting for developers of scripts for NSClient++ but it is a way to send notifications without having to adhere to the Nagios check result format. It was designed to make event-log to syslog forwarding simpler as well as detecting installed software and similar non check things. As of yet this can only be used inside internal scripts but the idea is to use these building-blocks to add many new features such as automatic monitoring configuration in the future.

New documentation

The old restructured documentation has been replaced with a new one based on mark down. This is actually more important then it seems as markdown renders on github this means you can now easily edit the documentation directly in your browser if you see any issues. The documentation was also brought back into the regular git repository as well making this even simpler.

New installer

While the installer is not all that new enough of the logic has been rewritten and tested to make sure silent installers are very very easy to make. Overriding configuration keys on command line is now much more predictable and works without strange voodoo.

Bugfixes enhancements

As always there are numerous bug fixes and enhancements and a full list of changes (sorted by context) can be found here:

Documentation:

  • Switched documentation to markdown, and improved it a lot
  • Added documentation for APIs
  • Added information about paths constants to the documentation
  • Moved docs into the main repository to get out of all the annoying submodule issues
  • Added support for default values in settings to generate better docs

Code:

  • Cleaned up the code
  • Added docker files for building on linux
  • Removed attachments from pbuf messages (as they are never used)
  • Added functions to API helpers to emit events
  • Fixed loading module with alias via API

Installer:

  • Fixed installer properties not working properly
  • Added secondary installer (to install two NSClient++ side-by-side)
  • Changed title and added flag to override allow owerwrite
  • Fixed installer UI (and writing installer keys)
  • New op5 logo
  • Fixed op5 scripts folder

General:

  • Fixed error handling when checks crash
  • Fixed rare crash when logger shuts down
  • Fixed rare crash when scheduler shuts down
  • Fixed rare crash when paths was not available
  • Fixed rare crash when module failes to load
  • Fixed crash on reload
  • Updated default paths
  • Simplified command line syntax and fixed some rare issues
  • Fixed url in reporter
  • Added events subsystem (similar to passive check results but more free form)
  • Improved error handling
  • Switched Linux builds over to docker from vagrant
  • Added option to configure maintenance threads as well as changed metrics interval to every 10 seconds

Settings:

  • Added unzip: to attachments to unzip a file of attachments
  • Fixed invalid data at end of registry strings.
  • Fixed accidental overwriting of section description in settings
  • Fixed https settings
  • Fixed issue with missing loaded plugins from cache
  • Fixed migration of settings
  • Improved error handling
  • Removed “boot settings keys” as they are not really used
  • Added aliases to settings for future use
  • Fixed SNI when using https
  • Improved the https client

Linux:

  • Added debian packages and fixed building on debian
  • Fixed numerous linux/boost compiler issues

Filters:

  • Added event as target for real-time filters to send result of filters as events
  • Fixed show-all overwrites top-syntax
  • Fixed errorhandler in in filters so debug works better
  • Fixed expression parsing (Possible fix for #396 )
  • Code refactoring and bugfixes

Improved testing:

  • python unittest helper lib: Added assert_gt and asser_lt to check values
  • Added –show-all to nscp unit to show all results of the testcase (not just failed ones)
  • Fixed unit testcase issues and added them to automatic build pipeline
  • Fixed unittest –language option not working

Scheduler:

  • Added unit test for scheduler
  • Fixed scheduler interval being off
  • Added randomness to the scheduler to dictate how much randomness you want (default is 0)

SimpleCache:

  • New command to list all keys in the cache: list_cache

WEBServer/REST API:

  • Fix writing configuration key ‘WEBServer’
  • Fixed memory leaks
  • Fixed password encoding #389

PythonScript:

  • Fixed so install commands works (i.e. nscp py install –add sample.py)
  • Added event support
  • Added support for events

Scripts:

  • check_updates.vbs should return unknown if Windows Update service is disabled

ExternalScripts:

  • Fixed running external scripts as other users when running as local system

Protocols:

NRPE

  • Improved NRPE server truncation of performance data
  • Fixed check_nscp_nrpe returns wrong status code
  • Added support for encoding to NRPE client

NRDP:

  • Fixed SNI when using https
  • Improved the https client

Graphite:

  • Added removal of more invalid graphite chars (% and ()

Check commands:

CheckSystem:

  • Added option to disable background checks in CheckSystem (this is not useful as it breaks things, so only use if you have issues)

check_service:

  • Fixed exclude parsing when converting CheckServiceState commands (much faster now)
  • Fixed check_service missing descriptions (#456)

check_process:

  • Fixed %(filename) variable should contain path

check_logfile:

  • Fixed crash in on linux
  • Added option “read entire file” to allow re-reading the file each time it has changed i.e. if a single line is written to a file.
  • Bug fixes and refactorings
  • Added alias column-split to real-time check file filters to make it easier to use

check_eventlog:

  • Added command line for adding real time filter: nscp eventlog add –alias foo –log application –target log
  • Fixed rendering large (more then 4k) eventlog messages
  • Fixed real time eventlog messages truncated at 512 characters
  • Fixed eventlog insert not working. check_pdh
  • pdh: Fixed #415 negative value

check_drive_size

  • Added letter filter keyword with is the drive letter.
  • Added mediatype

check_pagefile:

  • CheckSystem: Fixed crash when there are no pagefiles

check_nt:

  • check_nt CPU load using invalid time (second instead of minute) Fixes #251 and #403

CheckHelpers:

  • Added new mode minmax to xform_perf to add missing minimum and maximum performance data to % commands. (Fixes/Improves #334 and #363 )

Whats new in 0.5.0