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.