Compare commits
No commits in common. "9db3ebbce62774eb157f69bbf2235423195f3f81" and "8d4a9f299107874e056104b426799dba597ab2e5" have entirely different histories.
9db3ebbce6
...
8d4a9f2991
@ -5,7 +5,7 @@
|
|||||||
#/ Usage:
|
#/ Usage:
|
||||||
#/ check-url.sh --proxy=<proxy-url> --warning=<level> --critical=<level> <URL>
|
#/ check-url.sh --proxy=<proxy-url> --warning=<level> --critical=<level> <URL>
|
||||||
#/
|
#/
|
||||||
#/ Checks if URL is available
|
#/ Checks the disk usage
|
||||||
#/
|
#/
|
||||||
#/ Options:
|
#/ Options:
|
||||||
#/ -p, --proxy=<proxy-url> The proxy server to use
|
#/ -p, --proxy=<proxy-url> The proxy server to use
|
||||||
|
137
check-webcron.sh
137
check-webcron.sh
@ -1,137 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
#
|
|
||||||
#/
|
|
||||||
#/ Usage:
|
|
||||||
#/ check-webcron.sh --proxy=<proxy-url> [--daemon] --warning=<level> --critical=<level> <URL>
|
|
||||||
#/
|
|
||||||
#/ Checks webcron jobs
|
|
||||||
#/
|
|
||||||
#/ Options:
|
|
||||||
#/ -p, --proxy=<proxy-url> The proxy server to use
|
|
||||||
#/ -d, --daemon When no daemon is running trigger a critical warning
|
|
||||||
#/ -w, --warning=<ratio> The ratio of failed jobs to trigger a warning (1 = all jobs; 0.5 = half of all jobs)
|
|
||||||
#/ -c, --critical=<ratio> The ratio of failed jobs to trigger a critcal warning (1 = all jobs; 0.5 = half of all jobs)
|
|
||||||
#/
|
|
||||||
#/ Exit Codes:
|
|
||||||
#/ 0 Everything OK
|
|
||||||
#/ 1 Warning level exceeded
|
|
||||||
#/ 2 Critical level exceeded
|
|
||||||
#/ 3 Unknown status
|
|
||||||
#/
|
|
||||||
|
|
||||||
|
|
||||||
Usage() {
|
|
||||||
grep '^#/' "${script_dir}/${script_name}" | sed 's/^#\/\w*//'
|
|
||||||
}
|
|
||||||
|
|
||||||
GetOptions() {
|
|
||||||
# https://stackoverflow.com/a/29754866
|
|
||||||
OPTIONS=p:dw:c:
|
|
||||||
LONGOPTS=proxy:,daemon,warning:,critical:
|
|
||||||
|
|
||||||
# -use ! and PIPESTATUS to get exit code with errexit set
|
|
||||||
# -temporarily store output to be able to check for errors
|
|
||||||
# -activate quoting/enhanced mode (e.g. by writing out “--options”)
|
|
||||||
# -pass arguments only via -- "$@" to separate them correctly
|
|
||||||
! PARSED=$(getopt --options=$OPTIONS --longoptions=$LONGOPTS --name "$0" -- "$@")
|
|
||||||
if [[ ${PIPESTATUS[0]} -ne 0 ]]; then
|
|
||||||
# e.g. return value is 1
|
|
||||||
# then getopt has complained about wrong arguments to stdout
|
|
||||||
Usage
|
|
||||||
exit 2
|
|
||||||
fi
|
|
||||||
|
|
||||||
# read getopt's output this way to handle the quoting right:
|
|
||||||
eval set -- "$PARSED"
|
|
||||||
|
|
||||||
# now enjoy the options in order and nicely split until we see --
|
|
||||||
while true; do
|
|
||||||
case "$1" in
|
|
||||||
-p|--proxy)
|
|
||||||
proxy="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-d|--daemon)
|
|
||||||
shift 1
|
|
||||||
;;
|
|
||||||
-w|--warning)
|
|
||||||
warn="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
-c|--critical)
|
|
||||||
crit="$2"
|
|
||||||
shift 2
|
|
||||||
;;
|
|
||||||
--)
|
|
||||||
shift
|
|
||||||
break
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
echo "URL UNKNOWN - ${1} is not a valid parameter"
|
|
||||||
exit 3
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ -z ${1+x} ]; then
|
|
||||||
echo "URL UNKNOWN - url not given"
|
|
||||||
exit 3
|
|
||||||
else
|
|
||||||
url="${1}/health"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
LC_NUMERIC="C"
|
|
||||||
warn=0.05
|
|
||||||
crit=0.1
|
|
||||||
script_name=$(basename "${0}")
|
|
||||||
script_dir=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
|
|
||||||
url=''
|
|
||||||
GetOptions "$@"
|
|
||||||
|
|
||||||
eval $(curl -L -o /dev/null -s -w 'RESPONSE_CODE=%{response_code}' ${proxy:+"--proxy" "$proxy"} $url)
|
|
||||||
health=$(curl -s ${proxy:+"--proxy" "$proxy"} $url)
|
|
||||||
deamonrunning=$(echo $health | jq '.DaemonRunning')
|
|
||||||
jobstotal=$(echo $health | jq '.JobsTotal')
|
|
||||||
jobsdue=$(echo $health | jq '.JobsDue')
|
|
||||||
jobsrunning=$(echo $health | jq '.JobsRunning')
|
|
||||||
jobsfailing=$(echo $health | jq '.JobsFailing')
|
|
||||||
|
|
||||||
val=$(echo "$jobsfailing/$jobstotal" | bc -l)
|
|
||||||
|
|
||||||
rdetail=""
|
|
||||||
if (( $(echo "$RESPONSE_CODE != 200" | bc -l) )); then
|
|
||||||
rval=2
|
|
||||||
rmsg="CRITICAL"
|
|
||||||
rdetail="$url was not available"
|
|
||||||
elif [[ $deamonrunning != "true" ]]; then
|
|
||||||
rval=2
|
|
||||||
rmsg="CRITICAL"
|
|
||||||
rdetail="Daemon is not running"
|
|
||||||
elif (( $(echo "$jobsdue > 0" | bc -l) )); then
|
|
||||||
rval=1
|
|
||||||
rmsg="WARNING"
|
|
||||||
rdetail="You have jobs to be run"
|
|
||||||
elif (( $(echo "$val < ${warn}" | bc -l) )); then
|
|
||||||
rval=0
|
|
||||||
rmsg="OK"
|
|
||||||
elif (( $(echo "$val < ${crit}" | bc -l) )); then
|
|
||||||
rval=1
|
|
||||||
rmsg="WARNING"
|
|
||||||
else
|
|
||||||
rval=2
|
|
||||||
rmsg="CRITICAL"
|
|
||||||
fi
|
|
||||||
unitval=''
|
|
||||||
warnval=$warn
|
|
||||||
critval=$crit
|
|
||||||
minval=0
|
|
||||||
maxval=1
|
|
||||||
|
|
||||||
unitfail='jobs'
|
|
||||||
warnfail=$(echo ${jobstotal}\*${warn} | bc -l | awk '{ print int($1+0.5) }')
|
|
||||||
critfail=$(echo ${jobstotal}\*${crit} | bc -l | awk '{ print int($1+0.5) }')
|
|
||||||
minfail=0
|
|
||||||
maxfail=$(echo ${jobstotal})
|
|
||||||
echo "URL ${rmsg} - ${rdetail:+"$rdetail - "}Response code: ${RESPONSE_CODE} Jobs Total: ${jobstotal} Jobs Due: ${jobsdue} Jobs Running: ${jobsrunning} Jobs Failing: ${jobsfailing}|val=${val}${unitval};$warnval;$critval;$minval;$maxval failing=${jobsfailing}${unitfail};$warnfail;$critfail;$minfail;$maxfail "
|
|
||||||
exit $rval
|
|
Loading…
Reference in New Issue
Block a user