Skip to content
Snippets Groups Projects
Commit a839e626 authored by Per Cederqvist's avatar Per Cederqvist
Browse files

Added check_iostatE, written by Peter Eriksson.

parent 510cdd19
Branches
Tags
No related merge requests found
...@@ -2,7 +2,7 @@ LIBEXECDIR = /usr/local/nagios/libexec/ ...@@ -2,7 +2,7 @@ LIBEXECDIR = /usr/local/nagios/libexec/
SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \ SCRIPTS = check_cups check_glsa check_saned check_lpd check_hddtemp \
check_link_status check_true check_lysrdiff check_syslog \ check_link_status check_true check_lysrdiff check_syslog \
check_ping check_enodia_monitored check_hostextinfo \ check_ping check_enodia_monitored check_hostextinfo \
check_hydra check_datorhandbok check_no_server check_hydra check_datorhandbok check_no_server check_iostatE
all:; all:;
......
#!/bin/ksh
PATH=/opt/lysator/bin:/usr/bin:/usr/sbin
export PATH
RSH=ssh
GAWK=gawk
IOSTAT=iostat
VERBOSE=0
HOST=""
HWARN=2
HCRIT=4
TWARN=1
TCRIT=3
SWARN=5
SCRIT=10
while [ "$1" != "" ]; do
case "$1" in
-v|--verbose)
VERBOSE=1
;;
-H|--host)
HOST=$2
shift
;;
-R|--rsh)
RSH=$2
shift
;;
-hc|--hard-critical)
HCRIT=$2
shift
;;
-hw|--hard-warning)
HWARN=$2
shift
;;
-tc|--transport-critical)
TCRIT=$2
shift
;;
-tw|--transport-warning)
TWARN=$2
shift
;;
-sc|--soft-critical)
SCRIT=$2
shift
;;
-sw|--soft-warning)
SWARN=$2
shift
;;
-h|--help)
echo "Usage: $0 [options]"
echo "Options:"
echo "\t-h | --help Display this message"
echo "\t-v | --verbose Verbose (multiline) output"
echo "\t-H | --host <name> Host to check (${HOST:-localhost})"
echo "\t-R | --rsh <path> Path to 'rsh' (or 'ssh') program ($RSH)"
echo "\t-hc | --hard-critical <level> Hard error critical level ($HCRIT)"
echo "\t-hw | --hard-warning <level> Hard error warning level ($HWARN)"
echo "\t-sc | --soft-critical <level> Soft error critical level ($SCRIT)"
echo "\t-sw | --soft-warning <level> Soft error warning level ($SWARN)"
echo "\t-tc | --transport-critical <level> Transport error critical level ($TCRIT)"
echo "\t-tw | --transport-warning <level> Transport error warning level ($TWARN)"
exit 0
;;
-*) echo "$0: invalid switch: $1"
exit 1
;;
*) echo "$0: extra arguments: $*"
exit 1
;;
esac
shift
done
if [ "$HOST" = "" ]; then
CMD="$IOSTAT -En"
else
CMD="$RSH -n $HOST $IOSTAT -En"
fi
exec $CMD | $GAWK -vverbose=$VERBOSE \
-vhcrit=$HCRIT -vhwarn=$HWARN \
-vtcrit=$TCRIT -vtwarn=$TWARN \
-vscrit=$SCRIT -vswarn=$SWARN \
'\
BEGIN { gtotal=0; ndisks=0; disks=""; ncrit=0; nwarn=0; crits=""; warns="" } \
/^c[0-9][0-9]*t[0-9][0-9]*d[0-9][0-9]*/ { dev=$1; serr[dev]=$4; herr[dev]=$7; terr[dev]=$10; vendor[dev]=""; pfa[dev]="" } \
/^Vendor:/ { vendor[dev]=$2; product[dev]=$4; rev[dev]=$6; serial[dev]=$9 } \
/^Model:/ { vendor[dev]=""; product[dev]=$2; rev[dev]=$4; serial[dev]=$7 } \
/^Size:/ { size[dev]=$2 } \
/^Media/ { merr[dev]=$3; dnrerr[dev]=$7; nderr[dev]=$10; rerr[dev]=$12 } \
/^Illegal/ { \
irerr[dev]=$3; pfa[dev]=$7; \
total[dev]=serr[dev]+herr[dev]+terr[dev];
if (verbose) \
print dev, "(" product[dev], rev[dev] ")", ":", total[dev], ":", serr[dev], herr[dev], terr[dev], ":", merr[dev], dnrerr[dev], nderr[dev], rerr[dev], irerr[dev], pfa[dev];\
gtotal += total[dev]; \
ndisks++; disks=disks " " dev; \
nsoft+=serr[dev]; nhard+=herr[dev]; ntran+=terr[dev]; \
if (herr[dev] >= hcrit) { \
ncrit++; crits=crits " " dev; \
} else if (herr[dev] >= hwarn) { \
nwarn++; warns=warns " " dev; \
} else if (terr[dev] >= tcrit) { \
ncrit++; crits=crits " " dev; \
} else if (terr[dev] >= twarn) { \
nwarn++; warns=warns " " dev; \
} else if (serr[dev] >= scrit) { \
ncrit++; crits=crits " " dev; \
} else if (serr[dev] >= swarn) { \
nwarn++; warns=warns " " dev; \
} } \
END { \
if (ncrit > 0) { \
print "CRITICAL -", ncrit+nwarn "/" ndisks, "disks with errors (" nsoft, "soft", nhard, "hard", ntran, "transport):" crits warns; exit 2 \
} else if (nwarn > 0) { \
print "WARNING -", ncrit+nwarn "/" ndisks, "disks with errors (" nsoft, "soft", nhard, "hard", ntran, "transport):" crits warns; exit 1 \
} else { \
print "OK -", ndisks, "disks checked with", gtotal, "errors (" nsoft, "soft", nhard, "hard", ntran, "transport):" disks}} \
'
# if (total >= crit) { \
# print "CRITICAL -", dev, ":", total, "errors (soft:" serr, "hard:" herr, "transport:" terr, "med:" merr, "dnr:" dnrerr, "dev:" nderr, "rec:" rerr, "req:" irerr, "pfa:" pfa ")"; exit 2 \
# } else if (total >= warn) { \
# print "CRITICAL -", dev, ":", total, "errors (soft:" serr, "hard:" herr, "transport:" terr, "med:" merr, "dnr:" dnrerr, "dev:" nderr, "rec:" rerr, "req:" irerr, "pfa:" pfa ")"; exit 2 \
# } else { gtotal+=total; disks++ }} \
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment