GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages


Manual Reference Pages  -  NAGIOS::STATUSLOG (3)

.ds Aq ’

NAME

Nagios::StatusLog, Nagios::(Service|Host|Program)::Status - Perl objects to represent the Nagios status file

CONTENTS

DESCRIPTION

Reads the Nagios status log and returns ::Status objects that can be used to get status information about a host. For Nagios version 2.x logs, pass in the Version => 2.0 parameter to new(). And similarly, pass in the Version => 3.0 parameter to new() for Nagios version 3.x logs.



 my $log = Nagios::StatusLog->new(
                Filename => "/var/opt/nagios/status.log",
                Version  => 1.0
           );
 $localhost = $log->host( "localhost" );
 print "status of localhost is now ",$localhost->status(),"\n";
 $log->update();
 print "status of localhost is now ",$localhost->status(),"\n";

 # for Nagios v2.0
 my $log = Nagios::StatusLog->new(
                Filename => "/var/opt/nagios/status.dat",
                Version  => 2.0
           );

 # for Nagios v3.0
 my $log = Nagios::StatusLog->new(
                Filename => "/var/opt/nagios/status.dat",
                Version  => 3.0
           );



METHODS

new() Create a new Nagios::StatusLog instance. The object will be initialized for you (using $self->update()).
Nagios::StatusLog->new( /var/opt/nagios/status.log );
update() Updates the internal data structures from the logfile.
$log->update();
service() Returns a Nagios::Service::Status object. Input arguments can be a host_name and description list, or a Nagios::Service object.



 my $svc_stat = $log->service( "localhost", "SSH" );
 my $svc_stat = $log->service( $localhost_ssh_svc_object );



Nagios::Service::Status has the following accessor methods (For V1):
host_name
description
status
current_attempt
state_type
last_check next_check
check_type
checks_enabled
accept_passive_service_checks
event_handler_enabled
last_state_change
problem_has_been_acknowledged
last_hard_state
time_ok
current_notification_number
time_warning
time_critical
process_performance_data
notifications_enabled
latency
scheduled_downtime_depth
is_flapping
plugin_output
percent_state_change
execution_time
time_unknown
failure_prediction_enabled
last_notification
obsess_over_service
flap_detection_enabled

list_services() Returns an array of all service descriptions in the status log. Services that may be listed on more than one host are only listed once here.



 my @all_services = $log->list_services;



list_services_on_host() Returns an array of services descriptions for a given host.



 my @host_services = $log->list_services_on_host($hostname);
 my @host_services = $log->list_services_on_host($nagios_object);



host() Returns a Nagios::Host::Status object. Input can be a simple host_name, a Nagios::Host object, or a Nagios::Service object.



 my $hst_stat = $log->host( localhost );
 my $hst_stat = $log->host( $host_object );
 my $hst_stat = $log->host( $svc_object );



Nagios::Host::Status has the following accessor methods (for V1):
host_name
status
last_check
last_state_change
problem_has_been_acknowledged
time_up
time_down
time_unreachable
last_notification
current_notification_number
notifications_enabled
event_handler_enabled
checks_enabled
flap_detection_enabled
is_flapping
percent_state_change
scheduled_downtime_depth
failure_prediction_enabled
process_performance_data
plugin_output

list_hosts() Returns a simple array of host names (no objects).



 my @hosts = $log->list_hosts;



list_hostdowntime() Returns a simple array of host downtimes (no objects)



 my @hostdowntimes = $log->list_hostdowntime;



info() [Nagios v2 & v3 logs only] Returns a Nagios::Info::Status object. It only has two methods, created() and version().



 my $i = $log->info;
 printf "Logfile created at %s unix epoch time for Nagios verion %s\n",
    $i->created,
    $i->version;



contact() [Nagios v3 logs only] Returns a Nagios::Contact::Status object. Input can be a simple contact_name, or a Nagios::Contact object.



 my $c = $log->contact( john );
 my $c = $log->contact( $contact_object );



Nagios::Contact::Status has the following accessor methods (for v3):
contact_name
modified_attributes
modified_host_attributes
modified_service_attributes
host_notification_period
service_notification_period
last_host_notification
last_service_notification
host_notifications_enabled
service_notifications_enabled

hostcomment() [Nagios v3 logs only] Returns a Nagios::Hostcomment::Status object. Input can be a simple host_name, or a Nagios::Host or Nagios::Service object.



 my $c = $log->hostcomment( localhost );
 my $c = $log->hostcomment( $localhost_object );
 my $c = $log->hostcomment( $localhost_service_object );
 foreach my $id (sort keys %$c) {
     printf "Host %s has a comment[$id] made by %s on %s: %s",
       $c->{$id}->host_name, $c->{$id}->author, scalar localtime $c->{$id}->entry_time, $c->{$id}->comment_data;
 }



