NAME

Nagios::MKLivestatus - access nagios runtime data from check_mk livestatus Nagios addon

SYNOPSIS

use Nagios::MKLivestatus;
my $nl = Nagios::MKLivestatus->new( socket => '/var/lib/nagios3/rw/livestatus.sock' );
my $hosts = $nl->selectall_arrayref("GET hosts");

DESCRIPTION

This module connects via socket to the check_mk livestatus nagios addon. You first have to install and activate the livestatus addon in your nagios installation.

CONSTRUCTOR

new ( [ARGS] )

Creates an Nagios::MKLivestatus object. new takes at least the socketpath. Arguments are in key-value pairs.

socket                    path to the UNIX socket of check_mk livestatus
server                    use this server for a TCP connection
verbose                   verbose mode
line_seperator            ascii code of the line seperator, defaults to 10, (newline)
column_seperator          ascii code of the column seperator, defaults to 0 (null byte)
list_seperator            ascii code of the list seperator, defaults to 44 (comma)
host_service_seperator    ascii code of the host/service seperator, defaults to 124 (pipe)
keepalive                 enable keepalive. Default is off
errors_are_fatal          errors will die with an error message. Default: on
timeout                   set a general timeout. Used for connect and querys, Default 10sec

If the constructor is only passed a single argument, it is assumed to be a the socket specification. Use either socker OR server.

METHODS

do

do($statement)

Send a single statement without fetching the result.
Always returns true.

selectall_arrayref

selectall_arrayref($statement)
selectall_arrayref($statement, %opts)
selectall_arrayref($statement, %opts, $limit )

Sends a query and returns an array reference of arrays

   my $arr_refs = $nl->selectall_arrayref("GET hosts");

to get an array of hash references do something like

   my $hash_refs = $nl->selectall_arrayref("GET hosts", { Slice => {} });

to get an array of hash references from the first 2 returned rows only

   my $hash_refs = $nl->selectall_arrayref("GET hosts", { Slice => {} }, 2);

use limit to limit the result to this number of rows

column aliases can be defined with a rename hash

   my $hash_refs = $nl->selectall_arrayref("GET hosts", { Slice => {}, rename => { 'name' => 'host_name' } });

selectall_hashref

selectall_hashref($statement, $key_field)

Sends a query and returns a hashref with the given key

   my $hashrefs = $nl->selectall_hashref("GET hosts", "name");

selectcol_arrayref

selectcol_arrayref($statement)
selectcol_arrayref($statement, %opt )

Sends a query an returns an arrayref for the first columns

   my $array_ref = $nl->selectcol_arrayref("GET hosts\nColumns: name");

   $VAR1 = [
             'localhost',
             'gateway',
           ];

returns an empty array if nothing was found


to get a different column use this

   my $array_ref = $nl->selectcol_arrayref("GET hosts\nColumns: name contacts", { Columns => [2] } );

you can link 2 columns in a hash result set

   my %hash = @{$nl->selectcol_arrayref("GET hosts\nColumns: name contacts", { Columns => [1,2] } )};

   produces a hash with host the contact assosiation

   $VAR1 = {
             'localhost' => 'user1',
             'gateway'   => 'user2'
           };

selectrow_array

selectrow_array($statement)

Sends a query and returns an array for the first row

   my @array = $nl->selectrow_array("GET hosts");

returns undef if nothing was found

selectrow_arrayref

selectrow_arrayref($statement)

Sends a query and returns an array reference for the first row

   my $arrayref = $nl->selectrow_arrayref("GET hosts");

returns undef if nothing was found

selectrow_hashref

selectrow_hashref($statement)

Sends a query and returns a hash reference for the first row

   my $hashref = $nl->selectrow_hashref("GET hosts");

returns undef if nothing was found

select_scalar_value

select_scalar_value($statement)

Sends a query and returns a single scalar

   my $count = $nl->select_scalar_value("GET hosts\nStats: state = 0");

returns undef if nothing was found

errors_are_fatal

errors_are_fatal($values)

Enable or disable fatal errors. When enabled the module will croak on any error.

returns always undef

verbose

verbose($values)

Enable or disable verbose output. When enabled the module will dump out debug output

returns always true

SEE ALSO

For more information about the query syntax and the livestatus plugin installation see the Livestatus page: http://mathias-kettner.de/checkmk_livestatus.html

AUTHOR

Sven Nierlein, <nierlein@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2009 by Sven Nierlein

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