projects
/
mirror
/
dsa-nagios.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ubc-enc2bl10 on stretch
[mirror/dsa-nagios.git]
/
dsa-nagios-checks
/
checks
/
dsa-check-hpssacli
diff --git
a/dsa-nagios-checks/checks/dsa-check-hpssacli
b/dsa-nagios-checks/checks/dsa-check-hpssacli
index
f9aa262
..
8ae7121
100755
(executable)
--- a/
dsa-nagios-checks/checks/dsa-check-hpssacli
+++ b/
dsa-nagios-checks/checks/dsa-check-hpssacli
@@
-111,6
+111,7
@@
for my $slot (sort @controllers) {
my @drives;
my $nodrives = 0;
my %status;
my @drives;
my $nodrives = 0;
my %status;
+ my @freetext;
my $ldallshow = runcmd("controller slot=$slot ld all show");
my @logicaldrives;
my $ldallshow = runcmd("controller slot=$slot ld all show");
my @logicaldrives;
@@
-149,6
+150,14
@@
for my $slot (sort @controllers) {
record('UNKNOWN');
}
}
record('UNKNOWN');
}
}
+ if (/^ *LD Acceleration Method: (.*)$/) {
+ my $status = $1;
+ # can at least be "Controller Cache" or HP SSD Smart Path", both OK
+ if ($status eq 'All disabled') {
+ push @{$status{'Acceleration method'}}, "LD$logicaldrive disabled";
+ record('WARNING');
+ }
+ }
}
}
}
}
@@
-245,16
+254,18
@@
for my $slot (sort @controllers) {
} elsif ($type eq 'SAS' || $type eq 'SAS+') {
$key = 'PHY Transfer Rate';
if ($value{'Interface Type'} eq 'SATA') {
} elsif ($type eq 'SAS' || $type eq 'SAS+') {
$key = 'PHY Transfer Rate';
if ($value{'Interface Type'} eq 'SATA') {
- $expected = [ '1.5Gbps', '3.0Gbps' ];
+ $expected = [ '1.5Gbps', '3.0Gbps'
, '6.0Gbps'
];
} elsif ($value{'PHY Count'} eq '2') {
if (defined($value{'Redundant Path(s)'})) {
} elsif ($value{'PHY Count'} eq '2') {
if (defined($value{'Redundant Path(s)'})) {
- $expected = [ '3.0GBPS, 3.0GBPS', '6.0GBPS, 6.0GBPS' ];
+ $expected = [ '3.0GBPS, 3.0GBPS', '6.0GBPS, 6.0GBPS',
+ '12.0GBPS, 12.0GBPS' ];
} else {
$expected = [ '3.0GBPS, Unknown', 'Unknown, 3.0GBPS',
} else {
$expected = [ '3.0GBPS, Unknown', 'Unknown, 3.0GBPS',
- '6.0GBPS, Unknown', 'Unknown, 6.0GBPS' ];
+ '6.0GBPS, Unknown', 'Unknown, 6.0GBPS',
+ '12.0GBPS, Unknown', 'Unknown, 12.0GBPS' ];
}
} else {
}
} else {
- $expected = [ '3.0GBPS', '6.0GBPS' ];
+ $expected = [ '3.0GBPS', '6.0GBPS'
, '12.0GBPS'
];
}
} else {
warn "Should not be here. Do not know what to do with type '$type'\n";
}
} else {
warn "Should not be here. Do not know what to do with type '$type'\n";
@@
-290,26
+301,41
@@
for my $slot (sort @controllers) {
next;
};
next;
};
- my $cst = runcmd("controller slot=$slot show
status
");
+ my $cst = runcmd("controller slot=$slot show
detail
");
for (@$cst) {
chomp;
next if /^$/;
next if (/^\S.*in Slot $slot/);
for (@$cst) {
chomp;
next if /^$/;
next if (/^\S.*in Slot $slot/);
- if (/^ *(
.*
) Status: (.*)$/) {
+ if (/^ *(
Controller|Cache|Battery\/Capacitor
) Status: (.*)$/) {
my $system = $1;
my $status = $2;
my $system = $1;
my $status = $2;
- push @{$status{$status}}, $system;
+
+ if ($system eq 'Cache') {
+ # Can be:
+ # - 'OK'
+ # - 'Not Configured' (for e.g. HP SSD Smart Path)
+ # - 'Permanently Disabled'
+ # - ...?
+ next if $status =~ /^(OK|Not Configured)$/;
+ }
+
+ push @freetext, "$system: $status";
if ($status ne 'OK') {
if ($status ne 'OK') {
- next if ($params->{'no-battery'} && $system eq 'Cache');
next if ($params->{'no-battery'} && $system eq 'Battery/Capacitor');
record('WARNING');
};
next if ($params->{'no-battery'} && $system eq 'Battery/Capacitor');
record('WARNING');
};
- } else {
- die ("Cannot read line '$_' gotten from hpssacli controller slot=$slot show status\n");
+ } elsif (/^ *(Cache Status Details): (Cable Error)/) {
+ push @freetext, $2;
+ record('CRITICAL');
+ } elsif (/^ *(Battery\/Capacitor Count): (.*)/) {
+ next if $params->{'no-battery'} || int($2) > 0;
+ push @freetext, "Battery count: $2";
+ record('CRITICAL');
};
};
};
};
- my $status = join(" - ", (map { $_.": ".join(", ", @{$status{$_}}) } keys %status));
+ my $status = join(" - ", ((map { $_.": ".join(", ", @{$status{$_}}) } keys %status), @freetext));
+
push @resultstr, "Slot $slot: $status";
};
push @resultstr, "Slot $slot: $status";
};