diff options
author | H. P. <coding _æ_ lirion.de> | 2019-04-17 19:07:19 +0200 |
---|---|---|
committer | H. P. <coding _æ_ lirion.de> | 2019-04-17 19:07:19 +0200 |
commit | 1e2387474a449452b78520b9ad96a8b4b5e99722 (patch) | |
tree | 836889471eec7d2aac177405068e2a8f1e2b1978 /nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem | |
download | nagios-plugins-contrib-1e2387474a449452b78520b9ad96a8b4b5e99722.tar.bz2 |
initial commit of source fetch
Diffstat (limited to 'nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem')
2 files changed, 175 insertions, 0 deletions
diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/CLI.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/CLI.pm new file mode 100755 index 0000000..9e8e6be --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/CLI.pm @@ -0,0 +1,56 @@ +package HP::Proliant::Component::TemperatureSubsystem::CLI; +our @ISA = qw(HP::Proliant::Component::TemperatureSubsystem); + +use strict; +use constant { OK => 0, WARNING => 1, CRITICAL => 2, UNKNOWN => 3 }; + +sub new { + my $class = shift; + my %params = @_; + my $self = { + runtime => $params{runtime}, + rawdata => $params{rawdata}, + temperatures => [], + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + $self->init(%params); + return $self; +} + +sub init { + my $self = shift; + my %params = @_; + my $tempcnt = 1; + foreach (grep(/^temp/, split(/\n/, $params{rawdata}))) { + s/^temp\s*//g; + if (/^#(\d+)\s+([\w_\/\-#]+)\s+(-*\d+)C\/(\d+)F\s+(\d+)C\/(\d+)F/) { + my %params = (); + $params{runtime} = $self->{runtime}; + $params{cpqHeTemperatureChassis} = 1; + $params{cpqHeTemperatureIndex} = $1; + $params{cpqHeTemperatureLocale} = lc $2; + $params{cpqHeTemperatureCelsius} = $3; + $params{cpqHeTemperatureThresholdCelsius} = $5; + $params{cpqHeTemperatureCondition} = 'unknown'; + push(@{$self->{temperatures}}, + HP::Proliant::Component::TemperatureSubsystem::Temperature->new( + %params)); + } elsif (/^#(\d+)\s+([\w_\/\-#]+)\s+\-\s+(\d+)C\/(\d+)F/) { + # #3 CPU#2 - 0C/0F + $self->trace(2, sprintf "skipping temperature %s", $_); + } elsif (/^#(\d+)\s+([\w_\/\-#]+)\s+(\d+)C\/(\d+)F\s+\-/) { + # #3 CPU#2 0C/0F - + $self->trace(2, sprintf "skipping temperature %s", $_); + } elsif (/^#(\d+)\s+([\w_\/\-#]+)\s+\-\s+\-/) { + # #3 CPU#2 - - + $self->trace(2, sprintf "skipping temperature %s", $_); + } elsif (/^#(\d+)/) { + $self->trace(0, sprintf "send this to lausser: %s", $_); + } + } +} + +1; diff --git a/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/SNMP.pm b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/SNMP.pm new file mode 100755 index 0000000..de8e4cb --- /dev/null +++ b/nagios-plugins-contrib-24.20190301~bpo9+1/check_hpasm/check_hpasm-4.8/plugins-scripts/HP/Proliant/Component/TemperatureSubsystem/SNMP.pm @@ -0,0 +1,119 @@ +package HP::Proliant::Component::TemperatureSubsystem::SNMP; +our @ISA = qw(HP::Proliant::Component::TemperatureSubsystem + 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 = { + runtime => $params{runtime}, + rawdata => $params{rawdata}, + temperatures => [], + blacklisted => 0, + info => undef, + extendedinfo => undef, + }; + bless $self, $class; + $self->overall_init(%params); + $self->init(%params); + return $self; +} + +sub overall_init { + my $self = shift; + my %params = @_; + my $snmpwalk = $params{rawdata}; + # overall + my $cpqHeThermalTempStatus = '1.3.6.1.4.1.232.6.2.6.3.0'; + my $cpqHeThermalTempStatusValue = { + 1 => 'other', + 2 => 'ok', + 3 => 'degraded', + 4 => 'failed', + }; + $self->{tempstatus} = lc SNMP::Utils::get_object_value( + $snmpwalk, $cpqHeThermalTempStatus, + $cpqHeThermalTempStatusValue); + $self->{tempstatus} |= lc $self->{tempstatus}; +} + +sub init { + my $self = shift; + my %params = @_; + my $snmpwalk = $self->{rawdata}; + my $oids = { + cpqHeTemperatureEntry => "1.3.6.1.4.1.232.6.2.6.8.1", + cpqHeTemperatureChassis => "1.3.6.1.4.1.232.6.2.6.8.1.1", + cpqHeTemperatureIndex => "1.3.6.1.4.1.232.6.2.6.8.1.2", + cpqHeTemperatureLocale => "1.3.6.1.4.1.232.6.2.6.8.1.3", + cpqHeTemperatureCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.4", + cpqHeTemperatureThresholdCelsius => "1.3.6.1.4.1.232.6.2.6.8.1.5", + cpqHeTemperatureCondition => "1.3.6.1.4.1.232.6.2.6.8.1.6", + cpqHeTemperatureThresholdType => "1.3.6.1.4.1.232.6.2.6.8.1.7", + cpqHeTemperatureLocaleValue => { + 1 => "other", + 2 => "unknown", + 3 => "system", + 4 => "systemBoard", + 5 => "ioBoard", + 6 => "cpu", + 7 => "memory", + 8 => "storage", + 9 => "removableMedia", + 10 => "powerSupply", + 11 => "ambient", + 12 => "chassis", + 13 => "bridgeCard", + }, + cpqHeTemperatureConditionValue => { + 1 => 'other', + 2 => 'ok', + 3 => 'degraded', + 4 => 'failed', + }, + cpqHeTemperatureThresholdTypeValue => { + 1 => 'other', + 5 => 'blowout', + 9 => 'caution', + 15 => 'critical', + }, + }; + # INDEX { cpqHeTemperatureChassis, cpqHeTemperatureIndex } + foreach ($self->get_entries($oids, 'cpqHeTemperatureEntry')) { + # sieht aus, als wurden die gar nicht existieren. + # im ilo4 werden sie als n/a angezeigt + next if $_->{cpqHeTemperatureThresholdType} eq "caution" && $_->{cpqHeTemperatureThresholdCelsius} == 0; + push(@{$self->{temperatures}}, + HP::Proliant::Component::TemperatureSubsystem::Temperature->new(%{$_})); + } +} + +sub overall_check { + my $self = shift; + my $result = 0; + $self->blacklist('ots', ''); + if ($self->{tempstatus}) { + if ($self->{tempstatus} eq "ok") { + $result = 0; + $self->add_info('all temp sensors are within normal operating range'); + } elsif ($self->{tempstatus} eq "degraded") { + $result = 1; + $self->add_info('a temp sensor is outside of normal operating range'); + } elsif ($self->{tempstatus} eq "failed") { + $result = 2; + $self->add_info('a temp sensor detects a condition that could permanently +damage the system'); + } elsif ($self->{tempstatus} eq "other") { + $result = 0; + $self->add_info('temp sensing is not supported by this system or driver'); + } + } else { + $result = 0; + $self->add_info('no global temp status found'); + } +} + +1; |