X-Git-Url: https://git.adam-barratt.org.uk/?a=blobdiff_plain;f=dsa-nagios-nrpe-config%2Fdsa-check-hpacucli;h=a34738897ac81903992fd2c34e983426310c4e95;hb=75345ad37a699e85b38ccea8fb1cf8aa3dc366b3;hp=2fc701810f37402e0abb9292c0b986ac96ac3277;hpb=bafe766e556a9839f0f5bb6cce8f4c9fc1c9f47c;p=mirror%2Fdsa-nagios.git diff --git a/dsa-nagios-nrpe-config/dsa-check-hpacucli b/dsa-nagios-nrpe-config/dsa-check-hpacucli index 2fc7018..a347388 100755 --- a/dsa-nagios-nrpe-config/dsa-check-hpacucli +++ b/dsa-nagios-nrpe-config/dsa-check-hpacucli @@ -90,9 +90,12 @@ for my $slot (sort @controllers) { for (@$pds) { chomp; next if /^$/; - next if /^ *array [A-Z]$/; next if (/^\S.*in Slot $slot/); - if (/^Error: The specified controller does not have any physical drives on it.$/) { + next if /^ *array [A-Z]$/; + if (/^ *(array [A-Z]) \(Failed\)$/) { + record('CRITICAL'); + push @{$status{'Failed'}}, $1; + } elsif (/^Error: The specified controller does not have any physical drives on it.$/) { $nodrives = 1; } elsif (/^ *physicaldrive (\S+) .* (OK|Predictive Failure|Failed|Rebuilding)(?:, spare)?\)$/) { my $drive = $1; @@ -116,6 +119,8 @@ for my $slot (sort @controllers) { # Check that all drives have the proper transfer speed. # sometimes stuff breaks and they fall back to 10mb/sec. for my $drive (@drives) { + # skip drives that are known to have failed + next if (exists $status{'Failed'} && grep {$drive eq $_} @{$status{'Failed'}}); my $type; if ($drive =~ /^[0-9]+:[0-9]+$/) { # scsi drives $type = 'SCSI'; @@ -158,7 +163,11 @@ for my $slot (sort @controllers) { }; } elsif ($type eq 'SAS') { $key = 'PHY Transfer Rate'; - $expected = '3.0GBPS'; + if ($value{'PHY Count'} eq '2') { + $expected = '3.0GBPS, Unknown'; + } else { + $expected = '3.0GBPS'; + } } else { warn "Should not be here. Do not know what to do with type '$type'\n"; next;