Using standard tcp,or ping health-check monitoring in the F5 for ARS-remedy server is not quite reliable. It is not reliable because :
1. ARS-remedy server is using random port for its service
2. You can’t tell whether the service is really down or not if you use ping health check
Below is the configuration in order you can perform a health check by knowing the ARS-remedy server service directly
1. Make a new executable file called ars_mon in the /usr/bin/monitors. Don’t forget to make it executable by doing chmod 744
2. Insert the below script to ars_mon.sh
#!/bin/sh
IP=`echo ${1} | sed ‘s/::ffff://’`
PORT=${2}PIDFILE=”/var/run/`basename ${0}`.${IP}.${PORT}.pid”
# kill of the last instance of this monitor if hung and log current pid
if [ -f $PIDFILE ]
then
echo “EAV exceeded runtime needed to kill ${IP}:${PORT}” | logger -p local0.error
kill -9 `cat $PIDFILE` > /dev/null 2>&1
fi
echo “$$” > $PIDFILE# send request & check for expected response
ssh user@${IP} -p ${PORT} ps -ef | grep “${RECV}” | grep -v grep 2>&1 > /dev/null# mark node UP if expected response was received
if [ $? -eq 0 ]
then
echo “UP”
firm -f $PIDFILE
exit
3. Then make a new health check monitor with below parameters
monitor remedy_apps_monitor {
defaults from external
interval 20
timeout 61
dest *:ssh
RECV “arserverd”
run “ars_mon”
}
4. Lastly, don’t forget to generate ssh keygen in order not to be challenged when F5 wants to doing ssh into ARS server
External monitor for remedy ARS server (UNIX server)