NRDP via NSClient++


I’m trying to set up NRDP for NSClient. I found info about nrdp module at NSClient manual. Also I found NRDPClient.dll file at NSClient++ folder. But I havent’t found any info about how to make it work:).
I think a sample of command for nscp.exe might help me. I have no idea how to start.


I might misunderstood NRDPClient. Is anybody know can I use NRDPClient to send check result to NRDP server by web or not?
I’ve noticed in docs that client uses SMTP. Don’t know how it might be connected with NRDP web server.


Ok, after several hours searching on the web I feel I should use command nrdp_submit. This command is available at nscp.exe test. But when I try to run it I get error:
UNKNOWN: Paradigm shift currently not supported
My sample of nrdp_submit is:
nrdp_submit address=host:8080/nrdp token=my_secret_token result=OK message=test


Seems there’s a nrdp_submit bug in modern NSClient++ builds. I’ve tried three builds and got different results with the same nsclient.ini
NSCP- - nrdp_submit works
NSCP- - nrdp_submit doesn’t work (Paradigm shift currently not supported)
NSCP- - nrdp_submit doesn’t work (Paradigm shift currently not supported)
NSCP- - nrdp_submit doesn’t work (Paradigm shift currently not supported)

I’ve tested on Win Server 2008R2 and 2012 and got the same result.


Depends on what you want to do. NRPE should work in conjunction with the scheduler i.e. passive monitoring. Not sure about the command lines they usually work for active monitoring such as check_nrpe.

So set it up much like you do NSCA and it should work.


Can anybody give some better info on setup of NRDP? I am also looking to set this up. We were about to set up NSCA, but NRDP is supposed to be the updated version and is enabled by default in Nagios XI, so we would prefer to use NRDP, however the process to set it up is lacking.

Please, can we get a better guide on setup of these passive checks on both the NSClient++ as well as the Nagios Server? How do we define what exactly is checked and submitted (which hard drives etc. etc.)


All, I’m very interested to see how you need to configure the nrdp_submit section in the ini file. (using 04.1.102 release) If somebody could help me with this, I would be very happy.

My goal would be to have passive monitoring in place and use nrdp to submit the results back to a nrdp server with nagios backend.

Thanks in advance.


I’m not sure that it helps. I haven’t tested the whole automatic cycle report. All that I got is successful nrdp_submit execution from nscp.exe test. My NRDP config is the below.

NRDPClient = 1

; Target definition for: default

; TARGET ADDRESS - Target host address
host =
port = 8080

; RECIPIENT - Recipient of email message
recipient = [email protected]

; SENDER - Sender of email message
sender = [email protected]

; TEMPLATE - Template for message data
template = Hello, this is %source% reporting %message%!

; TIMEOUT - Timeout when reading/writing packets to/from sockets.
timeout = 30

And that’s the log from cmd:

l ce\simple_client.hpp:32   Enter command to inject or exit to terminate...
d rvice\NSClient++.cpp:960  Injecting: nrdp_submit...
d lient\NRDPClient.cpp:326  Connection details: host:, port: 8080, timeout: 30, token: , sender: eva-manager
d lient\NRDPClient.cpp:335  <?xml version="1.0" encoding="UTF-8"?>
    <checkresult type="service">

d lient\NRDPClient.cpp:336  XMLDATA=%3C%3Fxml+version%3D%221.0%22+encoding%3D%22UTF-8%22%3F%3E%0A%3Ccheckresults%3E%0A++
e lient\NRDPClient.cpp:341  Socket error: No connection could be made because the target machine actively refused it
d rvice\NSClient++.cpp:985  Result nrdp_submit: WARNING
l ce\simple_client.hpp:80   WARNING:Socket error: No connection could be made because the target machine actively refuse
d it


hi and thanks for your reply,

I’m currently at the same point where I’m able to inject the nrdp_submit, however without calling a command. What i’m actually looking for is to see how the configuration has to be made so that it sends the results based on the scheduler automatically. For NSCA this was working, but I’m now trying to get it operational to send to a NRDP server.





[/settings/external scripts/scripts]








Below the log:

d vice\logger_impl.cpp:420  Creating logger: console d rvice\NSClient++.cpp:386  NSClient++ 0,4,1,102 2013-07-15 w32 Loading

