#!/bin/bash ############################################################### # Check Keepalived State # # # # Author: Zhivko Todorov # # 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