summaryrefslogtreecommitdiff
path: root/usr-lib-nagios-plugins/check_md_raid
diff options
context:
space:
mode:
Diffstat (limited to 'usr-lib-nagios-plugins/check_md_raid')
-rw-r--r--usr-lib-nagios-plugins/check_md_raid36
1 files changed, 36 insertions, 0 deletions
diff --git a/usr-lib-nagios-plugins/check_md_raid b/usr-lib-nagios-plugins/check_md_raid
new file mode 100644
index 0000000..07d9682
--- /dev/null
+++ b/usr-lib-nagios-plugins/check_md_raid
@@ -0,0 +1,36 @@
+#!/bin/bash
+#
+# Created by Sebastian Grewe, Jammicron Technology
+#
+
+# Get count of raid arrays
+RAID_DEVICES=`grep ^md -c /proc/mdstat`
+
+# Get count of degraded arrays
+RAID_STATUS=`grep "\[.*_.*\]" /proc/mdstat -c`
+
+# Is an array currently recovering, get percentage of recovery
+RAID_RECOVER=`grep recovery /proc/mdstat | awk '{print $4}'`
+RAID_RESYNC=`grep resync /proc/mdstat | awk '{print $4}'`
+
+# Check raid status
+# RAID recovers --> Warning
+if [[ $RAID_RECOVER ]]; then
+ STATUS="WARNING - Checked $RAID_DEVICES arrays, recovering : $RAID_RECOVER"
+ EXIT=1
+elif [[ $RAID_RESYNC ]]; then
+ STATUS="WARNING - Checked $RAID_DEVICES arrays, resync : $RAID_RESYNC"
+ EXIT=1
+# RAID ok
+elif [[ $RAID_STATUS == "0" ]]; then
+ STATUS="OK - Checked $RAID_DEVICES arrays."
+ EXIT=0
+# All else critical, better save than sorry
+else
+ STATUS="CRITICAL - Checked $RAID_DEVICES arrays, $RAID_STATUS have FAILED"
+ EXIT=2
+fi
+
+# Status and quit
+echo $STATUS
+exit $EXIT