Sven Nierlein > Monitoring-Availability-0.46 > Monitoring::Availability

Download:
Monitoring-Availability-0.46.tar.gz

Dependencies

Annotate this POD

CPAN RT

Open  0
View/Report Bugs
Module Version: 0.46   Source  

NAME ^

Monitoring::Availability - Calculate Availability Data from Nagios / Icinga and Shinken 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

breakdown

Breakdown availability into 'months', 'weeks', 'days', 'none'

adds additional 'breakdown' hash to each result with broken down results

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})
log_iterator
 Iterator object for logentry objects. For example a L<MongoDB::Cursor> object.
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.

DEBUGING ^

You may enable the debug mode by setting MONITORING_AVAILABILITY_DEBUG environment variable. This will create a logfile: /tmp/Monitoring-Availability-Debug.log which gets overwritten with every calculation. You will need the Log4Perl module to create this logfile.

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.

syntax highlighting: