Plugin Monitor
The Plugin Monitor makes it easier to add custom monitors to PA Server Monitor. To make plugin reuse as easy as possible, this monitor is compatible with the output from Nagios plugins,
which means many plugins from the Nagios Exchange will work. Not all plugins at the exchange will work - some need extra dependencies, and some don't follow
the plugin output format properly.
Plugin Types
Plugins are executable programs or scripts that can be run by the monitor. There are two types:
- Windows programs/scripts - These are run on the Central Monitoring Service, or a Satellite Monitoring Service, that is monitoring the target server.
- SSH - These are scripts or programs run via an SSH session. A terminal session will be created on the target device via SSH from the monitoring service (Central Service or Satellite Monitoring Service).
Plugin commands can use replacement variables in the command line which will be replaced before the command is run. For example, the following could be used as a monitor template:
perl.exe c:\scripts\check_win_snmp_cpuload.pl $DEVICENAME$ public 70 90
In this case $DEVICENAME$ could be replaced by the target device's hostname/IP as it is known to the system.
Output Format
Any program/script can be used as a plugin as long as it follows these rules:
- Return/Exit Code
- The return code, also known as an exit code, for the program will be interpreted as follows:
- 0 - OK
- 1 - monitor should go into Alert state and run actions
- 2 - monitor should go into Alert (Red) state and run actions
- 3 - monitor should go into Can't Run Monitor Now, and try again soon
Any return code other than the above will put the monitor into the red Can't Run Monitor error state.
- Returned Status
-
This monitor is compatible with Nagios plugins, which means the returned text (from stdout; stderr is ignored) as follows:
- Any text on the first line, up to a | (pipe) symbol is status text that will be used for the monitor status and for alerts. Everything after the | is considered performance data.
- Any text on the following lines will be appended to the first line as more status text.
- The next to the last line uses the same format as the first line (meaning it can have the optional | symbol with performance data following).
- All of the last line is considered performance data.
In all cases, the performance data must be formatted as:
{name}={value}{unit};{warning threshold};{everything here ignored up until a space}{space character}{name}={value}{unit};{warning threshold};...
- {name} must be quoted with a single quote if the name contains spaces.
- {unit} is optional, and can be one of: %, ms, us, s, B, KB, MB, TB
- {warning threshold} is optional, but if it exists, is assumed to use the same unit as {value}
- Spaces are important - a space signifies the end of one performance value and the start of the next.
Some examples:
OK - everything running smoothly|CPU=1% 'Physical Memory'=1TB 'Free Disk Space'=57%;10;5;1; (this is all on one line)
Note that the 5;1; above is ignored since it comes after the threshold.
Alert - temperatures are too high. CPU is 220F
Disk temperatures are 180F, 190F
This plugin did not return any performance data - it's all status text. Also note that the plugin MUST return an exit code of 1 or 2 if the monitor is supposed to fire actions - the status text does not affect the monitor status.
OK - Mail systems good | CPU=5%;90 Free-Disk:80%
Memory-Usage:45% Mail-Store-Usage:67%
The last line is performance data that will be parsed and stored in the database.
Testing
The Test Plugin button will run the plugin and show how the text was interpreted, and show the raw text that was received from the plugin. For SSH-run plugins, you will see a few lines of additional script code that are used to receive the output.
Standard Configuration Options
Like all monitors, this monitor has standard buttons on the right for Adding Actions,
setting Advanced Options and setting the Monitor Schedule.
Supported Reports
The Plugin Monitor can create reports based on the performance values returned from the plugin progra/script. This data can be charted as well as output
in .CSV or HTML tabular form.