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.