Skip to content

Releases: mickem/nscp

0.6.15

25 Mar 04:52
Compare
Choose a tag to compare
0.6.15 Pre-release
Pre-release

What's Changed

Minor update with two fixes:

Os detection for check_os_version

This use the build number to detect OS versions above Windows 10 so if you want to check version you need to include build number in your check.

Improved experimental check_cpu with PDH counters.

It no longer use indexes instead English counter names which I hope will work better.
Also now supports cores option to get CPU load per core.

Full Changelog: 0.6.14...0.6.15

0.6.14

23 Mar 11:41
Compare
Choose a tag to compare
0.6.14 Pre-release
Pre-release

What's Changed

This version has some PDH (Performance data Helpers) fixes and improved error handling and introduces an experimental new option to switch check_cpu to use PDH instead of APIs.
This is experimental and intended to solve the issue with incorrect and negative values on some machines with more than 12 cores.
It currently does not support fetching loads per core (this will be added in a future update).

The main issue is that PDH is messy. It is localized and has historically been prone to strange issues and errors such as counter index getting corrupted and similar issues.

To switch change the following configuration:

[/settings/system/windows]
use pdh for cpu=true

This will then change so the check_cpu commands will use PDH counters instead.

Full Changelog: 0.6.13...0.6.14

0.6.13

14 Mar 05:59
Compare
Choose a tag to compare
0.6.13 Pre-release
Pre-release

What's Changed

check_cpu

Check CPU load values was somewhat non standard before.

  • idle
  • total
  • kernel

This has now been changed so we have (the more common):

  • idle
  • user
  • system

We still retain the old ones for compatibility, so this is a non-breaking change. But it makes it easier for me to reason about the code as "total" can be many things.
In an attempt to combat "large negative values" I have also added checks so the system should now return 0 instead.

Other changes

  • TinyXML2 is now a proper dependency (version 10.1.0)
  • CryptoPP have been updated to 8.9.0
  • Added error messages for login failure via web browser
  • Improved build times (fixed caching)
  • Updated build instructions

Dependencies

Library Version
Boost 1.82.0
Cryptopp 8.9.0
Lua 5.4.7
OpenSSL 1.1.1w
Protobuf 21.12
TinyXml2 10.1.0

Full Changelog: 0.6.12...0.6.13

0.6.12

11 Mar 07:34
dea4123
Compare
Choose a tag to compare
0.6.12 Pre-release
Pre-release

What's Changed

Lua

The biggest new change here is the re-added Lua support.
The Lua support has been changed a bit so it might not be 100% compatible with old scripts.
As there is not much documentation for Lua scripting, I plan to add that soon.
And doing that I will highlight the main differences.

One thing still missing in Lua is protocol buffer support
This means you can only create "simple function" is returning code, string and performance data. But given the nature of Lua I think this is acceptable for the time being.

But in general "optional parameters" to functions are no longer optional.
So for instance:

local reg = Registry()
reg:simple_function('lua_test', test_func_query)

local settings = Settings()
str = settings:get_string('/settings/lua/scripts', 'testar')

local core = Core()
code, msg, perf = core:simple_query('lua_test')

Will now require to be written as:

local reg = Registry()
reg:simple_function('lua_test', test_func_query, '')

local settings = Settings()
str = settings:get_string('/settings/lua/scripts', 'testar', '')

local core = Core()
code, msg, perf = core:simple_query('lua_test', {})

The other change is that construction object is now generally done with new where before it was done with various functions like Core() here however I have retained backwards compatibility so both should be possible.

But in general the quality of error handling and such is much better and I will as I said expand the documentation and add some more examples and such.

check_mk

As a side note experimental check_mk support was also added back.
This is experimental in so far as I have only verified it with NSClient++ not actual check_mk so will need to look into that next.
Also note that check_mk is experimental currently it only provides the version and agent name.
If there is genuin interest this could easily be extended so please do let me know...

The way check_mk works is that the module only provides the communication layer and the data provided is provided by a Lua script (hence requiring Lua support).
So the current script looks like so:

function server_process(packet)
	s = section.new()
	s:set_title("check_mk")
	s:add_line("Version: 0.0.1")
	s:add_line("Agent: nsclient++")
	s:add_line("AgentOS: Windows")
	packet:add_section(s)
end

reg = mk.new()
reg:server_callback(server_process)

So here we need to extend the packet to include more data and other sections for proper check_mk support.

Other Changes

  • Fix typo in documentation by @Napsty in #903
  • Marked Dotnet and modules as deprecated in documentation.
  • Reformatted all code by @mickem in #917

Status

With this change most features should now be back (apart from dotnet which is deprecated) the only things remaining are:

  • Protocol buffer support for Lua.
  • CheckPowerShell: A module adding native power-shell support to NSClient++ (this will likely be re-implemented in the future with Rust)
  • CheckDocker: This needs to be looked into (not sure of the status)

That said there are some dependencies which needs to be updated and managed a bit better still but that will happen in parallell while adding support for modern Windows.

