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.
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:
NSClient++ has three core jobs:
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.
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 |
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
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.
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.
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.
The full documentation is organised as:
Contributions are welcome — bug reports, fixes, new checks, doc improvements, and platform packaging help.
main. CI builds Windows and Linux packages on every PR; please make sure the build is green before requesting review.docs and is published to https://docs.nsclient.org.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.