Provided by: libmonitoring-availability-perl_0.46-1_all
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: • Search CPAN <http://search.cpan.org/dist/Monitoring-Availability/> • Github <http://github.com/sni/Monitoring-Availability>
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.