View on
MetaCPAN
Mikael Nordin > Nagios-NRPE > Nagios::NRPE::Packet

Download:
Nagios-NRPE-1.0.2.tar.gz

Dependencies

Annotate this POD

Website

CPAN RT

New  1
Open  0
View/Report Bugs
Module Version: v1.0.2   Source  

NAME ^

Nagios::NRPE::Packet - Assembly and de-assembly of an NRPE packet

SYNOPSIS ^

 use IO::Socket;
 use IO::Socket::INET;
 # Import necessary constants into Namespace
 use Nagios::NRPE::Packet qw(NRPE_PACKET_VERSION_3
                             NRPE_PACKET_QUERY
                             MAX_PACKETBUFFER_LENGTH
                             STATE_UNKNOWN
                             STATE_CRITICAL
                             STATE_WARNING
                             STATE_OK);

 my $packet = Nagios::NRPE::Packet->new();

 my $socket = IO::Socket::INET->new(
                    PeerAddr => $host,
                    PeerPort => $port,
                    Proto    => 'tcp',
                    Type     => SOCK_STREAM) or die "ERROR: $@ \n";

 print $socket $packet->assemble(type => QUERY_PACKET,
                              buffer => "check_load 1 2 3",
                              version => NRPE_PACKET_VERSION_3 );

 my $data = <$socket>
 my $response = $packet->deassemble($data);

 print $response->{buffer};
 exit $response->{result_code};

DESCRIPTION ^

This class is meant to be used when an active connection exists and is ready to send the packet.

CONSTRUCTION ^

new

Takes the following options as a hashref

SUBROUTINES ^

Following functions can be used after the creation of the packet

assemble()

Takes a hash of options defining the packet to be sent and returns the assembled packet. You can print this to an open socket and send it to either a server or the client depending on your situation.

 * check

A string defining the check to be run or the output of a check eg: "check_cpu" NOTE: Nagios can accept arguments appended to the check in the form: "check_somecheck!ARG1!ARG2!ARG..."

 * version

The NRPE version you want to use (only V2 and V3 work V1 is not supported, deafult is V3).

See CONSTANTS for options here.

 * type

The TYPE of packet you wish to send, which is either QUERY or RESPONSE.

See CONSTANTS for options here.

 * result_code

This is the exit code of the check script that is run, and check_nrpe.pl will exit with this value from the RESPONSE packet.

A set value for the QUERY type packet is 2324.

assemble_v2()

A helper function to assemble a V2 packet.

assemble_v3()

A helper function to assemble a V3 packet.

deassemble()

Takes a packet recieved by either client or server and deassembles them. The returned hashref contains the following values for a V3 packet:

 packet_version 
 packet_type    
 crc32_value    
 result_code    
 alignment      
 buffer_length  
 buffer

and the following values for a V2 packet:

 packet_version 
 packet_type    
 crc32_value    
 result_code    
 buffer
deassemble_v2()

Helper function for deassembleing a V2 packet

deassemble_v3()

Helper function for deassembleing a V3 packet

validate($packet)

Validates the contents of a packet using CRC32 checksumming. Returns undef if not succesful.

packet_dump

Debugging function for hexdumping a binary string.

CONSTANTS ^

These constants can be exported upon request with the 'use' pragma like this:

 # Will only import the constant NRPE_PACKET_VERSION_3 into your namespace
 use Nagios::NRPE::Packet qw(NRPE_PACKET_VERSION_3);

COPYRIGHT AND LICENSE ^

This software is copyright (c) 2017 by the authors (see AUTHORS file).

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

syntax highlighting: