You've already forked nrpe
add uptime check
This commit is contained in:
@@ -0,0 +1,39 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Nagios Exit Codes
|
||||||
|
STATE_OK=0
|
||||||
|
STATE_WARNING=1
|
||||||
|
STATE_CRITICAL=2
|
||||||
|
STATE_UNKNOWN=3
|
||||||
|
|
||||||
|
# Default values (in minutes)
|
||||||
|
warn=1440
|
||||||
|
crit=30
|
||||||
|
|
||||||
|
# Retrieve arguments
|
||||||
|
while getopts "w:c:" opt; do
|
||||||
|
case $opt in
|
||||||
|
w) warn=$OPTARG ;;
|
||||||
|
c) crit=$OPTARG ;;
|
||||||
|
*) echo "Usage: $0 -w <minutes> -c <minutes>"; exit $STATE_UNKNOWN ;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
# Extract uptime (in seconds) via /proc
|
||||||
|
uptime_seconds=$(cat /proc/uptime | awk '{print $1}' | cut -d. -f1)
|
||||||
|
uptime_min=$((uptime_seconds / 60))
|
||||||
|
|
||||||
|
# Performance Data
|
||||||
|
PERFDATA="|uptime_min=${uptime_min}min;${warn};${crit};0;"
|
||||||
|
|
||||||
|
# Decision logic
|
||||||
|
if [ "$uptime_min" -le "$crit" ]; then
|
||||||
|
echo "CRITICAL - Recent reboot detected (${uptime_min} min < threshold ${crit} min)$PERFDATA"
|
||||||
|
exit $STATE_CRITICAL
|
||||||
|
elif [ "$uptime_min" -le "$warn" ]; then
|
||||||
|
echo "WARNING - Uptime low (${uptime_min} min < threshold ${warn} min)$PERFDATA"
|
||||||
|
exit $STATE_WARNING
|
||||||
|
else
|
||||||
|
echo "OK - System stable (Uptime: ${uptime_min} min)$PERFDATA"
|
||||||
|
exit $STATE_OK
|
||||||
|
fi
|
||||||
Reference in New Issue
Block a user