ansible-roles/keepalived/files/check_keepalived

57 lines
1.6 KiB
Bash

#!/bin/bash
###############################################################
# Check Keepalived State #
# #
# Author: Zhivko Todorov <ztodorov@neterra.net> #
# Date: 01-Dec-2015 #
# Version: 0.0.1 #
# License: GPL #
###############################################################
# set to 'true' if the host is supposed to be in MASTER state
# or set to 'false' if the host is supposed to be in BACKUP state
# nrpe cannot receive external variables UNLESS is forced in config
MASTER='true'
# checking if there are alive keepalived processes so we can trust the content of the notify 'state' file
KEEPALIVENUM=`ps uax|grep '/usr/sbin/keepalived'|grep -v grep|wc -l|tr -d "\n"`
if [ ${KEEPALIVENUM} -gt 0 ]; then
KEEPALIVESTATE=`cat /var/run/keepalive.state`
if [ "${MASTER}" == "true" ]; then
if [[ ${KEEPALIVESTATE} == *"MASTER"* ]];then
echo "OK - ${KEEPALIVESTATE}"
exit 0
fi
if [[ ${KEEPALIVESTATE} == *"BACKUP"* ]];then
echo "WARNING - ${KEEPALIVESTATE}"
exit 1
fi
else
if [[ ${KEEPALIVESTATE} == *"BACKUP"* ]];then
echo "OK - ${KEEPALIVESTATE}"
exit 0
fi
if [[ ${KEEPALIVESTATE} == *"MASTER"* ]];then
echo "WARNING - ${KEEPALIVESTATE}"
exit 1
fi
fi
else
echo "CRITICAL - keepalived is not running"
exit 2
fi
echo "Keepalived is in UNKNOWN state"
exit 3