Fork from https://exchange.icinga.com/jasem/check_md_raid updated
This commit is contained in:
commit
ba70f3b737
1 changed files with 47 additions and 0 deletions
47
check_mdstat.sh
Executable file
47
check_mdstat.sh
Executable file
|
@ -0,0 +1,47 @@
|
||||||
|
#!/bin/bash
|
||||||
|
#
|
||||||
|
# Created by Sebastian Grewe, Jammicron Technology
|
||||||
|
# Changes By Jasem Elayeb on 02.03.2016
|
||||||
|
# JE: add Physical Disks Name RAID_DISKS
|
||||||
|
# JE: add Physical Disks Status DISKS_STATUS
|
||||||
|
# JE: add Array Names RAID_ARRAY
|
||||||
|
|
||||||
|
# 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}'`
|
||||||
|
|
||||||
|
# Is an array currently resyncing, get percentage of resync
|
||||||
|
|
||||||
|
RAID_RESYNC=`grep resync /proc/mdstat | awk '{print $4}'`
|
||||||
|
|
||||||
|
RAID_ARRAY=`awk '/md[1-9]/{for (i=1;i<=NF;++i) if ($i~/md[1-2]/)print $i}' /proc/mdstat |xargs`
|
||||||
|
RAID_DISKS=`awk '/sd[a-z]/{for (i=1;i<=NF;++i) if ($i~/sd[a-z]/)print $i}' /proc/mdstat |xargs`
|
||||||
|
DISKS_STATUS=`grep algorithm /proc/mdstat|awk '{print $12}'`
|
||||||
|
|
||||||
|
# Check raid status
|
||||||
|
# RAID recovers --> Warning
|
||||||
|
if [[ $RAID_RECOVER ]]; then
|
||||||
|
STATUS="WARNING - Checked $RAID_DEVICES arrays $RAID_ARRAY, recovering : $RAID_RECOVER"
|
||||||
|
EXIT=1
|
||||||
|
# RAID resync --> Warning
|
||||||
|
elif [[ $RAID_RESYNC ]]; then
|
||||||
|
STATUS="WARNING - Checked $RAID_DEVICES arrays $RAID_ARRAY., resyncing : $RAID_RESYNC"
|
||||||
|
EXIT=1
|
||||||
|
# RAID ok
|
||||||
|
elif [[ $RAID_STATUS == "0" ]]; then
|
||||||
|
STATUS="OK - Checked $RAID_DEVICES arrays $RAID_ARRAY."
|
||||||
|
EXIT=0
|
||||||
|
# All else critical, better save than sorry
|
||||||
|
else
|
||||||
|
STATUS="CRITICAL - Checked $RAID_DEVICES arrays $RAID_ARRAY, $RAID_STATUS have FAILED"
|
||||||
|
EXIT=2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Status and quit
|
||||||
|
echo -e "$STATUS \n Physical Disks: $RAID_DISKS Disks Status: $DISKS_STATUS "
|
||||||
|
exit $EXIT
|
Loading…
Reference in a new issue