aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Erwan Ben Souiden <erwan@aleikoum.net> 2013-06-11 11:10:49 +0200
committerGravatar Holger Weiss <holger@zedat.fu-berlin.de> 2013-08-18 00:44:25 +0200
commit130eb9635ce86a4c86d593bf5018cd4640d629c5 (patch)
tree8db1fba77d733f93becd3d4088da4fce914938bc
parentb5cb208fdc861970c8d7bb5f4317f528ba0d25d3 (diff)
downloadmonitoring-plugins-130eb9635ce86a4c86d593bf5018cd4640d629c5.tar.gz
update check_linux_raid to take in consideration resync status and rise up a warning alert
-rw-r--r--contrib/check_linux_raid.pl15
1 files changed, 13 insertions, 2 deletions
diff --git a/contrib/check_linux_raid.pl b/contrib/check_linux_raid.pl
index c24b0cd2..73e7fd26 100644
--- a/contrib/check_linux_raid.pl
+++ b/contrib/check_linux_raid.pl
@@ -50,6 +50,7 @@ my $code = "UNKNOWN";
my $msg = "";
my %status;
my %recovery;
+my %resyncing;
my %finish;
my %active;
my %devices;
@@ -65,6 +66,10 @@ while(defined $nextdev){
$recovery{$device} = $1;
($finish{$device}) = /finish=(.*?min)/;
$device=undef;
+ } elsif (/resync =\s+(.*?)\s/) {
+ $resyncing{$device} = $1;
+ ($finish{$device}) = /finish=(.*?min)/;
+ $device=undef;
} elsif (/^\s*$/) {
$device=undef;
}
@@ -95,8 +100,14 @@ foreach my $k (sort keys %devices){
$code = max_state($code, "CRITICAL");
}
} elsif ($status{$k} =~ /U+/) {
- $msg .= sprintf " %s status=%s.", $devices{$k}, $status{$k};
- $code = max_state($code, "OK");
+ if (defined $resyncing{$k}) {
+ $msg .= sprintf " %s status=%s, resync=%s, finish=%s.",
+ $devices{$k}, $status{$k}, $resyncing{$k}, $finish{$k};
+ $code = max_state($code, "WARNING");
+ } else {
+ $msg .= sprintf " %s status=%s.", $devices{$k}, $status{$k};
+ $code = max_state($code, "OK");
+ }
} else {
if ($active{$k}) {
$msg .= sprintf " %s active with no status information.",