NSClient++ (nscp) aims to be a simple yet powerful and secure monitoring daemon. It was built for Nagios/Icinga/Neamon, but nothing in the daemon is Nagios/Icinga/Neamon specific and it can be used in many other scenarios where you want to receive/distribute check metrics.
The deamon has some basic features:
- Allow a remote machine (monitoring server) to request commands to be run on this machine (the monitored machine) which return the status of the machine.
- Submit the same results to a remote (monitoring server)
- Take action and perform tasks
- Submit metrics and real-time data to a central repository
NSClient++ is designed to be open ended and allow you to customize it in any way you design thus extensibility is a core feature.
- ExternalScripts responds to queries and are executed by the operating system and the results are returned as-is. This is generally the simplest way to extend NSClient++ as you can utilize whatever infrastructure or skill set you already have. The drawback is that external scripts cannot interact with the internals NSClient++ and thus they are limited in what they can do.
- LuaScripts are internal scripts which runs inside NSClient++ and performs various tasks and/or responds to queries. Lua is a popular embedded language which has a slightly arcane syntax but it is very efficient and capable and comes bundled with NSClient++.
- PythonScripts are internal scripts which runs inside NSClient++ and performs various tasks and/or responds to queries. Python is an easy to learn yet powerful language which comes bundled with NSClient++.
- .Net modules similar to Native modules below but written on the dot-net platform. This allows you to write components on top of the large dot-net ecosystem. This makes it easy to develop check modules for in house developed solutions for instance if you have dot-net competence in-house.
- Modules are native plugins which can extend NSClient++ in pretty much any way possible. This is probably the most complicated way but gives you the most power and control.
Talking to NSClient++#
Since NSClient++ is not very useful alone it also supports a lot of protocols to allow it to communicate with various monitoring solutions.
- NRPE (Nagios Remote plugin Executor) is a Nagios centric protocol to collect remote metrics.
- NSCA (Nagios Service Check Acceptor) is a Nagios centric protocol for submitting results.
- REST is the native NSClient++ protocol (still under development) which allows you to interact with NSClient++ over the http(s) protocol.
- NRDP is a php replacement for NSCA developed by Nagios Inc(TM).
- check_mk is a protocol utilized by the check_mk monitoring system. Check-mk support is in development.
- Syslog is a protocol primarily designed for forwarding log records.
- Graphite allows you do real-time graphing by sending metrics to graphite.
- SMTP allows you to send email directly from NSClient++.
NSClient++ should run on the following operating systems:
- Windows: From XP and up (including Windows 10 and Windows Server 2012)
- Linux: Debian, Centos and Ubuntu (and possibly others as well)
- Win32, x64 as well as various Linux hardware as well.