Скрипт создает конфигу для 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
#!/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);
Данные берет о датчиках с предельными трешхолддами из файла 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
Собственно сам скрипт:
#
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);
Комментариев нет:
Отправить комментарий