forked from evolix/ansible-roles
Add nagios check for Redis Sentinel synchro
This commit is contained in:
parent
c17bb03535
commit
381acc830d
46
nagios-nrpe/files/plugins/check_redis_sentinel_sync
Executable file
46
nagios-nrpe/files/plugins/check_redis_sentinel_sync
Executable file
|
@ -0,0 +1,46 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Verify the synchroniation of Redis Sentinel slaves.
|
||||||
|
|
||||||
|
output=$(mktemp --tmpdir $(basename "$0").XXXXXXXXXX)
|
||||||
|
critical_count=0
|
||||||
|
ok_count=0
|
||||||
|
|
||||||
|
trap "rm -f $output" EXIT
|
||||||
|
|
||||||
|
input=$(redis-cli -p 6380 sentinel slaves redis | sed 'N;s/\n/=/')
|
||||||
|
|
||||||
|
#while read -r line; do
|
||||||
|
for line in $input; do
|
||||||
|
case "$line" in
|
||||||
|
name=*) name=${line#name=} ;;
|
||||||
|
master-link-status=*) status=${line#master-link-status=} ;;
|
||||||
|
esac
|
||||||
|
if [ -n "$name" ] && [ -n "$status" ]; then
|
||||||
|
if [ "$status" = ok ]; then
|
||||||
|
echo "OK - $name" >> "$output"
|
||||||
|
ok_count=$(( ok_count + 1))
|
||||||
|
else
|
||||||
|
echo "CRITICAL - $name" >> "$output"
|
||||||
|
critical_count=$(( critical_count + 1))
|
||||||
|
fi
|
||||||
|
unset name status
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
total_count=$(( ok_count + critical_count ))
|
||||||
|
|
||||||
|
plural=''
|
||||||
|
test "$total_count" -gt 1 && plural='s'
|
||||||
|
|
||||||
|
if [ $ok_count -eq $total_count ]; then
|
||||||
|
printf "OK - %d/%d Redis Sentinel slave%s are in sync\n\n" \
|
||||||
|
"$ok_count" "$total_count" "$plural"
|
||||||
|
cat "$output"
|
||||||
|
exit 0
|
||||||
|
else
|
||||||
|
printf "CRITICAL - %d/%d Redis Sentinal slave%s aren't in sync\n\n" \
|
||||||
|
"$critical_count" "$total_count" "$plural"
|
||||||
|
cat "$output"
|
||||||
|
exit 2
|
||||||
|
fi
|
Loading…
Reference in a new issue