|
@@ -104,6 +104,7 @@ sub _UpsINFO {
|
|
|
|
|
|
|
|
my $OIDModel = '.1.3.6.1.2.1.33.1.1.1.0';
|
|
my $OIDModel = '.1.3.6.1.2.1.33.1.1.1.0';
|
|
|
my $SchneiderModel = '.1.3.6.1.2.1.1.1.0';
|
|
my $SchneiderModel = '.1.3.6.1.2.1.1.1.0';
|
|
|
|
|
+my $OIDidentBasicModel = '1.3.6.1.4.1.318.1.1.1.1.1.1.0';
|
|
|
|
|
|
|
|
# APC OIDs
|
|
# APC OIDs
|
|
|
my $OIDAPC = '1.3.6.1.4.1.318.';
|
|
my $OIDAPC = '1.3.6.1.4.1.318.';
|
|
@@ -111,7 +112,6 @@ my $OIDhardware = '1.3.6.1.4.1.318.1.1.';
|
|
|
my $OIDups = '1.3.6.1.4.1.318.1.1.1.';
|
|
my $OIDups = '1.3.6.1.4.1.318.1.1.1.';
|
|
|
my $OIDident = '1.3.6.1.4.1.318.1.1.1.1.';
|
|
my $OIDident = '1.3.6.1.4.1.318.1.1.1.1.';
|
|
|
my $OIDidentBasic = '1.3.6.1.4.1.318.1.1.1.1.1.';
|
|
my $OIDidentBasic = '1.3.6.1.4.1.318.1.1.1.1.1.';
|
|
|
-my $OIDidentBasicModel = '1.3.6.1.4.1.318.1.1.1.1.1.1.0';
|
|
|
|
|
my $OIDidentBasicName = '1.3.6.1.4.1.318.1.1.1.1.1.2.0';
|
|
my $OIDidentBasicName = '1.3.6.1.4.1.318.1.1.1.1.1.2.0';
|
|
|
my $OIDidentAdv = '1.3.6.1.4.1.318.1.1.1.1.2.';
|
|
my $OIDidentAdv = '1.3.6.1.4.1.318.1.1.1.1.2.';
|
|
|
my $OIDidentAdvFW = '1.3.6.1.4.1.318.1.1.1.1.2.1.0';
|
|
my $OIDidentAdvFW = '1.3.6.1.4.1.318.1.1.1.1.2.1.0';
|
|
@@ -138,6 +138,15 @@ my $apcUpsAdvOutputCurrent ='1.3.6.1.4.1.318.1.1.1.4.2.4.0';
|
|
|
my $apcUpsAdvInputLineVoltage ='1.3.6.1.4.1.318.1.1.1.3.2.1.0';
|
|
my $apcUpsAdvInputLineVoltage ='1.3.6.1.4.1.318.1.1.1.3.2.1.0';
|
|
|
my $apcUpsAdvInputFrequency ='1.3.6.1.4.1.318.1.1.1.3.2.4.0';
|
|
my $apcUpsAdvInputFrequency ='1.3.6.1.4.1.318.1.1.1.3.2.4.0';
|
|
|
|
|
|
|
|
|
|
+my $apcUpsAdvInputLine3Voltage ='1.3.6.1.4.1.318.1.1.1.3.2.3.0';
|
|
|
|
|
+my $apcUpsAdvInputLine2Voltage ='1.3.6.1.4.1.318.1.1.1.3.2.2.0';
|
|
|
|
|
+my $apcUpsAdvInputLine1Voltage ='1.3.6.1.4.1.318.1.1.1.3.2.1.0';
|
|
|
|
|
+
|
|
|
|
|
+#EATON
|
|
|
|
|
+my $EatonBatteryTemp =' 1.3.6.1.4.1.534.1.6.1.0';
|
|
|
|
|
+
|
|
|
|
|
+#default UPS mib
|
|
|
|
|
+
|
|
|
my $BATTERYREPLACE = '2';
|
|
my $BATTERYREPLACE = '2';
|
|
|
|
|
|
|
|
my $defaultModel = '.1.3.6.1.2.1.33.1.1.2.0';
|
|
my $defaultModel = '.1.3.6.1.2.1.33.1.1.2.0';
|
|
@@ -189,14 +198,19 @@ my $TEMPWARN = 50;
|
|
|
|
|
|
|
|
my $vendor;
|
|
my $vendor;
|
|
|
my $vendor_string = GetSNMPkeyValue($snmp_session,$OIDModel);
|
|
my $vendor_string = GetSNMPkeyValue($snmp_session,$OIDModel);
|
|
|
|
|
+
|
|
|
|
|
+ if (!$vendor_string) { $vendor_string = GetSNMPkeyValue($snmp_session,$OIDidentBasicModel); }
|
|
|
if (!$vendor_string) { $vendor_string = GetSNMPkeyValue($snmp_session,$SchneiderModel); $vendor = 'Schneider'; }
|
|
if (!$vendor_string) { $vendor_string = GetSNMPkeyValue($snmp_session,$SchneiderModel); $vendor = 'Schneider'; }
|
|
|
|
|
+
|
|
|
return "Ups model unknown!<BR>" if (!defined($vendor_string));
|
|
return "Ups model unknown!<BR>" if (!defined($vendor_string));
|
|
|
|
|
|
|
|
if (!$vendor and $vendor_string=~/Eaton/i) { $vendor='EATON'; }
|
|
if (!$vendor and $vendor_string=~/Eaton/i) { $vendor='EATON'; }
|
|
|
if (!$vendor and $vendor_string=~/APC/i) { $vendor='APC'; }
|
|
if (!$vendor and $vendor_string=~/APC/i) { $vendor='APC'; }
|
|
|
|
|
+ if (!$vendor and $vendor_string=~/Symmetra/i) { $vendor='Symmetra'; }
|
|
|
|
|
|
|
|
- my $upsModel = GetSNMPkeyValue($snmp_session,$defaultModel);
|
|
|
|
|
|
|
+ my $upsModel = GetSNMPkeyValue($snmp_session,$defaultModel) || GetSNMPkeyValue($snmp_session,$OIDidentBasicModel);
|
|
|
|
|
|
|
|
|
|
+# my $ret = "UPS Model: ".$upsModel." Vendor: ".$vendor." [ $vendor_string ]\n\n";
|
|
|
my $ret = "UPS Model: ".$upsModel."\n\n";
|
|
my $ret = "UPS Model: ".$upsModel."\n\n";
|
|
|
|
|
|
|
|
my $battery_status = GetSNMPkeyValue($snmp_session,$defaultBatteryStatus);
|
|
my $battery_status = GetSNMPkeyValue($snmp_session,$defaultBatteryStatus);
|
|
@@ -215,7 +229,7 @@ my $TEMPWARN = 50;
|
|
|
$status = "%RED%Sleeping until power return%ENDCOLOR%" if ($battery_status eq 11);
|
|
$status = "%RED%Sleeping until power return%ENDCOLOR%" if ($battery_status eq 11);
|
|
|
$ret .= "| UPS Status | ".$status." |\n";
|
|
$ret .= "| UPS Status | ".$status." |\n";
|
|
|
|
|
|
|
|
- if ($vendor eq 'APC') {
|
|
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') {
|
|
|
my $batteryAdvReplace = $snmp_session->get_request(-varbindlist => [$OIDbatteryAdvReplace])->{$OIDbatteryAdvReplace};
|
|
my $batteryAdvReplace = $snmp_session->get_request(-varbindlist => [$OIDbatteryAdvReplace])->{$OIDbatteryAdvReplace};
|
|
|
if ($batteryAdvReplace && ($batteryAdvReplace eq $BATTERYREPLACE)) { $ret .= "| Battery Status | %RED%Battery requires replacement!%ENDCOLOR%|\n"; };
|
|
if ($batteryAdvReplace && ($batteryAdvReplace eq $BATTERYREPLACE)) { $ret .= "| Battery Status | %RED%Battery requires replacement!%ENDCOLOR%|\n"; };
|
|
|
$ret .= "| Battery Capacity | ".$snmp_session->get_request(-varbindlist => [$apcUpsAdvBatteryCapacity])->{$apcUpsAdvBatteryCapacity}."% |\n";
|
|
$ret .= "| Battery Capacity | ".$snmp_session->get_request(-varbindlist => [$apcUpsAdvBatteryCapacity])->{$apcUpsAdvBatteryCapacity}."% |\n";
|
|
@@ -223,43 +237,67 @@ my $TEMPWARN = 50;
|
|
|
|
|
|
|
|
my $inputHz = GetSNMPkeyValue($snmp_session,$defaultInputHz);
|
|
my $inputHz = GetSNMPkeyValue($snmp_session,$defaultInputHz);
|
|
|
if ($inputHz) { $inputHz = int($inputHz/10); }
|
|
if ($inputHz) { $inputHz = int($inputHz/10); }
|
|
|
- my $outputHz = GetSNMPkeyValue($snmp_session,$defaultOutputHz);
|
|
|
|
|
- if ($outputHz) { $outputHz = int($outputHz/10); }
|
|
|
|
|
- my $runtime;
|
|
|
|
|
|
|
|
|
|
- if ($vendor eq 'APC') {
|
|
|
|
|
|
|
+
|
|
|
|
|
+ my $runtime;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') {
|
|
|
$runtime = GetSNMPkeyValue($snmp_session,$OIDbatteryAdvRuntime);
|
|
$runtime = GetSNMPkeyValue($snmp_session,$OIDbatteryAdvRuntime);
|
|
|
$runtime=int($runtime/6000);
|
|
$runtime=int($runtime/6000);
|
|
|
- } else {
|
|
|
|
|
- if ($vendor eq 'EATON') {
|
|
|
|
|
- $runtime = GetSNMPkeyValue($snmp_session,'.1.3.6.1.4.1.534.1.2.1');
|
|
|
|
|
- } else {
|
|
|
|
|
- $runtime = GetSNMPkeyValue($snmp_session,$defaultLiveTime);
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ if ($vendor eq 'EATON') { $runtime = GetSNMPkeyValue($snmp_session,'.1.3.6.1.4.1.534.1.2.1'); }
|
|
|
|
|
+ if (!$runtime) { $runtime = GetSNMPkeyValue($snmp_session,$defaultLiveTime); }
|
|
|
if ($vendor eq 'EATON') { $runtime=int($runtime/60); }
|
|
if ($vendor eq 'EATON') { $runtime=int($runtime/60); }
|
|
|
- my $outputCurrent = GetSNMPkeyValue($snmp_session,$defaultOutputCurrent);
|
|
|
|
|
|
|
+
|
|
|
|
|
+ my $outputCurrent;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputCurrent = GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputCurrent); }
|
|
|
|
|
+ if (!$outputCurrent) { $outputCurrent = GetSNMPkeyValue($snmp_session,$defaultOutputCurrent); }
|
|
|
if ($outputCurrent) { $outputCurrent=$outputCurrent/10; }
|
|
if ($outputCurrent) { $outputCurrent=$outputCurrent/10; }
|
|
|
|
|
|
|
|
my $batTemp;
|
|
my $batTemp;
|
|
|
- if ($vendor eq 'APC') {
|
|
|
|
|
- $batTemp=GetSNMPkeyValue($snmp_session,$OIDbatteryAdvTemp);
|
|
|
|
|
- } else {
|
|
|
|
|
- if ($vendor eq 'EATON') {
|
|
|
|
|
- $batTemp=GetSNMPkeyValue($snmp_session,'.1.3.6.1.4.1.534.1.6.1.0');
|
|
|
|
|
- } else {
|
|
|
|
|
- $batTemp=GetSNMPkeyValue($snmp_session,$defaultbatteryTemp);
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $batTemp=GetSNMPkeyValue($snmp_session,$OIDbatteryAdvTemp); }
|
|
|
|
|
+ if ($vendor eq 'EATON') { $batTemp=GetSNMPkeyValue($snmp_session,$EatonBatteryTemp); }
|
|
|
|
|
+ if (!$batTemp) { $batTemp=GetSNMPkeyValue($snmp_session,$defaultbatteryTemp); }
|
|
|
|
|
+
|
|
|
|
|
+ my $outputVoltage;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputVoltage=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputVoltage); }
|
|
|
|
|
+ if (!$outputVoltage) { $outputVoltage = GetSNMPkeyValue($snmp_session,$defaultOutputAC); }
|
|
|
|
|
+
|
|
|
|
|
+ my $outputCurrent;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputCurrent=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputCurrent); }
|
|
|
|
|
+ if (!$outputCurrent) { $outputCurrent = GetSNMPkeyValue($snmp_session,$defaultOutputCurrent); }
|
|
|
|
|
+
|
|
|
|
|
+ my $outputHz;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputHz=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputFrequency); }
|
|
|
|
|
+ if (!$outputHz) { $outputHz = GetSNMPkeyValue($snmp_session,$defaultOutputHz); }
|
|
|
|
|
+ if ($outputHz and $outputHz>100 ) { $outputHz = int($outputHz/10); }
|
|
|
|
|
+
|
|
|
|
|
+ my $outputLoad;
|
|
|
|
|
+ if ($vendor eq 'APC' or $vendor eq 'Symmetra') { $outputLoad=GetSNMPkeyValue($snmp_session,$apcUpsAdvOutputLoad); }
|
|
|
|
|
+ if (!$outputLoad) { $outputLoad = GetSNMPkeyValue($snmp_session,$defaultUpsLoad); }
|
|
|
|
|
|
|
|
$ret .= "| Runtime Remaining | ". $runtime." min. |\n";
|
|
$ret .= "| Runtime Remaining | ". $runtime." min. |\n";
|
|
|
$ret .= "| Battery Temperature | ".$batTemp." C |\n";
|
|
$ret .= "| Battery Temperature | ".$batTemp." C |\n";
|
|
|
- $ret .= "| Output Voltage | ".GetSNMPkeyValue($snmp_session,$defaultOutputAC)." |\n";
|
|
|
|
|
- $ret .= "| Output Frequency | ".$outputHz." Hz |\n";
|
|
|
|
|
- $ret .= "| Output Load | ".GetSNMPkeyValue($snmp_session,$defaultUpsLoad)." % |\n";
|
|
|
|
|
|
|
+
|
|
|
|
|
+ if ($vendor eq 'Symmetra') {
|
|
|
|
|
+ my $input1=GetSNMPkeyValue($snmp_session,$apcUpsAdvInputLine1Voltage);
|
|
|
|
|
+ my $input2=GetSNMPkeyValue($snmp_session,$apcUpsAdvInputLine2Voltage);
|
|
|
|
|
+ my $input3=GetSNMPkeyValue($snmp_session,$apcUpsAdvInputLine3Voltage);
|
|
|
|
|
+ $ret .= "| Input Line1 Voltage | ".$input1." V |\n";
|
|
|
|
|
+ $ret .= "| Input Line2 Voltage | ".$input2." V |\n";
|
|
|
|
|
+ $ret .= "| Input Line3 Voltage | ".$input3." V |\n";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ if ($vendor ne 'Symmetra') {
|
|
|
|
|
+ $ret .= "| Input Voltage | ".$input_voltage." V |\n";
|
|
|
|
|
+ $ret .= "| Input Frequency | ".$inputHz." Hz |\n";
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ $ret .= "| Output Voltage | ".$outputVoltage." V |\n";
|
|
|
$ret .= "| Output Current | ".$outputCurrent." A |\n";
|
|
$ret .= "| Output Current | ".$outputCurrent." A |\n";
|
|
|
- $ret .= "| Input Voltage | ".$input_voltage." V |\n";
|
|
|
|
|
- $ret .= "| Input Frequency | ".$inputHz." Hz |\n";
|
|
|
|
|
|
|
+ $ret .= "| Output Frequency | ".$outputHz." Hz |\n";
|
|
|
|
|
+ $ret .= "| Output Load | ".$outputLoad." % |\n";
|
|
|
|
|
+
|
|
|
|
|
|
|
|
$snmp_session->close;
|
|
$snmp_session->close;
|
|
|
|
|
|