I tried SNclient+ and I will share what I found with this short review.
My thirst thought is that SNClient+ is mainly for Windows host.s
Why ? Because I failed to installed it from Debian 5 to Debian 11 included. The Debian packages are broken on all theses releases, you can’t install it, it will throw an error.
The answer from the team was if it’s not working you can try to recompile it from sources.
It more sunny on the RedHat side because the RPM is valid (and tested) on RedHat 7 and 9 (I didn't test it on RH8).
Also, only a unit for Systemd is included, no Init script.
On the Windows side, it’s unclear on which version we could run it.
I successfully run it on Windows 2019 but the SNClient+ team don’t give a list of supported OS :
I tried some check with «check_nrpe» as I’m used to with NSClient++.
Some are identical, like theses :
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.128.10.7 -c check_drivesize -a Drive=C: ShowAll MinWarnFree=10% MinCritFree=2%
WARNING: warning(C:\ 20.321 GiB/24.462 GiB used) |'C:\ used'=21819789312B;21012620902;23639198515;0;26265776128 'C:\ used %'=83.1%;80;90;0;100 ' used'=435617792B;460531302;518097715;0;575664128 ' used %'=75.7%;80;90;0;100
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.128.10.7 -c check_memory
OK: committed = 2.60 GiB, physical = 1.91 GiB |'committed'=2794840064B;4992470221;5616528998;0;6240587776 'committed %'=44.8%;80;90;0;100 'physical'=2053087232B;4294538035;4831355290;0;5368172544 'physical %'=38.2%;80;90;0;100
But some need modifications :
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.128.10.7 -c check_service -a "service=snclient"
OK: All 1 service(s) are ok. |'snclient'=4 'snclient rss'=22638592B 'snclient vms'=25493504B 'snclient cpu'=0%
thresholds are different
$ /usr/lib64/nagios/plugins/check_nrpe -H 10.128.10.7 -c check_cpu -a 'warn=load > 85' 'crit=load > 95' 'time=1m' 'time=5m' 'time=15m'
OK: CPU load is ok. |'total 1m'=11%;85;95 'total 5m'=11%;85;95 'total 15m'=11%;85;95
The good news is SNClient+ support NRPE packet v4, so you don’t need the «-2» flag anymore, and you can use TLS without modification.
I tried the “check_nsc_web”
SNClient+ include a REST API and they provide a client for it, written in Go : https://github.com/ConSol-Monitoring/check_nsc_web
The REST API is
$ ./main -k -p "myrockingkpassword" -u "https://10.128.10.7:8443" check_service "service=snclient"
OK: All 1 service(s) are ok. |'snclient'=4;;;; 'snclient cpu'=0%;;;; 'snclient rss'=22765568B;;;; 'snclient vms'=25505792B;;;;
I was surprised the command is very fast, faster than the same with “check_nrpe”. 0.01s vs 0.03s for check_nrpe.
You can use a config file for “check_nsc_web” for default settings, like the password.
I’m interested by the execution of external scripts but I didn’t tested it (yet).
Some modules are still in dev, as you can see here :
I can’t give a conclusion because I didn’t dig it enough.
But this is an interesting project which can provides a good alternative to NSClient++, I’m not so enthusiast for the Linux side as it’s not included in any distribution and I was unable to install it on many of my hosts.
This project is young and doesn’t have a community, but the team seems open to contribution.