NAME
Nagios::NRPE::Daemon - A Nagios NRPE Daemon
SYNOPSIS
use Nagios::NRPE::Daemon;
use IPC::Cmd qw(can_run run run_forked);
# create the commandlist we accept
my $commandlist =
};
my $callback = sub {
my ($self,$check,@options) = @_;
my $commandlist = $self->commandlist();
if ($commandlist->{$check}) {
my $args = $commandlist->{$check}->{args};
my $i = 0;
foreach (@options) {
$i++;
$args =~ "s/\$ARG$i\$/$_/";
}
my $buffer;
if (scalar run(command => $commandlist->{$check}->{bin} . " " . $args,
verbose => 0,
buffer => \$buffer,
timeout => 20)) {
return $buffer;
}
}
};
my $daemon = Nagios::NRPE::Daemon->new(
listen => "127.0.0.1",
port => "5666",
pid_dir => '/var/run',
ssl => 0,
commandlist => {
"check_cpu" => { bin => "/usr/lib/nagios/plugin/check_cpu",
args => "-w 50 -c 80" }
},
callback => $callback
);
=head1 DESCRIPTION
- new()
-
Takes the following options as a hashref:
- * listen:
-
Listen on this IP Address
- * port:
-
Port to listen on
- * pid_dir
-
The pidfile for this daemon
- * ssl
-
Use ssl (1|0)
- * commandlist
-
A hashref of the allowed commands on the daemon
- * callback
-
A sub executed everytime a check should be run. Giving the daemon full control what should happen.
my $callback = sub { my ($self,$check,@options) = @_; my $commandlist = $self->commandlist(); if ($commandlist->{$check}) { my $args = $commandlist->{$check}->{args}; my $i = 0; foreach (@options) { $i++; $args =~ "s/\$ARG$i\$/$_/"; } my $buffer; if (scalar run(command => $commandlist->{$check}->{bin} . " " . $args, verbose => 0, buffer => \$buffer, timeout => 20)) { return $buffer; } } };
- start
-
Starts the server and enters the Loop listening for packets
- commandlist
-
A hashref of elements that are valid commands. An example for it is:
"check_cpu" => { bin => "/usr/lib/nagios/plugin/check_cpu", args => "-w 50 -c 80" }
args
can contain $ARG1$ elements like normal nrpe.cfg command elements.
- create_socket
-
A shorthand function returning either an encrypted or unencrypted socket depending on wether ssl is set to 1 or 0.
6 POD Errors
The following errors were encountered while parsing the POD:
- Around line 76:
Expected text after =item, not a bullet
- Around line 80:
Expected text after =item, not a bullet
- Around line 84:
Expected text after =item, not a bullet
- Around line 88:
Expected text after =item, not a bullet
- Around line 92:
Expected text after =item, not a bullet
- Around line 96:
Expected text after =item, not a bullet