Генерация конфигов Nagios контроль датчиков температуры

Скрипт  создает конфигу для  nagios для оборудоания  juniper.
Данные берет о датчиках с предельными трешхолддами из файла sensorc.txt:
$cat sensors.txt
PEM 0#50#60
PEM 1#50#60
PEM 2#50#60
PEM 3#50#60
FPC#50#75
Routing Engine 0#70#95
Routing Engine 1#70#95
CB 0#65#85
CB 1#65#85
Имена файлов из hostname.txt:
$cat hostname.txt
host_name                       host1.router.domain.com
host_name                       host2.router.domain.com
Собственно сам скрипт:

#!/usr/bin/perl
#
use strict;
my $sensors;
my @sensors;
my $sensor;
my $warning;
my $critical;
open (F, "sensors.txt");
foreach $sensor (<F>) { chop($sensor); push @sensors,$sensor;} 
close (F);
open (F, "hostname.txt");
my @words = <F>;
close (F);
my %seen;
my @unique;
foreach my $value (@words)
    { 
    if (! $seen{$value})
    { 
    push(@unique,$value);
    $seen{$value}=1;
    }
    }
#open (F,">", "hostname.txt");
#print F @unique;
#close (F);
open (CONF, ">", "services_temperature_juniper.cfg");    
foreach my $host (@unique)
{
(undef,$host)=split( " ",$host);
print CONF "# $host -\n";
foreach $sensors (@sensors)
{
($sensor,$warning,$critical)= split ("#",$sensors);
#print "#$host => $sensor #\n";
my $res=`/nagios/libexec/custom/check_snmp_temperature.pl -H $host -C SecRetCommunity -2 -T juniper -a '$sensor'  -o C -w 90 -c 100`;
if ( $res =~ m/^OK/) 
{
#print "OK- $host!!!!\n";
print CONF <<END;
define service \{ 
        use                     generic-router-temperature
        host_name               $host
        service_description     $host $sensor temperature
        check_command check_snmp_temp_juniper!"$sensor"!$warning!$critical
        \}
END
}
#print $res;
}
}
close (CONF);




Комментариев нет:

Отправить комментарий