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
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)

If the constructor is only passed a single argument, it is assumed to be a the socket specification.

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
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

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.