NAME

Monitoring::Availability - Calculate Availability Data from Nagios and Icinga Logfiles.

SYNOPSIS

use Monitoring::Availability;
my $ma = Monitoring::Availability->new();

DESCRIPTION

This module calculates the availability for hosts/server from given logfiles. The Logfileformat is Nagios/Icinga only.

REPOSITORY

Git: http://github.com/sni/Monitoring-Availability

CONSTRUCTOR

new ( [ARGS] )

Creates an Monitoring::Availability object. new takes at least the logs parameter. Arguments are in key-value pairs.

rpttimeperiod

report timeperiod. defines a timeperiod for this report. Will use 24x7 if not specified.

assumeinitialstates

Assume the initial host/service state if none is found, default: yes

assumestateretention

Assume state retention, default: yes

assumestatesduringnotrunning

Assume state during times when the monitoring process is not running, default: yes

includesoftstates

Include soft states in the calculation. Only hard states are used otherwise, default: no

initialassumedhoststate

Assumed host state if none is found, default: unspecified

valid options are: unspecified, current, up, down and unreachable

initialassumedservicestate

Assumed service state if none is found, default: unspecified

valid options are: unspecified, current, ok, warning, unknown and critical

backtrack

Go back this amount of days to find initial states, default: 4

showscheduleddowntime

Include downtimes in calculation, default: yes

timeformat

Time format for the log output, default: %s

verbose

verbose mode

METHODS

calculate

calculate()

Calculate the availability

start

Timestamp of start

end

Timestamp of end

log_string

String containing the logs

log_file

File containing the logs

log_dir

Directory containing *.log files

log_livestatus

Array with logs from a livestatus query

a sample query could be:
selectall_arrayref(GET logs...\nColumns: time type options, {Slice => 1})
hosts

array with hostnames for which the report should be generated

services

array with hashes of services for which the report should be generated. The array should look like this:

[{host => 'hostname', service => 'description'}, ...]
initial_states

if you use the "current" option for initialassumedservicestate or initialassumedhoststate you have to provide the current states with a hash like this:

{
  hosts => {
   'hostname' => 'ok',
   ...
  },
  services => {
   'hostname' => {
       'description' =>  'warning',
       ...
    }
  }
}

valid values for hosts are: up, down and unreachable

valid values for services are: ok, warning, unknown and critical

get_condensed_logs

get_condensed_logs()

returns an array of hashes with the condensed log used for this report

get_full_logs

get_full_logs()

returns an array of hashes with the full log used for this report

BUGS

Please report any bugs or feature requests to http://github.com/sni/Monitoring-Availability/issues.

SEE ALSO

You can also look for information at:

AUTHOR

Sven Nierlein, <nierlein@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2010 by Sven Nierlein

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