settings and logger… d ngs_manager_impl.cpp:170 No entries found

looking in (adding default): C:/nrpe//boot.ini d ngs_manager_impl.cpp:178 Boot order: old://${exe-path}/nsc.ini, ini://${share d-path}/nsclient.ini d ngs_manager_impl.cpp:181 Activating: ini://${shared-path}/nsclient.ini d ngs_manager_impl.cpp:73 Creating instance for: ini://${shared-path}/nsclient .ini d mpl/settings_ini.hpp:303 Reading INI settings from: C:/nrpe// i d mpl/settings_ini.hpp:253 Loading: C:/nrpe//nsclient.ini d rvice\NSClient++.cpp:397 NSClient++ 0,4,1,102 2013-07-15 w32 booting… d rvice\NSClient++.cpp:398 Booted settings subsystem… d rvice\NSClient++.cpp:544 booting::loading plugins d rvice\NSClient++.cpp:306 Found: CheckExternalScripts d rvice\NSClient++.cpp:306 Found: NRDPClient d rvice\NSClient++.cpp:306 Found: Scheduler d rvice\NSClient++.cpp:867 addPlugin(C:/nrpe//modules/CheckExternalScripts .dll as ) d rvice\NSClient++.cpp:867 addPlugin(C:/nrpe//modules/NRDPClient.dll as ) d rvice\NSClient++.cpp:867 addPlugin(C:/nrpe//modules/Scheduler.dll as ) d rvice\NSClient++.cpp:844 Loading plugin: Check External Scripts d kExternalScripts.cpp:99 No wrappings found (adding default: vbs, ps1 and bat ) d kExternalScripts.cpp:109 No aliases found (adding default) d rvice\NSClient++.cpp:844 Loading plugin: NRDPClient d rvice\NSClient++.cpp:844 Loading plugin: Scheduler d eduler\Scheduler.cpp:64 Adding scheduled item: check_win_filesystem_all[0] = {alias: check_win_filesystem, command:check_win_filesystem channel: NSCA, target_id: , duration: 900} d eduler\Scheduler.cpp:64 Adding scheduled item: check_win_filesystem_c[0] = { alias: check_win_filesystem_c, command: check_win_filesystem_c, channel: NSCA, t arget_id: , duration: 900} d eduler\Scheduler.cpp:79 Thread count: 5 d rvice\NSClient++.cpp:616 NSClient++ - 0,4,1,102 2013-07-15 Started! l ce\simple_client.hpp:32
Enter command to inject or exit to terminate… d rvice\NSClient++.cpp:960 Injecting: check_win_filesystem_all… d kExternalScripts.cpp:249 Command line: C:\scripts\checkWINFS.exe nr pe d rvice\NSClient++.cpp:985 Result check_win_filesystem_all: OK e rvice\NSClient++.cpp:1264 No one listens for events from: NSCA (NSCA)

It keeps giving the message:

d rvice\NSClient++.cpp:985 Result check_win_filesystem_all: OK

e rvice\NSClient++.cpp:1264 No one listens for events from: NSCA (NSCA)

So it seems that the check itself is executed but not routed to the nrdpclient.


I’m looking for the same thing Richard. I hope someone can respond.


I never was able to find info on doing passive checks via NSClient++, however, i was able to get it to work with another free Nagios tool called NRDS. As part of the installation of this tool, it automatically creates a windows scheduled task to run at the interval you choose. - check out the link at the bottom for the video tutorial - very helpful and walks through the whole process.

We also needed a method of setting up the Nagios XI Server to alert if a server had not submitted any results after a certain amount of time, so this document gives instructions on setting the “freshness” checks: - Basically, after you have set up the Services that gather the passively submitted results, you change the “Check command” to “check_dummy” and set ARG1 to “2 “whatever error message you want””. then on the alert tab, turn on “Passive Checks enabled” and “Check freshness”, then set your freshness threshold (the # of seconds to wait from the last passive result received before running the dummy command for the alert).

Hopefully this helps somebody else!


I got it to work and here is the key:

  1. Use latest version, I needed to use

  2. In nsclient.ini


Define the address like so:

address = token = LIqdtq0Y7fPU


Define the Channel to use NRDP:

channel = NRDP

The following documentation explains it clearly: