Burrell
Feb 05, 2016Nimbostratus
Exchange 2016 iApp RC2 issue
We have implemented our 2 node exchange 2016 environment with the RC2 iApp template. The cluster uses certificates to secure/encrypt traffic, and all appears to be working except EWS related functions with advanced monitors, if we step down to simple monitors everything works. We would like to have the additional application layer validation if possible.
Our issue is the EWS advanced health monitor is failing. How can we troubleshoot this pre-scripted monitor?
Below is the script the health monitor runs using credentials we provided. The credentials authenticate and are also used for OWA, POP3, IMAP and these health monitors are working/succeeding. It is only EWS that fails.
!/bin/sh
These arguments supplied automatically for all external monitors:
$1 = IP (nnn.nnn.nnn.nnn notation)
$2 = port (decimal, host byte order)
This script expects the following Name/Value pairs:
USER = the username associated with a mailbox
PASSWORD = the password for the user account
DOMAIN = the Windows domain in which the account lives
EMAIL = the email address associated with the user mailbox
Remove IPv6/IPv4 compatibility prefix (LTM passes addresses in IPv6 format)
NODE=`echo ${1} | sed 's/::ffff://'`
if [[ $NODE =~ ^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$ ]]; then
node is v4
NODE=${NODE}
else
node is v6
NODE=[${NODE}]
fi
PORT=${2}
PIDFILE="/var/run/`basename ${0}`.my_new_iapp_test_2010_${USER}_${NODE}_ews.pid"
DIR="http://schemas.microsoft.com/exchange/services/2006"
XML1=$( cat<IdOnly
EOF
)
XML2=$( cat<
EOF
)
XMLFULL=${XML1}${EMAIL}${XML2}
EWSURI='/EWS/Exchange.asmx'
RECV=''
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 ${NODE}:${PORT}" | logger -p local0.error
kill -9 `cat $PIDFILE` > /dev/null 2>&1
fi
echo "$$" > $PIDFILE
curl-apd -g -s --ntlm -k -X POST -H 'Content-Type: text/xml; charset=utf-8' -d "${XMLFULL}" -u ${DOMAIN}\\${USER}:${PASSWORD} https://${NODE}${EWSURI} | grep -i "${RECV}" > /dev/null 2>&1
STATUS=$?
rm -f $PIDFILE
if [ $STATUS -eq 0 ]
then
echo "UP"
fi
exit