Dependencies

  • Python: 3.11
  • Open ssl: 1.1.1w
  • Protocol buffers: 21.12
  • Boost: 1.82.0
  • CryptoPP: 8.8.0
  • Lua: 5.4.7
  • Mongoose: ?
  • json-spirit: ? (Will be replaced by native support in boost)
  • miniz: ?
  • tinyxml: ?

New Contributors

Full Changelog: 0.6.11...0.6.12

Pre-release 0.6.11

17 Feb 07:05
1c44f76
Compare
Choose a tag to compare
Pre-release 0.6.11 Pre-release
Pre-release

What's Changed

This is a "pre release" meaning I want some feedback on some of the changes.
So as long as you read and understand the change-log there should not be any functional issues installing this in a production setting if you want.

Bug Fixes

  • Fixed integer overflow in check_files.vbs script
  • Fixed status in summary text not matching actual summary when no results were found in filters (see UNKNOWN: OK in this example)
check_drivesize "filter=drive='foobar'"
L        cli UNKNOWN: OK: No drives found
L        cli  Performance data:
  • Added new option fetch core loads to allow using another API to fetch CPU load. This might fix the "incorrect CPU load on machines with many cores)
[/settings/system/windows]
fetch core loads = false

This will be further improved in coming version but please do let me know if this improves the situation.

Documentation

Merged a series of PR:s fixing grammar and spelling mistakes in the code and documentation.

  • Fixed numerous spelling and grammar issue in the documentation.
  • Fixed exit code description in docs
  • Added docs about loading modules to docs

Maintenance

Started to automatically re-format the code some sections require gated excludes so this will take a while so will do it part by part.

  • Reformatted part of the code base

New Contributors

Full Changelog: 0.6.10...0.6.11

Pre-release 0.6.10

13 Feb 12:47
166956e
Compare
Choose a tag to compare
Pre-release 0.6.10 Pre-release
Pre-release

What's Changed

This is a bug fix release with a bit of everything (I.e. low hanging fruit).
This is a "pre release" meaning I want some feedback on some of the changes (for instance default enable web server, and NRPE docs and changes). So as long as you read and understand the change-log there should not be any functional issues installing this in a production setting if you want.

Installer:

  • Removed padded version numbers from installer (this caused issues with upgrade)
  • Installer is now built with openssl presumably fixing remote config via https (have not verified this yet)
  • Enabled WebUI by default in installer (open can still be used to disable)
  • Harmonized docs with https://nsclient.org
  • Added option to disable installing the service in installer

Security:

  • Added option to configure ciphers in the web server (default is TLS 1.2 but now you can set 1.3 if you prefer)
  • Default TLS (NRPE et al.) is now 1.2+ instead of only 1.2
  • Improved some options and added docs for using NRPE with certificates and Nagios…
  • Installer now installs the NRPE 2048 bit DH key

check_nscp_verison:

  • Fixed check_nscp_verison parsing new semantic version

Various

  • Started to add instructions for building locally
  • Removed breakpad (replaced by restart watchdog and log files, but wont create and submit crash dumps (instead windows creates dumps which can be used))
  • Bumped web and python dependencies

Full Changelog: 0.6.9...0.6.10

0.6.9

11 Feb 08:43
47de5ac
Compare
Choose a tag to compare

What's Changed

  • Fixes config is overwritten by installer when upgrading from 0.4.x or 0.5.x
  • Makes TLS default for web server (so enabled web server will now be exposed on https://localhost:8443 )

This SHOULD fix the installer delete config issue, if not please do let me know HOW you install and which version as I have verified this locally now with the release artifact.

Full Changelog: 0.6.7...0.6.9

0.6.8

08 Feb 17:10
fcf318a
Compare
Choose a tag to compare
0.6.8 Pre-release
Pre-release

What's Changed

  • Fixes config is overwritten by installer when upgrading from 0.4.x or 0.5.x
  • Makes TLS default for web server (so enabled web server will now be exposed on https://localhost:8443 )

WARNING! This did in fact NOT fix the issue with upgrading from 0.5.x will delete existing config!
Hopefully 0.6.9 fixes this issue, so please try that and do let us know.

Full Changelog: 0.6.7...0.6.8

0.6.7

26 Jan 19:56
ed676b3
Compare
Choose a tag to compare

What's Changed

A bug fix release which fixes a regression issue from 0.5.x

  • Fixed broken TLS support in the WEBServer
  • Added signatures to MSI (currently using a "personal signature" as I haven't managed to get Microsoft to cooperate)

Full Changelog: 0.6.6...0.6.7

WARNING! Upgrading from 0.5.x will delete existing config! We are currently looking into fixing this.

0.6.6

19 Jan 20:04
7f091ec
Compare
Choose a tag to compare

What's Changed

  • Metrics added to the WebUI and new welcome screen
  • Fixed: Version should be dot separated
  • Bumped openssl to 1.1.1w
  • Bumped protobuf to 21.12
  • Bumped numerous web dependencies

New welcome screen:

image

New Metrics view:

image

Full Changelog: 0.6.5...0.6.6

WARNING! Upgrading from 0.5.x will delete existing config! We are currently looking into fixing this.