Skip to content
/ nsca-ng Public

NSCA-ng is an add-on for transferring check results (and other commands) to Nagios or Icinga.

License

Notifications You must be signed in to change notification settings

weiss/nsca-ng

Repository files navigation

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.

Prerequisites

  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.

Installation

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:

  • --enable-server

    Build and install the NSCA-ng server (in addition to the client, unless --disable-client is specified).

  • --disable-client

    Don't build and install the NSCA-ng client.

  • --disable-posix-aio

    Don't use the POSIX AIO API. By default, the NSCA-ng server will use the POSIX AIO API if available.

  • --prefix=PATH

    Install NSCA-ng into subdirectories of PATH instead of /usr/local.

  • --with-confuse=PATH

    Search for the libConfuse header files in PATH/include, and search for the libConfuse library files in PATH/lib. If this option isn't specified, ./configure will look for libConfuse in a few typical locations.

  • --with-ev=PATH

    Search for the libev header files in PATH/include, and search for the libev library files in PATH/lib. If this option isn't specified, ./configure will look for libev in a few typical locations; and if no usable version is found, a bundled copy of libev will be embedded into NSCA-ng. In order to force usage of the included copy, --with-ev=embedded can be specified; while --with-ev=external would disallow falling back to the bundled libev code.

  • --with-openssl=PATH

    Search for the OpenSSL header files in PATH/include, and search for the OpenSSL library files in PATH/lib. If this option isn't specified, ./configure will look for OpenSSL in a few typical locations.

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

Configuration

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.

Usage

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.

Documentation

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.

Support

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.