diff options
Diffstat (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/DiskSubsystem/Sas/SNMP.pm')
-rwxr-xr-x | nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/DiskSubsystem/Sas/SNMP.pm | 126 |
1 files changed, 126 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/DiskSubsystem/Sas/SNMP.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/DiskSubsystem/Sas/SNMP.pm new file mode 100755 index 0000000..cb493fd --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/DiskSubsystem/Sas/SNMP.pm @@ -0,0 +1,126 @@ +package HP::Proliant::Component::DiskSubsystem::Sas::SNMP; +our @ISA = qw(HP::Proliant::Component::DiskSubsystem::Sas + HP::Proliant::Component::SNMP); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; + my %params = @_; + my $self = { + controllers => [], + accelerators => [], + enclosures => [], + physical_drives => [], + logical_drives => [], + spare_drives => [], + blacklisted => 0, + }; + bless $self, $class; + return $self; +} + +sub init { + my $self = shift; + my $snmpwalk = $self->{rawdata}; + + # CPQSCSI-MIB + my $oids = { + cpqSasHbaEntry => "1.3.6.1.4.1.232.5.5.1.1.1", + cpqSasHbaIndex => "1.3.6.1.4.1.232.5.5.1.1.1.1", + cpqSasHbaLocation => "1.3.6.1.4.1.232.5.5.1.1.1.2", + cpqSasHbaSlot => "1.3.6.1.4.1.232.5.5.1.1.1.6", + cpqSasHbaStatus => "1.3.6.1.4.1.232.5.5.1.1.1.4", + cpqSasHbaStatusValue => { + 1 => "other", + 2 => "ok", + 3 => "failed", + }, + cpqSasHbaCondition => "1.3.6.1.4.1.232.5.5.1.1.1.5", + cpqSasHbaConditionValue => { + 1 => "other", + 2 => "ok", + 3 => "degraded", + 4 => "failed", + }, + }; + + # INDEX { cpqSasHbaIndex } + foreach ($self->get_entries($oids, 'cpqSasHbaEntry')) { + push(@{$self->{controllers}}, + HP::Proliant::Component::DiskSubsystem::Sas::Controller->new(%{$_})); + } + + $oids = { + cpqSasLogDrvEntry => "1.3.6.1.4.1.232.5.5.3.1.1", + cpqSasLogDrvHbaIndex => "1.3.6.1.4.1.232.5.5.3.1.1.1", + cpqSasLogDrvIndex => "1.3.6.1.4.1.232.5.5.3.1.1.2", + cpqSasLogDrvStatus => "1.3.6.1.4.1.232.5.5.3.1.1.4", + cpqSasLogDrvCondition => "1.3.6.1.4.1.232.5.5.3.1.1.5", + cpqSasLogDrvRebuildingPercent => "1.3.6.1.4.1.232.5.5.3.1.1.12", + cpqSasLogDrvRaidLevel => "1.3.6.1.4.1.232.5.5.3.1.1.3", + cpqSasLogDrvRaidLevelValue => { + 1 => "other", + 2 => "raid0", + 3 => "raid1", + 4 => "raid0plus1", + 5 => "raid5", + 6 => "raid15", + 7 => "volume", + }, + cpqSasLogDrvConditionValue => { + 1 => "other", + 2 => "ok", + 3 => "degraded", + 4 => "failed", + }, + cpqSasLogDrvStatusValue => { + 1 => "other", + 2 => "ok", + 3 => "degraded", + 4 => "rebuilding", + 5 => "failed", + 6 => "offline", + } + }; + # INDEX { cpqSasLogDrvCntlrIndex, cpqSasLogDrvIndex } + foreach ($self->get_entries($oids, 'cpqSasLogDrvEntry')) { + push(@{$self->{logical_drives}}, + HP::Proliant::Component::DiskSubsystem::Sas::LogicalDrive->new(%{$_})); + } + + $oids = { + cpqSasPhyDrvEntry => "1.3.6.1.4.1.232.5.5.2.1.1", + cpqSasPhyDrvHbaIndex => "1.3.6.1.4.1.232.5.5.2.1.1.1", + cpqSasPhyDrvIndex => "1.3.6.1.4.1.232.5.5.2.1.1.2", + cpqSasPhyDrvLocationString => "1.3.6.1.4.1.232.5.5.2.1.1.3", + cpqSasPhyDrvStatus => "1.3.6.1.4.1.232.5.5.2.1.1.5", + cpqSasPhyDrvSize => "1.3.6.1.4.1.232.5.5.2.1.1.8", + cpqSasPhyDrvCondition => "1.3.6.1.4.1.232.5.5.2.1.1.6", + cpqSasPhyDrvConditionValue => { + 1 => "other", + 2 => "ok", + 3 => "degraded", + 4 => "failed", + }, + cpqSasPhyDrvStatusValue => { + 1 => "other", + 2 => "ok", + 3 => "predictiveFailure", + 4 => "offline", + 5 => "failed", + 6 => "missingWasOk", + 7 => "missingWasPredictiveFailure", + 8 => "missingWasOffline", + 9 => "missingWasFailed", + }, + }; + + # INDEX { cpqPhyLogDrvCntlrIndex, cpqSasPhyDrvIndex } + foreach ($self->get_entries($oids, 'cpqSasPhyDrvEntry')) { + push(@{$self->{physical_drives}}, + HP::Proliant::Component::DiskSubsystem::Sas::PhysicalDrive->new(%{$_})); + } + +} |