diff --git a/files/nrpe/check_zpool_health b/files/nrpe/check_zpool_health new file mode 100644 index 0000000..2a5a924 --- /dev/null +++ b/files/nrpe/check_zpool_health @@ -0,0 +1,32 @@ +#!/bin/bash + +# Nagios Exit Codes +STATE_OK=0 +STATE_WARNING=1 +STATE_CRITICAL=2 +STATE_UNKNOWN=3 + +POOL=$1 + +if [ -z "$POOL" ]; then + echo "UNKNOWN - Usage: $0 " + exit $STATE_UNKNOWN +fi + +ZSTATUS=$(zpool list -H -o health "$POOL" 2>/dev/null) + +if [ $? -ne 0 ]; then + echo "CRITICAL - ZFS pool '$POOL' not found!" + exit $STATE_CRITICAL +fi + +if [ "$ZSTATUS" == "ONLINE" ]; then + echo "OK - ZFS pool $POOL is ONLINE" + exit $STATE_OK +elif [ "$ZSTATUS" == "DEGRADED" ]; then + echo "WARNING - ZFS pool $POOL is DEGRADED" + exit $STATE_WARNING +else + echo "CRITICAL - ZFS pool $POOL is $ZSTATUS !" + exit $STATE_CRITICAL +fi \ No newline at end of file