#!/usr/bin/perl
#######################################
## Function: check nagios status
##
## Create data: 2011.6.23
#######################################
use warnings;
use strict;
use Time::Local;
use lib qw(/opt/nagios/libexec/lib);
use db;
my ($output_noupdate,$output_down,$output_notify);
my $output;
my $return;
my $curr_time = time();
######################
## Connect database
######################
my $script_path = "/opt/nagios/libexec";
require "$script_path/etc/nagios.pm";
my $n_dbh = db_connect();
require "$script_path/etc/centreon.pm";
my $c_dbh = db_connect();
my $sql;
my @items;
##############################
## Get all active nagios
##############################
$sql = "SELECT name FROM nagios_server WHERE ns_activate=1";
@items = @{db_fetch_assoc($sql,$c_dbh)};
my %nagios;
foreach my $ref (@items)
{
$nagios{$ref->{name}} = 1;
}
###########################
$sql = "SELECT instance_name, is_currently_running, notifications_enabled, status_update_time, unix_timestamp(status_update_time) AS timestamp ".
"FROM nagios_instances ni LEFT JOIN nagios_programstatus np ON (ni.instance_id = np.instance_id)";
@items = @{db_fetch_assoc($sql,$n_dbh)};
my $cur_time = time() - 300;
foreach my $ref (@items)
{
next if (!defined($nagios{"$ref->{instance_name}"}));
next if (!defined($ref->{is_currently_running}));
if ($ref->{is_currently_running} != 1) {
$output_down .= "$ref->{instance_name} ";