Forum Discussion

GLM_191985's avatar
Jan 25, 2019

Monitor when set HTTP server shows down but when I set it to TCP it works

Monitor when set to HTTP server shows down but when I set it to TCP it works? why so? For Ex. server node. 10.1.1.1 port 80

 

  • The tcp monitor is a layer 4 health monitor. It only checks that it can establish a tcp connection against the pool member.

     

    The http monitor is a layer 7 health monitor. It does an http request (HTTP GET) against the pool member and expects an http response.

     

    In essence the pool member is probably accepting new connections on port 80 but is not responding http requests.

     

    • AceDawg1's avatar
      AceDawg1
      Icon for Nimbostratus rankNimbostratus

      In addition, can you verify if there is/isn't a firewall between the F5 and the pool member(s)? I've seen properly configured systems without the appropriate firewall policies to allow the traffic through.

       

  • wlopez's avatar
    wlopez
    Icon for Cirrocumulus rankCirrocumulus

    The tcp monitor is a layer 4 health monitor. It only checks that it can establish a tcp connection against the pool member.

     

    The http monitor is a layer 7 health monitor. It does an http request (HTTP GET) against the pool member and expects an http response.

     

    In essence the pool member is probably accepting new connections on port 80 but is not responding http requests.

     

    • AceDawg1's avatar
      AceDawg1
      Icon for Nimbostratus rankNimbostratus

      In addition, can you verify if there is/isn't a firewall between the F5 and the pool member(s)? I've seen properly configured systems without the appropriate firewall policies to allow the traffic through.

       

  • Hi GLM, By default the http monitor send the string /\r\n to probe the server and expects standard code like 200 or 404 etc. If the server is not giving any of the codes something like Empty then the pool mark node down.

     

    Use this command in bash curl -v http://10.1.1.1:80/\r\n and you will see * Empty reply from server. So verify the Webserver settings on the configured webservices.

     

  • IF this is still an open item, pls share us the below results,

    • The http monitor set on the pool.

    tmsh list ltm monitor http 

    • Do a curl.

    curl -kv http://:/monitor/bigip.html

    Here /monitor/bigip.html is just an example, you should replace it with your send string path, whichever you have set.