Feed a xymond channel to a worker module
xymond_channel --channel=CHANNEL [options] workerprogram [worker-options]
xymond_channel hooks into one of the xymond(8) channels that provide information about events occurring in the Xymon system. It retrieves messages from the xymond daemon, and passes them on to the workerprogram on the STDIN (file descripter 1) of the worker program. Worker programs can then handle messages as they like.
A number of worker programs are shipped with xymond, e.g. xymond_filestore(8) xymond_history(8) xymond_alert(8) xymond_rrd(8)
If you want to write your own worker module, a sample worker module is provided as part of the xymond distribution in the xymond_sample.c file. This illustrates how to easily fetch and parse messages.
xymond_channel accepts a few options.
Specifies the channel to receive messages from, only one channel can be used. This option is required. The following channels are available:
"status" receives all Xymon status- and summary-messages
"stachg" receives information about status changes
"page" receives information about statuses triggering alerts
"data" receives all Xymon "data" messages
"notes" receives all Xymon "notes" messages
"enadis" receives information about hosts being disabled or enabled.
EXPRESSION is a Perl-compatible regular expression. xymond_channel will match the first line of each message against this expression, and silently drops any message that does not match the expression. Especially useful for custom worker modules and during testing, to limit the amount of data that the module must process.
Note that messages for "logrotate", "shutdown", "drophost", "renamehost", "droptest" and "renametest" are always forwarded by xymond_channel, whether they match the filter or not.
Modify the default timeout (30 seconds) for the worker module to handle a message. If a message is not handled within this time, it is considered lost. You normally do not have to modify this unless you have an extremely busy server.
xymond_channel is normally started by xymonlaunch(8) as a task defined in the tasks.cfg(5) file. If you are not using xymonlaunch, then starting xymond_channel with this option causes it to run as a stand-alone background task.
If running as a stand-alone daemon, xymond_channel will save the process-ID of the daemon in FILENAME. This is useful for automated startup- and shutdown- scripts.
Loads the environment variables defined in FILENAME before starting xymond_channel. This is normally used only when running as a stand-alone daemon; if xymond_channel is started by xymonlaunch, then the environment is controlled by the task definition in the tasks.cfg(5) file.
Redirect output to this log-file.
Enable/disable checksumming of messages passed from xymond_channel to the worker module. This may be useful if you suspect that data may be corrupted, e.g. when sent to a remote worker module. Note that enabling this may break communication with old versions of Xymon worker modules. Default: Disabled.
Enable debugging output.
This program does not use any configuration files.
xymond(8), xymon(7)