add new huawei ibmc and hmm plugins (#1098)
This commit is contained in:
parent
e38ee7f06a
commit
e95a010777
|
@ -0,0 +1,51 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::blade;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("0"=>"ok","1"=>"warning","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"critical","6"=>"critical","7"=>"critical");
|
||||
my %eachStatus = ("0"=>"ok","1"=>"minor","2"=>"major","3"=>"major","4"=>"critical","5"=>"critical","6"=>"critical","7"=>"critical");
|
||||
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.8.0", $self->{option_results}->{bladeNum};
|
||||
my $componentTemperatureOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2012.1.2.1", $self->{option_results}->{bladeNum};
|
||||
my $tmpShortMessage = "";
|
||||
my $tmpSeverity = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$componentPresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$componentPresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$componentPresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$componentPresentOid} eq "1")
|
||||
{
|
||||
$result= $self->{snmp}->get_leef(oids =>[$componentStatusOid]);
|
||||
$tmpSeverity = $statusHash{$result->{$componentStatusOid}};
|
||||
$tmpShortMessage = $tmpShortMessage. "Blade".$self->{option_results}->{bladeNum}.":".$eachStatus{$result->{$componentStatusOid}};
|
||||
$result = $self->{snmp}->get_leef(oids =>[$componentTemperatureOid] );
|
||||
$tmpShortMessage = $tmpShortMessage." Temperature:".$result->{$componentTemperatureOid}."℃";
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $tmpSeverity,
|
||||
short_msg => $tmpShortMessage);
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
|
@ -0,0 +1,101 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::cpu;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"unknown");
|
||||
|
||||
my $bladePresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$bladePresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$bladePresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "1")
|
||||
{
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2006.1.4", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2006.1.5", $self->{option_results}->{bladeNum};
|
||||
my $componentMarkOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2006.1.2", $self->{option_results}->{bladeNum};
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $componentPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No cpu presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "1") # presence status: 0-not presence,1-presence
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $componentMarkOid.".".$endKey;
|
||||
$statusOid = $componentStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
if($statusHash{$tmpresult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "cpuPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,100 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::disk;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"unknown");
|
||||
|
||||
my $bladePresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$bladePresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$bladePresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "1")
|
||||
{
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2009.1.4", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2009.1.5", $self->{option_results}->{bladeNum};
|
||||
my $componentMarkOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2009.1.2", $self->{option_results}->{bladeNum};
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $componentPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No disk presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "1") # presence status: 0-not presence,1-presence
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $componentMarkOid.".".$endKey;
|
||||
$statusOid = $componentStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
if($statusHash{$tmpresult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "diskPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,70 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::fan;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical");
|
||||
|
||||
my $fanStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.3.2001.1.3";
|
||||
my $fanPresenceOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.3.2001.1.1";
|
||||
|
||||
my $tmpShortMessage;
|
||||
my $componentStatus ="unknown";
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $fanPresenceOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No fan presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpResult;
|
||||
my $totalPresence = 0;
|
||||
my $totalComponent = 14;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalPresence++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$tmpMsg = "Fan".$endKey.":";
|
||||
$statusOid = $fanStatusOid.".".$endKey;
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpResult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
|
||||
if($statusHash{$tmpResult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpResult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpResult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "fanPresence:".$totalPresence."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,100 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::memory;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"unknown");
|
||||
|
||||
my $bladePresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$bladePresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$bladePresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "1")
|
||||
{
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2007.1.4", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2007.1.5", $self->{option_results}->{bladeNum};
|
||||
my $componentMarkOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2007.1.2", $self->{option_results}->{bladeNum};
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $componentPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No memory presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "1") # presence status: 0-not presence,1-presence
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $componentMarkOid.".".$endKey;
|
||||
$statusOid = $componentStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
if($statusHash{$tmpresult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "memoryPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,100 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::mezz;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"unknown");
|
||||
|
||||
my $bladePresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$bladePresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$bladePresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "1")
|
||||
{
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2008.1.4", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2008.1.5", $self->{option_results}->{bladeNum};
|
||||
my $componentMarkOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2008.1.2", $self->{option_results}->{bladeNum};
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $componentPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No mezz presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "1") # presence status: 0-not presence,1-presence
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $componentMarkOid.".".$endKey;
|
||||
$statusOid = $componentStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg. $eachStatus{ $tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
if($statusHash{$tmpresult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "mezzPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,70 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::psu;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical");
|
||||
|
||||
my $psuPresenceOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.4.2001.1.1";
|
||||
my $psuStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.4.2001.1.3";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $psuPresenceOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No psu presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpResult;
|
||||
my $totalPresence = 0;
|
||||
my $totalComponent = 6;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalPresence++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1 ;
|
||||
$tmpMsg = "Psu".$endKey.":";
|
||||
$statusOid = $psuStatusOid.".".$endKey;
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpResult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
|
||||
if($statusHash{$tmpResult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpResult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpResult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "psuPresence:".$totalPresence."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,105 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::raid;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my $bladePresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.6.0", $self->{option_results}->{bladeNum};
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
my $result= $self->{snmp}->get_leef(oids =>[$bladePresentOid]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get blade info error.";
|
||||
}else
|
||||
{
|
||||
if ($result->{$bladePresentOid} eq "0")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s not presence.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "2")
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status indeterminate.", $self->{option_results}->{bladeNum};
|
||||
}elsif ($result->{$bladePresentOid} eq "1")
|
||||
{
|
||||
my $componentPresentOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2011.1.2", $self->{option_results}->{bladeNum};
|
||||
my $componentStatusOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2011.1.7", $self->{option_results}->{bladeNum};
|
||||
my $componentMarkOid = sprintf ".1.3.6.1.4.1.2011.2.82.1.82.4.%s.2011.1.3", $self->{option_results}->{bladeNum};
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $componentPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No raid presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpResult;
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "2") # presence status: 1-not presence,2-presence
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1 ;
|
||||
$temnameOid = $componentMarkOid.".".$endKey;
|
||||
$statusOid = $componentStatusOid.".".$endKey;
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
|
||||
$tmpMsg = $tmpResult->{$temnameOid}.":";
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
my $tmpStatus;
|
||||
if ($tmpResult->{$statusOid} eq "-1"){
|
||||
$tmpStatus = "unknown";
|
||||
}elsif($tmpResult->{$statusOid} eq "1")
|
||||
{
|
||||
$tmpStatus = "ok";
|
||||
}else
|
||||
{
|
||||
$tmpStatus = "warning";
|
||||
}
|
||||
$tmpMsg = $tmpMsg.$tmpStatus." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
if($tmpStatus eq "warning")
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif ($tmpStatus eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "raidPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = sprintf $tmpShortMessage."Blade%s status unknown.", $self->{option_results}->{bladeNum};
|
||||
}
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,27 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::shelf;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("0"=>"ok","1"=>"warning","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"critical","6"=>"critical","7"=>"critical");
|
||||
|
||||
my $componentStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.2.5.0";
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
my $tmpResult;
|
||||
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$componentStatusOid]);
|
||||
|
||||
$componentStatus = $statusHash{$tmpResult->{$componentStatusOid}};
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::smm;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("0"=>"ok","1"=>"warning","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"critical","6"=>"critical","7"=>"critical");
|
||||
|
||||
my $componentStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.3.9.0";
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
my $tmpResult;
|
||||
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$componentStatusOid]);
|
||||
|
||||
$componentStatus = $statusHash{$tmpResult->{$componentStatusOid}};
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
||||
|
|
@ -0,0 +1,71 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::switch;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical");
|
||||
|
||||
my $switchPresenceOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.2.2001.1.1";
|
||||
my $switchStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.100.2.2001.1.3";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
|
||||
$self->{snmp}->{snmp_force_getnext} = 1;
|
||||
my $result = $self->{snmp}->get_table(oid => $switchPresenceOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No switch presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $totalPresence = 0;
|
||||
my $totalComponent = 4;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalPresence++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$tmpMsg = "Switch".$endKey.":";
|
||||
$statusOid = $switchStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
|
||||
if($statusHash{$tmpresult->{$statusOid}} eq "critical")
|
||||
{
|
||||
$componentStatus = "critical";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "warning" && ($componentStatus ne "critical"))
|
||||
{
|
||||
$componentStatus = "warning";
|
||||
}elsif (($statusHash{$tmpresult->{$statusOid}}) eq "ok")
|
||||
{
|
||||
if ($componentStatus eq "unknown")
|
||||
{
|
||||
$componentStatus = "ok";
|
||||
}
|
||||
}
|
||||
}
|
||||
$tmpShortMessage = "switchPresence:".$totalPresence."\/".$totalComponent." ".$tmpShortMessage;
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::components::system;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("0"=>"ok","1"=>"warning","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"critical","6"=>"critical","7"=>"critical");
|
||||
|
||||
my $componentStatusOid = ".1.3.6.1.4.1.2011.2.82.1.82.1.1.0";
|
||||
my $tmpShortMessage = "";
|
||||
my $componentStatus = "unknown";
|
||||
my $tmpResult;
|
||||
|
||||
$tmpResult = $self->{snmp}->get_leef(oids =>[$componentStatusOid]);
|
||||
|
||||
$componentStatus = $statusHash{$tmpResult->{$componentStatusOid}};
|
||||
|
||||
$self->{output}->output_add(severity => $componentStatus,
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
package hardware::server::huawei::hmm::snmp::mode::hardwares;
|
||||
|
||||
use base qw(centreon::plugins::mode);
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::blade;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::switch;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::shelf;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::smm;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::system;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::cpu;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::fan;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::raid;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::memory;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::psu;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::disk;
|
||||
use hardware::server::huawei::hmm::snmp::mode::components::mezz;
|
||||
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
bless $self, $class;
|
||||
|
||||
$self->{version} = '1.0';
|
||||
$options{options}->add_options(arguments =>
|
||||
{
|
||||
"component:s" => { name => 'component', default => 'system' },
|
||||
"bladeNum:s" => { name => 'bladeNum', default => '0' },
|
||||
});
|
||||
$self->{components} = {};
|
||||
$self->{no_components} = undef;
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub check_options {
|
||||
my ($self, %options) = @_;
|
||||
$self->SUPER::init(%options);
|
||||
}
|
||||
|
||||
sub run {
|
||||
my ($self, %options) = @_;
|
||||
$self->{snmp} = $options{snmp};
|
||||
|
||||
if ($self->{option_results}->{component} eq 'system') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::system::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'cpu') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::cpu::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'fan') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::fan::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'raid') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::raid::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'memory') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::memory::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'psu') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::psu::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'disk') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::disk::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'blade') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::blade::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'shelf') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::shelf::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'smm') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::smm::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'switch') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::switch::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'mezz') {
|
||||
hardware::server::huawei::hmm::snmp::mode::components::mezz::check($self);
|
||||
} else {
|
||||
$self->{output}->add_option_msg(short_msg => "Wrong option. Cannot find component '" . $self->{option_results}->{component} . "'.");
|
||||
$self->{output}->option_exit();
|
||||
}
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
package hardware::server::huawei::hmm::snmp::plugin;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(centreon::plugins::script_snmp);
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
bless $self, $class;
|
||||
|
||||
$self->{version} = '1.0';
|
||||
%{$self->{modes}} = (
|
||||
'hardwares' => 'hardware::server::huawei::hmm::snmp::mode::hardwares',
|
||||
);
|
||||
|
||||
return $self;
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
|
||||
|
||||
=head1 PLUGIN DESCRIPTION
|
||||
|
||||
Check HUAWEI servers in SNMP.
|
||||
|
||||
=cut
|
|
@ -0,0 +1,63 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::cpu;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown","6"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"absence","6"=>"unknown");
|
||||
|
||||
my $cpuStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.15.1.0";
|
||||
my $statusTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.15.50.1.6";
|
||||
my $deviceTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.15.50.1.10";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $result = $self->{snmp}->get_table(oid => $statusTableOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No cpu presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v ne "5") # cpu present
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $deviceTableOid.".".$endKey;
|
||||
$statusOid = $statusTableOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = $self->{snmp}->get_leef(oids =>[$cpuStatusOid]);
|
||||
$tmpShortMessage = "cpuPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result-> {$cpuStatusOid}},
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,64 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::disk;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown","6"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"absence","6"=>"unknown");
|
||||
|
||||
my $diskStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.18.1.0";
|
||||
my $presentTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.18.50.1.2";
|
||||
my $statusTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.18.50.1.3";
|
||||
my $deviceTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.18.50.1.6";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $result = $self->{snmp}->get_table(oid => $presentTableOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No Disk presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "2") # disk present
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $deviceTableOid.".".$endKey;
|
||||
$statusOid = $statusTableOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = $self->{snmp}->get_leef(oids =>[$diskStatusOid]);
|
||||
$tmpShortMessage = "diskPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result-> {$diskStatusOid}},
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,64 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::fan;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown","6"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"absence","6"=>"unknown");
|
||||
|
||||
my $fanStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.8.3.0";
|
||||
my $presentTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.8.50.1.3";
|
||||
my $statusTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.8.50.1.4";
|
||||
my $deviceTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.8.50.1.7";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $result = $self->{snmp}->get_table(oid => $presentTableOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No fan presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "2") # fan present
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1 ;
|
||||
$temnameOid = $deviceTableOid.".".$endKey;
|
||||
$statusOid = $statusTableOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = $self->{snmp}->get_leef(oids =>[$fanStatusOid]);
|
||||
$tmpShortMessage = "fanPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result-> {$fanStatusOid}},
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,63 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::memory;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown","6"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"absence","6"=>"unknown");
|
||||
|
||||
my $memoryStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.16.1.0";
|
||||
my $statusTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.16.50.1.6";
|
||||
my $deviceTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.16.50.1.10";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $result = $self->{snmp}->get_table(oid => $statusTableOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No memory presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v ne "5") # memory present
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1 ;
|
||||
$temnameOid = $deviceTableOid.".".$endKey;
|
||||
$statusOid = $statusTableOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage = $tmpShortMessage.$tmpMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = $self->{snmp}->get_leef(oids =>[$memoryStatusOid]);
|
||||
$tmpShortMessage = "memoryPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result-> {$memoryStatusOid}},
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,64 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::psu;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical","5"=>"unknown","6"=>"unknown");
|
||||
my %eachStatus = ("1"=>"ok","2"=>"minor","3"=>"major","4"=>"critical","5"=>"absence","6"=>"unknown");
|
||||
|
||||
my $psuStatueOid = ".1.3.6.1.4.1.2011.2.235.1.1.6.1.0";
|
||||
my $presentTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.6.50.1.9";
|
||||
my $statueTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.6.50.1.7";
|
||||
my $deviceTableOid = ".1.3.6.1.4.1.2011.2.235.1.1.6.50.1.13";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $totalPresent = 0;
|
||||
my $totalComponent = 0;
|
||||
my $result = $self->{snmp}->get_table(oid => $presentTableOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."No psu presence.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$totalComponent++;
|
||||
if ($v eq "2") # psu present
|
||||
{
|
||||
$totalPresent++;
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
$temnameOid = $deviceTableOid.".".$endKey;
|
||||
$statusOid = $statueTableOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$temnameOid]);
|
||||
$tmpMsg = $tmpresult->{$temnameOid}.":";
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
$tmpMsg = $tmpMsg.$eachStatus{$tmpresult->{$statusOid}}." ";
|
||||
$tmpShortMessage=$tmpShortMessage.$tmpMsg;
|
||||
}
|
||||
}
|
||||
}
|
||||
$result = $self->{snmp}->get_leef(oids =>[$psuStatueOid]);
|
||||
$tmpShortMessage = "psuPresence:".$totalPresent."\/".$totalComponent." ".$tmpShortMessage;
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result-> {$psuStatueOid}},
|
||||
short_msg => $tmpShortMessage );
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,102 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::raid;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my $raidStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.36.50.1.7";
|
||||
my $bbuPresentOid = ".1.3.6.1.4.1.2011.2.235.1.1.36.50.1.16";
|
||||
my $bbuStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.36.50.1.18";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
my $result = $self->{snmp}->get_table(oid => $bbuPresentOid);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get BBU info failed.";
|
||||
}else
|
||||
{
|
||||
my $endKey;
|
||||
my $temnameOid;
|
||||
my $statusOid;
|
||||
my $tmpMsg;
|
||||
my $tmpresult;
|
||||
my $v;
|
||||
foreach my $k ($self->{snmp}->oid_lex_sort(keys %$result))
|
||||
{
|
||||
$v = $result->{$k};
|
||||
$endKey = "0";
|
||||
$temnameOid = "";
|
||||
$statusOid = "";
|
||||
$tmpMsg = "";
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
$endKey = $1;
|
||||
if ($v eq "2") # BBU present
|
||||
{
|
||||
$statusOid = $bbuStatusOid.".".$endKey;
|
||||
$tmpresult = $self->{snmp}->get_leef(oids =>[$statusOid]);
|
||||
my $tmpEachstate;
|
||||
if ($tmpresult->{$statusOid} eq "0")
|
||||
{
|
||||
$tmpEachstate="ok";
|
||||
}
|
||||
else
|
||||
{
|
||||
$tmpEachstate="warning";
|
||||
}
|
||||
$tmpMsg =$tmpMsg. "BBU ".$endKey.":".$tmpEachstate." ";
|
||||
$tmpShortMessage=$tmpShortMessage.$tmpMsg;
|
||||
}elsif ($v eq "1")
|
||||
{
|
||||
$tmpShortMessage= $tmpShortMessage."BBU".$1.":absent ";
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage= $tmpShortMessage."BBU".$1.":unknown ";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$result = $self->{snmp}->get_table(oid =>$raidStatusOid);
|
||||
my $raidseverity = "undefine";
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get raid Status failed."
|
||||
}else
|
||||
{
|
||||
while (my($k,$v)= each %$result){
|
||||
$k =~ /\.([0-9]+)$/;
|
||||
|
||||
if ($v eq "65535")
|
||||
{
|
||||
if( $raidseverity ne "warning")
|
||||
{
|
||||
$raidseverity = "unknown";
|
||||
}
|
||||
$tmpShortMessage = "RAID".$1.":unknown ".$tmpShortMessage;
|
||||
}elsif ($v eq "0")
|
||||
{
|
||||
if (($raidseverity ne "warning")&&($raidseverity ne "unknown"))
|
||||
{
|
||||
$raidseverity = "ok";
|
||||
}
|
||||
$tmpShortMessage = "RAID".$1.":ok ".$tmpShortMessage;
|
||||
}else
|
||||
{
|
||||
$raidseverity = "warning";
|
||||
$tmpShortMessage = "RAID".$1.":warning ".$tmpShortMessage;
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($raidseverity eq "undefine")
|
||||
{
|
||||
$raidseverity = "unknown";
|
||||
}
|
||||
|
||||
$self->{output}->output_add(severity => $raidseverity ,
|
||||
short_msg => $tmpShortMessage );
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,35 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::components::system;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
my %statusHash = ("1"=>"ok","2"=>"warning","3"=>"warning","4"=>"critical");
|
||||
my %powerHash = ("1"=>"normalPowerOff","2"=>"powerOn","3"=>"forcedSystemReset","4"=>"forcedPowerCycle","5"=>"forcedPowerOff");
|
||||
|
||||
my $systemStatusOid = ".1.3.6.1.4.1.2011.2.235.1.1.1.1.0";
|
||||
my $deviceNameOid = ".1.3.6.1.4.1.2011.2.235.1.1.1.6.0";
|
||||
my $deviceSerialNo = ".1.3.6.1.4.1.2011.2.235.1.1.1.7.0";
|
||||
my $systemPowerState = ".1.3.6.1.4.1.2011.2.235.1.1.1.12.0";
|
||||
|
||||
my $tmpShortMessage = "";
|
||||
|
||||
my $result = $self->{snmp}->get_leef(oids =>[$systemStatusOid,$deviceNameOid,$deviceSerialNo,$systemPowerState]);
|
||||
if (scalar(keys %$result) <= 0)
|
||||
{
|
||||
$tmpShortMessage = $tmpShortMessage."Get system info failed.";
|
||||
}else
|
||||
{
|
||||
$tmpShortMessage = "deviceName:".$result->{$deviceNameOid}." deviceSerialNo:".$result->{$deviceSerialNo}." systemPowerStatus:".$powerHash{$result->{$systemPowerState}};
|
||||
}
|
||||
|
||||
|
||||
$self->{output}->output_add(severity => $statusHash{$result->{$systemStatusOid}},
|
||||
short_msg => $tmpShortMessage);
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
1;
|
|
@ -0,0 +1,65 @@
|
|||
package hardware::server::huawei::ibmc::snmp::mode::hardwares;
|
||||
|
||||
use base qw(centreon::plugins::mode);
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::system;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::cpu;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::fan;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::raid;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::memory;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::psu;
|
||||
use hardware::server::huawei::ibmc::snmp::mode::components::disk;
|
||||
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
bless $self, $class;
|
||||
|
||||
$self->{version} = '1.0';
|
||||
$options{options}->add_options(arguments =>
|
||||
{
|
||||
"component:s" => { name => 'component', default => 'system' },
|
||||
});
|
||||
$self->{components} = {};
|
||||
$self->{no_components} = undef;
|
||||
return $self;
|
||||
}
|
||||
|
||||
sub check_options {
|
||||
my ($self, %options) = @_;
|
||||
$self->SUPER::init(%options);
|
||||
}
|
||||
|
||||
sub run {
|
||||
my ($self, %options) = @_;
|
||||
$self->{snmp} = $options{snmp};
|
||||
|
||||
if ($self->{option_results}->{component} eq 'system') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::system::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'cpu') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::cpu::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'fan') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::fan::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'raid') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::raid::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'memory') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::memory::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'psu') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::psu::check($self);
|
||||
} elsif ($self->{option_results}->{component} eq 'disk') {
|
||||
hardware::server::huawei::ibmc::snmp::mode::components::disk::check($self);
|
||||
} else {
|
||||
$self->{output}->add_option_msg(short_msg => "Wrong option. Cannot find component '" . $self->{option_results}->{component} . "'.");
|
||||
$self->{output}->option_exit();
|
||||
}
|
||||
|
||||
$self->{output}->display();
|
||||
$self->{output}->exit();
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
|
@ -0,0 +1,28 @@
|
|||
|
||||
package hardware::server::huawei::ibmc::snmp::plugin;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use base qw(centreon::plugins::script_snmp);
|
||||
|
||||
sub new {
|
||||
my ($class, %options) = @_;
|
||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||
bless $self, $class;
|
||||
|
||||
$self->{version} = '1.0';
|
||||
%{$self->{modes}} = (
|
||||
'hardwares' => 'hardware::server::huawei::ibmc::snmp::mode::hardwares',
|
||||
);
|
||||
|
||||
return $self;
|
||||
}
|
||||
1;
|
||||
__END__
|
||||
|
||||
|
||||
=head1 PLUGIN DESCRIPTION
|
||||
|
||||
Check HUAWEI servers in SNMP.
|
||||
|
||||
=cut
|
Loading…
Reference in New Issue