|
|
| |
Nagios::StatusLog(3) |
User Contributed Perl Documentation |
Nagios::StatusLog(3) |
Nagios::StatusLog, Nagios::(Service|Host|Program)::Status - Perl objects to
represent the Nagios status file
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
);
- 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
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.
Al Tobey <tobeya@tobert.org>
Nagios::Host Nagios::Service
Visit the GSP FreeBSD Man Page Interface. Output converted with ManDoc. |