Forum Discussion
simont_85038
Nimbostratus
Nov 14, 2018HTTPS Health monitor to follow 302 Redirect
Hi
I would like to create a HTTPS health probe monitoring a site that has a 302 Redirect. Instead of matching the 302 Redirect I would like to match the HTTP 200 OK response code from the redir...
Lee_Sutcliffe
Nacreous
Nov 14, 2018You could do this with an external monitor and use cURL to follow the redirect. This is an edited version of the sample monitor (/config/monitors/sample_monitor) The section you need to edit for your environment is:
curl -L -H host:your.host.com https://$node_ip:$2/testpath | grep -E -i "200 OK" > /dev/null
Please note this is untested
!/bin/sh
(c) Copyright 1996-2006, 2010-2013 F5 Networks, Inc.
This software is confidential and may contain trade secrets that are the
property of F5 Networks, Inc. No part of the software may be disclosed
to other parties without the express written consent of F5 Networks, Inc.
It is against the law to copy the software. No part of the software may
be reproduced, transmitted, or distributed in any form or by any means,
electronic or mechanical, including photocopying, recording, or information
storage and retrieval systems, for any purpose without the express written
permission of F5 Networks, Inc. Our services are only available for legal
users of the program, for instance in the event that we extend our services
by offering the updating of files via the Internet.
@() $Id: //depot/maint/bigip12.1.2-hf1/tm_daemon/monitors/sample_monitor1 $
these arguments supplied automatically for all external pingers:
$1 = IP (::ffff:nnn.nnn.nnn.nnn notation or hostname)
$2 = port (decimal, host byte order)
$3 and higher = additional arguments
$MONITOR_NAME = name of the monitor
In this sample script, $3 is the regular expression
Name of the pidfile
pidfile="/var/run/$MONITOR_NAME.$1..$2.pid"
Send signal to the process group to kill our former self and any children
as external monitors are run with SIGHUP blocked
if [ -f $pidfile ]
then
kill -9 -`cat $pidfile` > /dev/null 2>&1
fi
echo "$$" > $pidfile
Remove the IPv6/IPv4 compatibility prefix
node_ip=`echo $1 | sed 's/::ffff://'`
Using the nc utility to get data from the server.
Search the data received for the expected expression.
curl -L -H host:your.host.com https://$node_ip:$2/testpath | grep -E -i "200 OK" > /dev/null
status=$?
if [ $status -eq 0 ]
then
Remove the pidfile before the script echoes anything to stdout and is killed by bigd
rm -f $pidfile
echo "up"
fi
Remove the pidfile before the script ends
rm -f $pidfile
Help guide the future of your DevCentral Community!
What tools do you use to collaborate? (1min - anonymous)Recent Discussions
Related Content
DevCentral Quicklinks
* 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
Discover DevCentral Connects