server Integration
nrpe-command-status (en)


ServicePilot server-nrpe-command-status


# NRPE Command Status

Overview

This package is designed to run an NRPE command and capture its alarm status using NRPE.

Description

This package can be customized to return the status of any available NRPE check command. The status values OK, WARNING, CRITICAL and UNKNOWN are returned as well as the text.

The NRPE Command Status package will support remote NRPE with or without SSL encryption. At the moment only unencrypted connections are supported.

Requirements

  • Network Flows - It is necessary to ensure network connectivity between ServicePilot and the monitored device. In case of a network infrastructure with a firewall, the following flow must be opened:

    • TCP/5666 (NRPE): Between ServicePilot Windows Agent and NRPE host
  • NRPE requirements

  • ServicePilot Requirements

    • ServicePilot Manager minimum version: 8.5
    • ServicePilot Agent minimum version: 8.5 installed and configured

Installation

Before adding a resource to monitor, make certain that all pre-requisites are in place and if a ServicePilot Agent is required, that it is communicating correctly with the ServicePilot Manager. Resources can be added to ServicePilot configuration in a number of ways:

Add resource using Views Configuration web interface

  1. As an administrative user of ServicePilot, open the ServicePilot web interface.
  2. Navigate to Administration. The Configuration > Views web page will open.
  3. Click on the view in which to place the new resource in the Views hierarchy on the left of the interface. The View editor section will show the existing view contents.
  4. From the Packages list on the right of the interface, click and drag the server-nrpe-command-status package into the View editor and let go.
  5. The Package properties dialog box will open to allow resource configuration.
  6. Click OK to close the Package properties dialog box. Note that the dialog box will not close if required parameters are not set.
  7. Click Save to apply the new resource to ServicePilot configuration.

Add resource by changing servicepilot.conf configuration file

Resources can be added to ServicePilot configuration by directly editing the servicepilot.conf or other included YAML configuration files. The ServicePilot web interface can be used to make these changes and apply them to the running configuration.

  1. As an administrative user of ServicePilot, open the ServicePilot web interface.
  2. Navigate to Administration.
  3. Navigate to Configuration > Edit configuration.
  4. Expand the configuration to find the provisioning: and then packages: section of the view in which the new resource will be placed.
  5. Add the example package configuration line below.
  6. Click on the green - package: word to open then Package properties dialog box to allow resource configuration.
  7. Click OK to close the Package properties dialog box. Note that the dialog box will not close if required parameters are not set.
  8. Click Save to apply the new resource to ServicePilot configuration.

Example:

- package: "server-nrpe-command-status;;;;;;;;server-nrpe-command-status;;127.0.0.1;5 minutes;Y;60;check_command;"

Key field notes

  1. Connection Parameters tab:

    1. IP address/FQDN: Specify the IP address, host name or FQDN for the host runnig the NRPE daemon
    2. NRPE SSL connection: Disable to turn off NRPE connection encryption. The NRPE daemon must match the connection type.
  2. NRPE Command tab:

    1. No Data Time-out: Set the delay after which the object will have an unknown status if no data is received by an NRPE command query
    2. Polling Interval (sec): Set the polling connection interval. Must be greater than 60 seconds and less than the No Data Time-out interval.
    3. NRPE Command: Name the plugin command to run on the remote host
    4. NRPE Arguments (space separated): Specify the NRPE plugin command arguments, if required

Notes

NRPE SSL encryption will be available in a later release.

This NRPE Command Status package can be used for many different types of checks. The NRPE Command Status dashboard will present all of these objects together. To be able to differentiate between different classes of commands run, it is recommended to name the objects using a convention that will allow filtering in the dashboards. For example: NRPE_Linux_Disk_HOST1. This will allow an Object filter to be set to NRPE_LinuxDisk* to see all Linux Disk NRPE checks.

NRPE Configuration file parameters

Nagios NRPE and winrpe

For Nagios NRPE or winrpe, the following configuration parameters need to be set correctly:

Nagios NRPE (/etc/nagios/nrpe.cfg) or winrpe (C:\Program Files (x86)\ICW\nrpe.cfg):

allowed_hosts=<servicepilot_agent_ip_address>
dont_blame_nrpe= (if required)
command[<command_name>]=<full_command_path> <parameters> (for the commands to be run)

When starting the Nagios NRPE deamon, a -n command line parameter needs to be added to run without SSL.

Nagios NRPE (/etc/init.d/nrpe):

start() {
    echo -n $"Starting $desc ($prog): "
    daemon $prog -c "$CONFIG" -n -d

winrpe uses xinetd to start nrpe so the -n command line parameter needs to be added in xinetd configuration to run without SSL.

winrpe (C:\Program Files (x86)\ICW\etc\xinetd.d\nrpe):

server = /bin/nrpe
server_args = -n -c /nrpe.cfg --inetd

NSClient++

For NSClient++, the following configuration parameters need to be set correctly:

NSClient++ (C:\Program Files\NSClient++\nsclient.ini):

[/settings/default]
allowed hosts = <servicepilot_agent_ip_address>

[/settings/NRPE/server]
insecure = true
use ssl = false
verify mode = (if required)
allow arguments = (if required)

[/settings/external scripts]
allow arguments = (if required)

[/settings/external scripts/scripts]
<script_name> = scripts\<script_file> <parameters> (for the scripts to be run)

[/modules]
CheckExternalScripts = 1
CheckHelpers = 1
NRPEServer = 1