For more information regarding the security incident at F5, the actions we are taking to address it, and our ongoing efforts to protect our customers, click here.

Forum Discussion

Indrajit_Basak_'s avatar
Indrajit_Basak_
Icon for Nimbostratus rankNimbostratus
Apr 20, 2014

ECV Health Monitor issue

We have BIGIP LTM 2000v for load Balancing Oracle WMS application.we have an issue with ECV health monitor configured in Pool. Detailed Problem Description:-

 

There are 3 real servers are accessible by below URLS

 

1.http://lmrydwmsap1.riydah.cpksa.local:7778/forms/frmservlet?config=wmshcrdc-hh 2.http://lmrydwmsap2.riydah.cpksa.local:7778/forms/frmservlet?config=wmshcrdc-hh 3.http://lmrydwmsap3.riydah.cpksa.local:7778/forms/frmservlet?config=wmshcrdc-hh

 

We have configured a Pool where these three real servers are added as pool member . we had configured ECV HTTP health Monitor to monitor these pool members i.e. the real servers

 

The details of health monitor are as below:-

 

Monitor Type :- HTTP Interval :- 5 Send String :- GET /forms/frmservlet?config=wmshcrdc-hh HTTP/1.1\r\nHost:\r\nConnection: close\r\n\r\n Receive String :- 200 OK . Service port :- 7778

 

Now the issue is when these real servers URL are down( Real server IPs are rechable from BIG IP but the Real server URLS are not accessible still the Pool members are showing healthy ( i.e. up ) .

 

We are not sure whether ECV health monitors are configured correctly and it is affecting our production .

 

Can anybody help on that .

 

Regds...Indrajit

 

5 Replies

  • Hi , here we have three real servers so what is the best practice . Shall we need to create three Health Monitor and associate specific host value health value in each health monitor . And add all three health monitor in Pool Configuration . For example :-

     

    health Monitor 1 :- Send string GET /forms/frmservlet?config=wmshcrdc-hh HTTP/1.1\r\nHost:lmrydwmsap1.riydah.cpksa.local \r\nConnection: close\r\n\r\n

     

    Health Monitor 2 :- Send String GET /forms/frmservlet?config=wmshcrdc-hh HTTP/1.1\r\nHost:lmrydwmsap2.riydah.cpksa.local \r\nConnection: close\r\n\r\n

     

    Health Monitor 3 :- Send String GET /forms/frmservlet?config=wmshcrdc-hh HTTP/1.1\r\nHost:lmrydwmsap3.riydah.cpksa.local \r\nConnection: close\r\n\r\n.

     

    Can you pls suggest best possible solution in our case ......

     

  • Shall we need to create three Health Monitor and associate specific host value health value in each health monitor.

     

    i understand it depends on how web server is configured. blank host header value (Host: ) or virtual server's FQDN may also work.

     

    Now the issue is when these real servers URL are down( Real server IPs are rechable from BIG IP but the Real server URLS are not accessible still the Pool members are showing healthy ( i.e. up ).

     

    do you have tcpdump when the issue was happening?

     

    Troubleshooting Ltm Monitors by Aaron

     

    https://devcentral.f5.com/wiki/advdesignconfig.TroubleshootingLtmMonitors.ashx

     

  • BinaryCanary_19's avatar
    BinaryCanary_19
    Historic F5 Account

    The Lack of a Host header is certainly a problem. If there are multiple web sites hosted on the same servers accessible via different hostnames, then your monitor might be monitoring the default sites on those servers rather than the one you think you are monitoring.

     

    If all three servers require different hostnames, I don't see how you could construct a single HTTP monitor to handle all three of them.

     

    If you are putting your web servers behind a load balancer, you should configure them all to serve the same domain name.

     

  • JG's avatar
    JG
    Icon for Cumulonimbus rankCumulonimbus

    The lack of a Host header may not be a problem, since you don't have that header under HTTP 1.0 anyway -- at least under HTTP 0.9, as I recall.

     

    The simplest way is to configure one default HTTP server at all the backend application servers, making it accept all queries, whether there is a Host header or not, or whatever the value of the header might be.