SEND NRDP FROM DYNATRACE - ELASTIC - SOLARWIND

This support forum board is for support questions relating to Nagios XI, our flagship commercial network monitoring solution.
Post Reply
occ
Posts: 43
Joined: Fri Jan 11, 2019 5:05 am

SEND NRDP FROM DYNATRACE - ELASTIC - SOLARWIND

Post by occ »

I need to integrate several systems with nagios, for example Dynatrace, elastic and solarwind, I'm thinking of using nrdp, how do I make the call passing the state variables? For example, state 1 on Dynatrace is = to Open.
I've never used nrdp for passive controls, I can't find much documentation on how to build the call.

I tried making this example call and it worked.
curl -f -d 'token=tokentest&cmd=submitcheck&json={ "checkresults": [ { "checkresult": { "type": "host" }, "hostname": "HostTest", "state": "0", " output": "Everything looks okay! } ] }' http://nagios-server/nrdp/

Thanks a lot
Fabio
ambreewsc
Posts: 1
Joined: Sun May 26, 2024 5:04 am

Re: SEND NRDP FROM DYNATRACE - ELASTIC - SOLARWIND

Post by ambreewsc »

Can anyone provide some insight on this topic? I'm interested because I've encountered similar situations.download lagu If anyone has a solution or suggestions, please let me know. Thanks!
snapier3
Posts: 144
Joined: Tue Apr 23, 2019 7:12 pm

Re: SEND NRDP FROM DYNATRACE - ELASTIC - SOLARWIND

Post by snapier3 »

I've done a lot of integrations via NRDP, there's not a lot flaming hoops to jump through, just some thing to keep in mind as you go forward.

1. The target host or service must exist in NagiosXI or they will become unconfigured objects.
2. If you are running a ramdisk with NagiosXI you may need to adjust the sizing depending upon how many services are reporting passively via NRDP.
3. Your XI server can only process so many checks per-second be very aware of the load put on XI via passive checks.

Where the rubber meets the burnout...

NagiosXI works with four possible "states" for checks, this can be difficult when trying to map severities passed in from external sources as it must be done on the client side.

This is where you will have to dig into your source application and the methods available.

As the docs list with DT, you'd be formatting a custom payload to go along with the alert scope chosen for your integration.?
https://docs.dynatrace.com/docs/observe ... ntegration

Once the state mapping is done formatting of the payload is pretty simple for both hosts and services.
The only difference in the states CRITICAL,WARNING,OK and that other guy is the type,the state_id of course and the output message.

Code: Select all

#CRITICAL CHECK RESULT
{"checkresult": {"type": "service","checktype": "1"},"hostname": "'somehost'", "servicename":"check_memory", "state":"2''", "output":"'CRITICAL: It's Over 9000! | mem=9001;8999;9000;'"}'

Code: Select all

#WARNING CHECK RESULT
'{"checkresult": {"type": "service","checktype": "1"},"hostname": "'somehost'", "servicename":"check_memory", "state":"1''", "output":"'WARNING: It's almost 9000! | mem=8999;8999;9000;'"}'

Code: Select all

#NOMINAL CHECK RESULT
'{"checkresult": {"type": "service","checktype": "1"},"hostname": "'somehost'", "servicename":"check_memory", "state":"0''", "output":"'OK: It's 4995 | mem=4995;8999;9000;'"}'
NOTE: When submitting either single result or multiple check results they must be in the checkresults array

Code: Select all

{"checkresults":[
{"checkresult": {"type": "service","checktype": "1"},"hostname": "'somehost'", "servicename":"check_memory", "state":"1''", "output":"'WARNING: It's almost 9000! | mem=8999;8999;9000;'"}',
{"checkresult": {"type": "service","checktype": "1"},"hostname": "'somehost2'", "servicename":"check_memory", "state":"2''", "output":"'CRITICAL: It's Over 9000! | mem=9001;8999;9000;'"}'
]}'
Post Reply