About NSClient++

NSClient++ (nscp) aims to be a simple yet powerful and secure monitoring daemon. It was built for Nagios/Icinga, but nothing in the daemon is Nagios/Icinga specific and it can be used in many other scenarios where you want to receive/distribute check metrics.

The deamon has 3 main functions:

  1. 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.
  2. Submit the same results to a remote (monitoring server).
  3. Take action and perform tasks.

Extending NSClient++

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 archane 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 alows 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++.

Supported OS/Platform

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.
comments powered by Disqus