#!/usr/bin/perl
# Script to monitor NetASQ UTM v9 internal temperature from Nagios
# 15/06/2013 Made by Securizame (www.securizame.com)
# info@securizame.com
use Getopt::Std;
#USAGE $0 -H $donde -w $warntemp -c $crittemp
my $user=\'admin\';
my $pass=\'la_password\';
my $internal_ip=\'aaa.bbb.ccc.ddd\';
my $temp;
getopts(\'H:w:c:\');
my $host=$opt_H;
my $warn=$opt_w;
my $crit=$opt_c;
#Populate "/tmp/comando" file with "MONITOR STAT" command
system ("sshpass -p $pass ssh $user\\@$host -o StrictHostKeyChecking=no \\"echo MONITOR STAT > /tmp/comando\\"");
#Remote MONITOR STAT execution
system ("sshpass -p $pass ssh $user\\@$host -o StrictHostKeyChecking=no \\"nsrpc -c /tmp/comando $user:$pass\\@$internal_ip > /tmp/output\\"");
#Get output to local machine
my $devuelve=`sshpass -p $pass ssh $user\\@$host -o StrictHostKeyChecking=no \\"cat /tmp/output\\"`;
#Delete remote tracks
system ("sshpass -p $pass ssh $user\\@$host -o StrictHostKeyChecking=no \\"rm -rf /tmp/output /tmp/comando\\"");
#Extract temperature value from retrieved output
my @cachos=split(/temperature\\=/,$devuelve);
my @trozos=split(/\\n/,$cachos[1]);
$temp=$trozos[0];
if ($temp >= $crit)
{
print ("CRITICAL, Temperature $temp\\n");
exit 2;
}
elsif ($temp >= $warn)
{
print ("WARNING, Temperature $temp\\n");
exit 1;
}
else
{
print ("OK, Temperature $temp\\n");
exit 0;
}