Forum Discussion

BrianG_11931's avatar
BrianG_11931
Icon for Nimbostratus rankNimbostratus
Mar 19, 2014

HTTP Health Monitor Issue

Hello, I tried creating a Health Monitor to test server-specific content returned from a web server query, but it's currently not working and my servers are in an "Offline (Enabled)" state.

From a command line I run the following and getting the following result back, which is working as expected:

C:> wget "SERVER:8080/elevationWS/WS/34.9793,-80.9714"

SYSTEM_WGETRC = c:/progra~1/wget/etc/wgetrc

syswgetrc = C:\Program Files\gnuwin32/etc/wgetrc

--2014-03-18 17:06:41-- http://SERVER:8080/elevationWS/WS/34.9793,-80.9714

Resolving SERVER... 172.24.48.9

Connecting to SERVER|172.24.48.9|:8080... connected.

HTTP request sent, awaiting response... 200 OK

Length: 166 [application/xml]

Saving to:

34.9793,-80.9714'

100%[==============================================================================>] 166         --.-K/s   in 0s

2014-03-18 17:06:41 (2.49 MB/s) -

100%[==============================================================================>] 166 --.-K/s in 0s

2014-03-18 17:06:41 (2.49 MB/s) -`34.9793,-80.9714' saved [166/166]

Here is my HTTP Health Monitor:

Send String: GET \"/elevationWS/WS/34.9793,-80.9714\" HTTP/1.1\r\nHost: \r\nConnection: Close\r\n
Receive String: 200

For the Receive String I also tried using a line of data retrieved, which looks like the following, but that didn't work either: 34.9793

Do you guys see any issues with this setup? Thanks

  • That tcpdump command I listed above should have created a capture file in/var/tmp. You can SCP the file down to your workstation and open it in Wireshark. Let it run for about 30 seconds and then press Ctrl-c to stop the capture.

     

  • Try this send string:

     

    GET /elevationWS/WS/34.9793,-80.9714 HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\r\n

     

  • I'd recommend doing a tcpdump on the LTM to analyze the HTTP traffic and see what may be happening. Capture it to a file for viewing in Wireshark:

     

    tcpdump -nni 0.0 host 172.24.48.9 -s0 -w /var/tmp/httpmonitor.pcap

     

    Verify that the host is responding as expected (with a 200) to the GET request.

     

    • BrianG_11931's avatar
      BrianG_11931
      Icon for Nimbostratus rankNimbostratus
      Can you elaborate on how I use the tcpdump command? I've never used it before and after running it, it was just sitting there and then I lost my Wi-Fi connection to the terminal session and I don't know if the command is still running or not and if I need to do anything else? Thanks
  • Troubleshooting HTTP Monitors can be tricky. Have a look at this article. http://support.f5.com/kb/en-us/solutions/public/12000/500/sol12531.html Personally, I like to use Fiddler or HTTP Watch to see a good flow back and forth, to make sure what version, etc. Make sure your receive string is something unique that will always be on the page. Last, I use curl from the command line of the LTM to give my strings a dry run. Hope This Helps, Jeff
  • That tcpdump command I listed above should have created a capture file in/var/tmp. You can SCP the file down to your workstation and open it in Wireshark. Let it run for about 30 seconds and then press Ctrl-c to stop the capture.

     

    • BrianG_11931's avatar
      BrianG_11931
      Icon for Nimbostratus rankNimbostratus
      Unfortunately I was kicked off the Wi-Fi and the command is no longer running in the terminal session for me to stop the capture, even though I logged back in with the same account. How can I stop this process? I'm afraid I'm not a Linux person.
    • Cory_50405's avatar
      Cory_50405
      Icon for Noctilucent rankNoctilucent
      You can just restart it by running the command again.
    • BrianG_11931's avatar
      BrianG_11931
      Icon for Nimbostratus rankNimbostratus
      I tried the following and all are returning "HTTP/1.1 400 Bad Request", from what I can tell. "GET /elevationWS/WS/34.9793,-80.9714 HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\" "GET /elevationWS/WS/34.9793,-80.9714 HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\r\n\" "GET \"/elevationWS/WS/34.9793,-80.9714\" HTTP/1.1\r\nHost: \r\nConnection: Close\r\n\" Any suggestions?