Nagios::Hostcomment::Status is a perl HASH, keyed with the Nagios comment IDs, where each ID has the following accessor methods (for v3):
host_name
entry_type
comment_id
source
persistent
entry_time
expires
expire_time
author
comment_data

servicecomment() [Nagios v3 logs only] Returns a Nagios::Servicecomment::Status object. Input can be a simple host_name or Nagios::Host object with a service description or Nagios::Service object, or just a Nagios::Service object by itself.



 my $c = $log->servicecomment( localhost, SSH );
 my $c = $log->servicecomment( $localhost_object, $localhost_ssh_svc_object );
 my $c = $log->servicecomment( $localhost_ssh_svc_object );
 foreach my $id (sort keys %$c) {
     printf "Service %s on %s  has a comment[$id] made by %s on %s: %s",
       $c->{$id}->service_description, $c->{$id}->host_name, $c->{$id}->author, scalar localtime $c->{$id}->entry_time, $c->{$id}->comment_data;
 }



Nagios::Servicecomment::Status is a perl HASH, keyed with the Nagios comment IDs, where each ID has the following accessor methods (for v3):
host_name
service_description
entry_type
comment_id
source
persistent
entry_time
expires
expire_time
author
comment_data

hostdowntime() [Nagios v3 logs only] Returns a Nagios::Hostdowntime::Status object. Input can be a simple host_name, or a Nagios::Host or Nagios::Service object.



 my $d = $log->hostdowntime( localhost );
 my $d = $log->hostdowntime( $localhost_object );
 my $d = $log->hostdowntime( $localhost_service_object );
 foreach my $id (sort keys %$d) {
     printf "Host %s has scheduled downtime[$id] made by %s on %s for %.1f hours [%s - %s]: %s",
       $d->{$id}->host_name, $d->{$id}->author, scalar localtime $d->{$id}->entry_time, ($d->{$id}->duration)/3600.0,
         scalar localtime $d->{$id}->start_time, scalar localtime $d->{$id}->end_time, $d->{$id}->comment;
 }



Nagios::Hostdowntime::Status is a perl HASH, keyed with the Nagios downtime IDs, where each ID has the following accessor methods (for v3):
host_name
downtime_id
entry_time
start_time
end_time
triggered_by
fixed
duration
author
comment

servicedowntime() [Nagios v3 logs only] Returns a Nagios::Servicedowntime::Status object. Input can be a simple host_name or Nagios::Host object with a service description or Nagios::Service object, or just a Nagios::Service object by itself.



 my $c = $log->servicedowntime( localhost, SSH );
 my $c = $log->servicedowntime( $localhost_object, $localhost_ssh_svc_object );
 my $c = $log->servicedowntime( $localhost_ssh_svc_object );
 foreach my $id (sort keys %$d) {
     printf "Service %s on %s has scheduled downtime[$id] made by %s on %s for %.1f hours [%s - %s]: %s",
       $d->{$id}->service_description, $d->{$id}->host_name, $d->{$id}->author, scalar localtime $d->{$id}->entry_time, ($d->{$id}->duration)/3600.0,
         scalar localtime $d->{$id}->start_time, scalar localtime $d->{$id}->end_time, $d->{$id}->comment;
 }



Nagios::Servicedowntime::Status is a perl HASH, keyed with the Nagios downtime IDs, where each ID has the following accessor methods (for v3):
host_name
service_description
downtime_id
entry_time
start_time
end_time
triggered_by
fixed
duration
author
comment

program() Returns a Nagios::Program::Status object. No arguments.



 my $prog_st = $log->program;



Nagios::Program::Status has the following accessor methods (For V1):
program_start
nagios_pid
daemon_mode
last_command_check
last_log_rotation
enable_notifications
execute_service_checks
accept_passive_service_checks
enable_event_handlers
obsess_over_services
enable_flap_detection
enable_failure_prediction
process_performance_data

STRUCTURE

This module contains 4 packages: Nagios::StatusLog, Nagios::Host::Status, Nagios::Service::Status, and Nagios::Program::Status. The latter 3 of them are mostly generated at compile-time in the BEGIN block. The accessor methods are real subroutines, not AUTOLOAD, so making a ton of calls to this module should be fairly quick. Also, update() is set up to only do what it says - updating from a fresh logfile should not invalidate your existing ::Status objects.

AUTHOR

Al Tobey <tobeya@tobert.org>

SEE ALSO

Nagios::Host Nagios::Service
Search for    or go to Top of page |  Section 3 |  Main Index


perl v5.20.3 NAGIOS::STATUSLOG (3) 2016-04-03

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with manServer 1.07.