diff options
author | Erwan Ben Souiden <erwan@aleikoum.net> | 2013-06-11 11:10:49 +0200 |
---|---|---|
committer | Holger Weiss <holger@zedat.fu-berlin.de> | 2013-08-18 00:44:25 +0200 |
commit | 130eb9635ce86a4c86d593bf5018cd4640d629c5 (patch) | |
tree | 8db1fba77d733f93becd3d4088da4fce914938bc | |
parent | b5cb208fdc861970c8d7bb5f4317f528ba0d25d3 (diff) | |
download | monitoring-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.pl | 15 |
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.", |