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
A simple daemon implementation with the capabillity to add your own callbacks and hooks in case you want to build your own NRPE Server.
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Andreas Marschke <andreas.marschke@googlemail.com>.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
- 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 87:
Expected text after =item, not a bullet
- Around line 91:
Expected text after =item, not a bullet
- Around line 95:
Expected text after =item, not a bullet
- Around line 99:
Expected text after =item, not a bullet
- Around line 103:
Expected text after =item, not a bullet
- Around line 107:
Expected text after =item, not a bullet