Welcome to NSCA-ng!

The NSCA-ng package provides a client-server pair which makes the "Nagios command file" accessible to remote systems. This allows for submitting passive check results, downtimes, and many other commands to Nagios (or compatible monitoring solutions).

NSCA-ng supports TLS encryption and shared-secret authentication with client-specific passwords (based on RFC 4279), as well as fine-grained authorization control.


  1. OpenSSL 1.0.0 or newer is required for building NSCA-ng (as older releases don't support pre-shared key authentication). This is the only hard dependency of the NSCA-ng client. If the OpenSSL version provided by your operating system vendor is too old, you might want to build a private copy of OpenSSL and embed it into NSCA-ng. This could be done by running the ./build-aux/make-openssl script, which downloads the most recent OpenSSL version and installs it into the NSCA-ng source tree. The ./configure script (see below) will then pick that up automatically.

  2. The NSCA-ng server also requires libConfuse 2.6 or newer. In order to embed a private copy of libConfuse into NSCA-ng, the ./build-aux/make-confuse script could be run before calling ./configure.

  3. If libev 4.00 or newer is available and found by the ./configure script, NSCA-ng will (by default) use it. Otherwise, a bundled copy of libev is embedded into NSCA-ng, so this dependency is optional.

  4. Optional systemd integration code is added to the NSCA-ng server if systemd's sd-daemon(3) library is found. This can be disabled by specifying the --without-systemd option on the ./configure command line.


If only the client should be built, issuing the following three commands in NSCA-ng's source directory should do the trick:

$ ./configure
$ make
$ su root -c 'make install'

This installs the NSCA-ng client into appropriate subdirectories of /usr/local.

The installation process can be customized by setting environment variables and/or passing options to the ./configure script. Some of the more frequently used ./configure options include:

For a full list of available options and environment variables, run ./configure --help. See the file INSTALL for detailed installation instructions.


The NSCA-ng client is configured using the send_nsca.cfg(5) file, the NSCA-ng server uses the nsca-ng.cfg(5) file. Examples of these files are installed if they don't already exist.

Important: Please set the permissions of the configuration files appropriately to make sure that only authorized users can access them.

A script such as nsca-ng.init (as provided in the contrib directory of this package) could be used to start and stop the NSCA-ng server.


Please see the scripts in the contrib directory for various usage examples.

NSCA Compatibility

The NSCA-ng client (send_nsca) is a drop-in replacement for the send_nsca binary provided with the original NSCA 2.x package in the sense that NSCA-ng's send_nsca accepts all input, command line arguments, and configuration files accepted by the original send_nsca. NSCA-ng clients cannot talk to NSCA servers (nor vice versa), but NSCA and NSCA-ng servers can happily run side by side, and they use different ports by default.


Detailed information regarding the build and installation process can be found in the file INSTALL.

The NSCA-ng usage and configuration is documented in the nsca-ng(8), send_nsca(8), nsca-ng.cfg(5), and send_nsca.cfg(5) manual pages. The commands send_nsca -h and nsca-ng -h spit out short summaries of the available command line options.

For each release, noteworthy changes are listed in the file NEWS. Feature additions which are planned for future releases are added to the TODO file.

For copyright and license information, see the file COPYING.


Bug reports and patches can be sent to the developers@nsca-ng.org list (no subscription required). For usage support, please subscribe to the users@nsca-ng.org list. See the NSCA-ng website for details.