Forum Discussion
script not working under v16
Hi,
To create an external monitoring script (internal does not give enough flexibility) I downloaded a template somewhere, also downloaded a trial of andd this thingy
#!/bin/sh
# (c) Copyright 1996-2007 F5 Networks, Inc.
#
# @(#) $Id: http_monitor_cURL+GET,v 1.0 2007/06/28 16:10:15 deb Exp $
# (based on sample_monitor,v 1.3 2005/02/04 18:47:17 saxon)
#
# these arguments supplied automatically for all external monitors:
# $1 = IP (IPv6 notation. IPv4 addresses are passed in the form
# ::ffff:w.x.y.z
# where "w.x.y.z" is the IPv4 address)
# $2 = port (decimal, host byte order)
#
# Additional command line arguments ($3 and higher) may be specified in the monitor template
# This example does not expect any additional command line arguments
#
# Name/Value pairs may also be specified in the monitor template
# This example expects the following Name/Vaule pairs:
# URI = the URI to request from the server
# RECV = the expected response (not case sensitive)
#
# remove IPv6/IPv4 compatibility prefix (LTM passes addresses in IPv6 format)
#
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
curl -m 5 -fNs http://10.128.182.169:8000/$(basename ${NODE_NAME}) | grep "200" 2>&1 > /dev/null
# mark node UP if expected response was received
if [ $? -eq 0 ]
then
rm -f $PIDFILE
echo "UP"
else
rm -f $PIDFILE
fi
exit
Unfortunately our production loadbalancers turn out to have an older version (v12) running than the one I downloaded (v16). And appaerantly The NODE_NAME variable, which worked so fine in my own setup, is not present there, hence the script does not work.
Is there anything I can do to make this script on F5 v12 go to a target without having to setup each healthmonitor by hand en giving the name/ip as extra fixed parameter? Is the NODE_NAME variable or the ipaddress available in a different variable name or something like that?
THIA
Well the NODE_NAME is one of the predefined variables i what i think. But if its not working in v12, then you have to supply it as argument or update your script to define that variable manually.
Can you put logging of $NODE_NAME in your script to see if it gives you something in different format compared to v12 & v16 or does it not get defined at all.
- TucksonAltostratus
Well, I do not have access to that F5 myself unfortunately, but as far as I can see it is empty. The script did run but the url to be tested failed because it was not complete. I could test if I could still download a trial of of vs 12 somewhere?
Yes, you can download the v12, spin it up. Create that monitor, create that pool, make sure its reachable. Then you can turn on logging to see what's happening... Good Luck :)
Sorry dont have v12 currently to test it out.
- TucksonAltostratus
Downloaded the V12. Go it to work :-) The NODE_NAME was available however, some other changes in the script were necessary.
Recent Discussions
Related Content
* Getting Started on DevCentral
* Community Guidelines
* Community Terms of Use / EULA
* Community Ranking Explained
* Community Resources
* Contact the DevCentral Team
* Update MFA on account.f5.com