What’s New in NSClient++ 0.5.2

Highlights:

  • Brand new REST API
  • Much improved documentation
  • ZIP-Modules

In addition to the above we have the usual slew of bug fixes and minor enhancements. One important change is that the code base have been re-factored in many places meaning the code will be easier to access for new developers. But more importantly this will allow for better unit testing in the future.

REST API

The new REST API is a true rest-full API which is not built around the internal protobuf API. THis means it will be much simpler to work with and will allow you to much easier integrate it into your systems. The API also get support for uploading both scripts and modules to provide a truly remote configurable client. But the most important feature is access control on a per method level as well as user/password authentication. This means you can add a user which will only be allowed to run queries but not alter the configuration. We have also swapped out the old moongose implementation for one which is multi-threaded which means it will function a lot better under high load.

Documentation

Not only have we switched to a much easier to read template for the documentation we have added numerous pages about the REST API, Zip modules, Pythons cript as well as much internal updates. In addition to this we have also reworked the reference section so it contains more useful information and less bloat.

Zip-modules

In brief zip-modules allow you to package scripts together as zip-files for easy distribution and use. With zip modules you can enable or disable all script in one go via the regular load/unload module concept.

Other changes:

REST:
 * REST: Fixed #485 check_nscp_web is now supported again, sorry for the delay....
 * Added command line commands to nscp web for adding users and roles: nscp web <add-user|add-role> --help
 * Added /api and /api/v1 endpoints to provide information about API
 * Added API documentation for scripts
 * Added configuration for grants and roles #448 #449
 * Added privilege system for API #448 and #449
 * Added support for basic auth (#448)
 * Brand new REST API
 * Brand new web server with multi thread support.

Python:
 * Fixed python script CLI for loading scripts
 * Fixed python script issues
 * PythonScripts: Made python scripts compatible with external scripts cli as well as code refactoring

Docs:
 * Updated the API documentation
 * Added Python API documentation
 * Fixed rendering issue in api docs
 * Added example real-time eventlog command to docs
 * Fixed #472 Added sample exclude versus filter
 * Fixed #471 added sample command with perf-config to check_memory
 * Fixed #499 Added details about adding performance data to documentation about checks
 * Added compatibility matrices to documentation (Fixing #482 )

CheckEventLog:
 * CheckEventLog added support for fetching xml
 * check_eventlog: Added support for audit success/failure keyword filtering Fixed #488

ExternalScripts:
 * CheckExternalScripts added support for not writing the configuration when adding script (--no-config)
 * Added delete to CHeckExternalScritpts to delete scripts: nscp ext delete --script <alias> will delete the alias and nscp ext delete --script <script> will delete the script.
 * Added new command-line show to show script in external scripts module: "nscp ext show --script <alias>" will show the actual command execute and "nscp ext show --script <script>" will show the content of the script.
 * Fixed external scripts not showing in command list

Bugs:
 * core: Refactoring
 * Fixed #520 removed pointless log message about logger
 * check_process: Fixed #494 empty status message
 * Events: Added proper event names
 * Fixed so clients (test/web) can show multiple lines in output
 * check_pdh: Added ignore-errors to make counters return 0 instead of errors: #454
 * Fixed #413 check_network returning the wrong values
 * Fixed #403 reduced cpuload on some servers by only collecting handle information every 10x instead of every iteration
 * Reduced CPU load of checking handles for systems with large number of processes
 * Added syntax=none to remove default values from various top/empty/* syntaxes

Whats new in 0.5.1