NSClient++

Documentation Latest release License Platforms

A simple, powerful, and secure monitoring agent for Windows and Linux.

NSClient++ (nsclient) is the monitoring agent that runs on the machines you want to monitor. It exposes the system to your monitoring server (Nagios, Icinga, Naemon, Op5 Monitor, Checkmk, Prometheus, Zabbix-via-NRPE, …) over whichever protocol that server speaks. It can also push results, expose a REST API, scrape Windows performance counters, run external scripts, and be extended with Lua, Python, or native plugins.

Table of contents

Quick start

The fastest path from zero to a working check is the Quick Start guide — it gets you installed and running your first check in about 10 minutes.

For more depth:

What it does

NSClient++ has three core jobs:

  1. Answer queries — let a monitoring server ask "is this machine healthy?" and return a Nagios-style status + perfdata.
  2. Submit results — push the same kind of results to a monitoring server on a schedule.
  3. Act on events — run actions (scripts, custom modules, REST calls) when something changes.

Every check shares the same filter/threshold/perf-config engine, so the same expressions work across CPU, disk, services, event logs, counters, and custom scripts. See Checks in depth.

Supported protocols

NSClient++ deliberately speaks many protocols so it can plug into whatever monitoring stack you already have.

Protocol Direction Use it for Guide
NRPE Active (pull) Nagios / Icinga / Naemon polling the agent — the most widely supported pattern. Active monitoring with NRPE
NSCA Passive (push) Legacy Nagios passive submissions. Passive monitoring (NSCA/NRDP)
NSCA-NG Passive (push) TLS-PSK successor to NSCA — modern crypto, same passive pattern. Passive monitoring (NSCA-NG)
NRDP Passive (push) HTTP-based modern replacement for NSCA. NRDP (in the NSCA scenario)
Icinga 2 API Passive (push) Submit scheduled check results directly to the Icinga 2 REST API. Passive monitoring (Icinga 2)
Checkmk Active (pull) Serve a Checkmk-compatible agent dump on TCP/6556. Checkmk agent integration
Prometheus Active (scrape) Expose OpenMetrics on /api/v2/openmetrics for Prometheus to scrape. Prometheus scraping
Graphite Passive (push) Stream performance data to a Graphite / Carbon backend for graphing. GraphiteClient reference
Syslog Passive (push) Forward results as syslog records. SyslogClient reference
SMTP Passive (push) Email notifications from check results. SMTPClient reference
REST API Active (pull) Custom integrations, scripts, dashboards, and the built-in web UI. REST API reference

Common monitoring scenarios

End-to-end guides — each one has the minimal config, the command to run, and example output. Full list: docs.nsclient.org/scenarios.

System health

Network

Extensibility

Extending NSClient++

NSClient++ is designed to be open-ended. Pick the extension model that fits your environment:

Option Best for
ExternalScripts Reuse PowerShell, batch, shell, or any existing tooling. Simplest path. Guide
LuaScripts In-process scripts with no extra runtime to install — runs anywhere NSClient++ does.
PythonScripts Full Python inside the agent; great power, but you need Python installed on the host. Guide
Native modules C++ plugins using the plugin API — maximum control, maximum effort.
Zip modules Bundle scripts + config as a redistributable add-on. Guide

See the Extending NSClient++ section for the full picture.

Supported platforms

Which package to download

The following packages are produced by the official build pipelines. Pick the one that matches your operating system and architecture:

Operating system Version Architecture Package / artifact name Notes
Windows (modern) Windows 10 / 11, Server 2016 / 2019 / 2022 / 2025 x64 (64-bit) NSCP-<version>-x64.msi Recommended for all modern Windows systems. Built with MSVC 2022.
Windows (modern) Windows 10 / 11, Server 2016 / 2019 / 2022 / 2025 x86 (32-bit) NSCP-<version>-Win32.msi Use only on 32-bit Windows installations. Built with MSVC 2022.
Windows (modern) Windows 11 ARM, Server 2025 ARM ARM64 NSCP-<version>-ARM64.msi Native ARM64 build, cross-compiled with the v143 toolset. Use this on Windows-on-ARM devices (e.g. Surface Pro X / Copilot+ PCs, ARM-based Azure VMs).
Windows (legacy) Windows XP and above x86 (32-bit) NSCP-<version>-Win32-legacy-xp.msi Statically linked, built with the v141_xp toolset. Use this on any Windows older than Windows 10 / Server 2016. Works on x64 versions of these older OSes too.
Ubuntu 24.04 LTS (Noble) x64 (amd64) NSCP-<version>-ubuntu-24.04-amd64.deb Should also install on recent Debian/Ubuntu derivatives with compatible glibc and Lua 5.4.
Ubuntu 24.04 LTS (Noble) ARM64 (aarch64) NSCP-<version>-ubuntu-24.04-arm64.deb For 64-bit ARM hosts (e.g. AWS Graviton, Ampere Altra, Raspberry Pi 4/5 running Ubuntu 24.04 arm64).
Rocky Linux / RHEL / AlmaLinux 9 x64 (x86_64) NSCP-<version>-rocky-9-x86_64.rpm Compatible with RHEL 9 and other RHEL 9 rebuilds (AlmaLinux 9, Oracle Linux 9, CentOS Stream 9).
Rocky Linux / RHEL / AlmaLinux 9 ARM64 (aarch64) NSCP-<version>-rocky-9-aarch64.rpm 64-bit ARM build for RHEL 9-family distributions.
Rocky Linux / RHEL / AlmaLinux 10 x64 (x86_64) NSCP-<version>-rocky-10-x86_64.rpm Compatible with RHEL 10 and other RHEL 10 rebuilds.
Rocky Linux / RHEL / AlmaLinux 10 ARM64 (aarch64) NSCP-<version>-rocky-10-aarch64.rpm 64-bit ARM build for RHEL 10-family distributions.

In addition, a stand-alone check_nsclient binary is published alongside each Linux package for use as a Nagios/Icinga check plugin.

On unsupported distributions you can build from source — see build.md.

Building from source

NSClient++ is built with CMake. On Windows it uses Visual Studio 2022; on Linux it uses GCC or Clang. See build.md for the full step-by-step build instructions, dependencies, and tips.

Documentation map

The full documentation is organised as:

Contributing

Contributions are welcome — bug reports, fixes, new checks, doc improvements, and platform packaging help.

License

NSClient++ is dual-licensed — you may use it under either the Apache License 2.0 or the GNU General Public License, version 2.0 (only), at your option (SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-only). See COPYING for the summary, the LICENSES/ directory for the full license texts, and THIRD-PARTY-NOTICES.md for bundled third-party components.

Powered by

JetBrains logo.