Passive Checks

send_nrdp Perl Client

Description:

Perl implementation of the send_nrdp client.

Designed as a drop-in replacement for send_nsca to make transition to nrdp easier.

Additional Features:
– Notify an additional nrpd host.
– Cache failed result sends to retry later.
– Verbose Logging.

Written in perl and has no requirement for CPAN modules.

NOTE: You’re welcome to include this with your NRDP project and list / maintain it there. You can reach me with questions if you need.

Current Version

1.0

Last Release Date

2011-03-10

Compatible With

  • Nagios 3.x
  • Nagios XI
  • Nagios Fusion

Owner

License

GPL


Nagios CSP

Meet The New Nagios Core Services Platform

Built on over 25 years of monitoring experience, the Nagios Core Services Platform provides insightful monitoring dashboards, time-saving monitoring wizards, and unmatched ease of use. Use it for free indefinitely.

Monitoring Made Magically Better

  • Nagios Core on Overdrive
  • Powerful Monitoring Dashboards
  • Time-Saving Configuration Wizards
  • Open Source Powered Monitoring On Steroids
  • And So Much More!
Project Files
Project Notes
############################################################################### # send_nrdp.pl - Perl implementation of an NRDP client. # Written: March 2011 # Author: Adam McLean ############################################################################### Design Goals: ------------ 1) Our environment is mixed Unix (AIX, Linux, Solaris). This needs to work on them all without CPAN modules. This meant no SSL support (sorry). 2) Act as a drop-in replacement for send_nrpe. Many scripts already call send_nrpe, and we'd like to move to NRDP seamlessly. 3) Allow for basic http authentication for those who like to have casual protection. Note that without SSL the user/password hash can be intercepted and easily read. 3) Optionally cache results if a send is failed so they can be retried the next time the script is run. Accomodates alarms that occur during Nagios builds or downtime. 4) Optionally send results to a second server running NRDP to accomodate distributed environemnts. One of them is likely up and can send the alarm if configured. 5) Optionally write an execution log file so verification / debugging is made easy. Command Line Options: --------------------- -H [hostname] ** REQUIRED ** - Specify the host address or IP address of the listening server. -p [port] ** OPTIONAL ** This value is ignored and exists for backward compatibility with send_nrpe. All communication is via port 80. -to [seconds] ** OPTIONAL ** - Number of seconds to wait before considering execution a timeout. - Default is 10. -d [delimiter] ** OPTIONAL ** - The delimiter to use when parsing alarms from standard input. - Default is tab. -c [config_file] ** OPTIONAL ** - Full path to the configuration file containing additional options. - This can be the send_nrpe configuration file with nrdp options in it, or a file with just nrdp options in it. -od ** OPTIONAL ** - Added for backward compatability with send_nrpe. nrpd doesn't appear to use timestamps in its execution. Data is sent first in first out. -url [url] ** REQUIRED on commandline or Config file ** - URL that the nrdp CGI can be found at. -token [token] ** REQUIRED on commandline or Config file ** - Token to use when submitting alarms. -http_user [user] ** OPTIONAL ** - User name to use when using basic http authentication. -http_pass [pass] ** OPTIONAL ** - Password to use when using basic http authentication. -debug ** OPTIONAL ** - Debug messages will be printed to stdout/stderr during execution. Configuration file options: --------------------------- Many of the extended options go in the configuration file. Because this can be used as a drop-in replacement for send_nrpe the configuration name=value pairs are prefixed with a comment. This allows them to live in the send_nrpe configuration file without interfering with normal send_nrpe operation. NOTE: All configuration options are in the format of # NRDP name=value NOTE: Values specified on the commandline over-ride values in the config file. # NRDP url=[url] ** REQUIRED in Config or commandline ** - URL that the NRDP cgi can be found at. # NRDP token=[token] ** REQUIRED in Config or commandline ** - Token to use when submitting results to NRDP. # NRDP http_user=[user] ** OPTIONAL ** - User name to use when using basic http authentication. # NRDP http_pass=[pass] ** OPTIONAL ** - Password to use when using basic http authentication. # NRDP additional_host=[hostname] ** OPTIONAL ** - Specify the additional host to notify. - NOTE: the URL for NRDP must be the same for this host as the one specified by the (-H) commandline option. # NRDP cache_file=[filename] ** OPTIONAL ** - Full path to the cache file to write failed send results to. - These will queue up until they are considered expired or succesfully sent. - Every time send_nrdp is called it will first try to send its cached results, then send fresh ones. # NRDP cache_expiration=[seconds] ** OPTIONAL ** - Number of seconds before we consider cached results as stale and discard them. - NOTE: There is no default for this. If you don't use this option beware that a busy host that can't talk to NRDP for a long period of time could make a very large cache_file. # NRDP logging=[0|1] ** OPTIONAL ** - Whether our execution should be logged. Set to 1 for true 0 for false. - Defult is false (0). - Data is logged to the log_file as defined (see below). # NRDP log_file=[filename] ** OPTIONAL ** - Full path to the log filename. This will be written to if logging is set to true (1). # NRDP parse_fatal=[0|1] ** OPTIONAL ** - Alarms are sent via stdin, and we expect them in a certain format. - Sometimes we're sending hundreds of alarms at once, and for whatever reason, one of those alarms might be missing a delimiter, or may come in with too many / few columns. - This controls whether a single alarm being incorrectly formatted is considered fatal, and prevents the send of the remaining alarms. - Default value is true (1), set to false (0) if errors in formatting are non-fatal, and shouldn't impede normal operation. # NRDP debug=[0|1] ** OPTIONAL ** - Determines whether debug messages should be sent to the log_file. - Allows for easy verification / debugging of scripted use of send_nrdp.pl when you can't be there to watch stdout/stderr. Alarm format: ------------- Alarms are sent to send_nrdp the same way they go to send_nrpe. Delimited by a seperator, and terminated by literal newlines. Service Checks: [tab][tab][tab][newline] Host Checks: [tab][tab][newline] NOTE: If you are sending long output in your plugin_output, make sure and use a LITERAL n, and not a newline character. Otherwise you'll get parsing errors.
Reviews (1) Add a Review
https port
by sit, January 31, 2015
the port and the protocol is hardcoded
it is not possible to use https
Helpful? Yes  No 
Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
2.3 (3)
Favorites
0
Views
93,013