Plugin format for ZenCommands

Nagios® plugins are configured by using a command template. A template named "Device" will bind to all devices below the template definition. Within each template is a list of commands that will run. The commands can be any program that follows the Nagios® plug-in standard. Inputs are command line arguments; output is the first line of stdout, plus a return code.

Note: Resource Manager return codes differ from Nagios® return codes, as follows:

 ValueResource Manager Nagios
1Data SourceWARNING
2Data Source+1CRITICAL
3Data SourceUNKNOWN

For comprehensive information about Nagios® plugins, refer to the Nagios® Plugins Development Guidelines.

A Nagios® command has several fields:

  • name - Specifies the name of the command object.

  • enabled - Indicates whether this command should be used on a given device.

  • component - Specifies the component name to use when zencommand sends events to the system.

  • event class - Specifies the event class to use when sending events to the system.

  • severity - Sets the default severity to use when sending events to the system.

  • cycle time - Sets the frequency a command should be run (in seconds).

  • command template - Specifies the command to run.

    The command template string is built by using Zope TALES expressions. Several variables are passed when evaluating the template.They are:

  • zCommandPath - Path to the zencommand plug-ins on a given box it comes from the configuration property zCommandPath. zCommandPath is automatically added to a command if a path is absent from the beginning of the command.

  • devname - Device name of the device against which the command is being evaluated.

  • dev - Device object against which the command is being evaluated.

  • here - Context of evaluation. For a device, this is equivalent to dev for a component (such as a file system or interface).This is the component object.

  • compname - If this command evaluates against a component, specifies its name as a string.

  • now - Current time.

    Template values are accessed like shell variables.