I have a bit more to offer now having fought with this even with the Denodo system engineers. The documented method they gave is for pre 11.x versions and they don't exactly have an answer for making this work in 11.4.
From the Denodo servers (nodes) that were installed, they gave me a zipped directory that needed to be decompressed and copied onto the F5 into folders that no longer exist on 11.4 but was nevertheless copied. Some of these folders and a particular ping.sh file required RWX privileges and that was granted.
In addition, they have the external monitor bash script that I created and imported into the F5 through file manager. Here is the script:
!/bin/bash These arguments are supplied automatically for all external pingers: $1 = IP (nnn.nnn.nnn.nnn notation or hostname) $2 = port (decimal, host byte order) $3 and higher = additional arguments
. /etc/profile pidfile="/var/run/pinger.$1..$2.pid" if [ -f $pidfile ] then kill -9 cat $pidfile > /dev/null 2>&1 fi echo "$$" > $pidfile node_ip=echo "//"$1 cd /config/monitors/denodo-db-tools/bin status=sh /config/monitors/denodo-db-tools/bin/ping.sh -t 2000 -v $node_ip:9999 2>/dev/null | grep OK | wc -l if [ "$status" = "1" ] then rm -f $pidfile echo $status exit 0 fi rm -f $pidfile
(The directory above '/config/monitors' is supposed to be '/usr/bin/monitors' but it doesn't work as documented because /usr/bin/monitors is a pointer to /config/monitors. So I changed the script to reflect the true folder.).
From the instructions, this was all the setup required, at least under pre 11.x versions.
While testing with Denodo engineers, we manually copied this script to the F5 and made it executable and found it gave errors on some things such as no path for the java runtime directory or it's own home directory. We corrected them in the /etc/profile and/or the bash_profile to make it work. Running the script then seemed to work. Denodo didn't seem to know what to do with this so I worked with a good unix administrator to get this worked out and I'm still not sure I understand everything he said was missing or incorrect.
Regardless, we seemed to get it working at the CLI to at least return the code it says will determine if the server is healthy.
In the GUI however, applying the imported script into the external monitor and then applying that monitor to either a pool or node causes the server to report unhealthy and be taken down. It seems errors will show in /var/log/ltm and /var/log/bigd but I'm not getting much detail to see the problem. I've been reading on turning on debugging but the little I tried didn't seem to give me any extra output in the logs.
It seems like the changes we had to make for the scripts path and home directories at the CLI level is possibly not being passed along to the GUI part of the configuration so Denodo says that's an LTM problem. Go figure.
I haven't administerd Unix in 15 years so the pathing and home directories have me confused as to how to possibly set those items in the script. I did attempt to apply those settings in the script but I don't know if it's doing anything.
I have ICMP applied at the node level but in order to work properly, this external monitor is required for proper operation on the pool.
So, after all that, any ideas? I did find out how to get it to report the version of java and it is 1.6.
Steve