Forum Discussion

ozdemircili_696's avatar
ozdemircili_696
Icon for Nimbostratus rankNimbostratus
Jun 18, 2010

Health Monitors

Hi, I have created a health monitor with the following config: Interval 5 Timeout 16 Send String GET /test/test.jsp Receive String HTTP 1\.(0|1) 200 Reverse No Transparent No Alias address ALL Alias Service Port ALL But whne I go to add it to a specific node choosing NODE SPECIFIC I cannot see the monitor I created inside the list. Do I need to do anything else to make the monitor a node specific one? Thanks.
  • Hi Aaron, I have added the following as the send string GET /test/index.jsp /HTTP 1.1\r\n Host:\r\nConnection: Close Although the app is up it shows as offline.
  • A 505 status indicates the client HTTP version not supported. Can you add a space between HTTP and 1.1?

     

     

    Aaron
  • Hi, I have added them. Although I have the tomcat working and application stopped the monitor still shows the node as active. The output of the command from my workstation is: HTTP/1.1 505 Versi�n de HTTP No Soportada Server: Apache-Coyote/1.1 Date: Fri, 18 Jun 2010 08:09:18 GMT Connection: close Just a sidenote on the command. As it is tomcat I am using 8080: echo -e "GET /test/test.jsp /HTTP1.1\r\n Host:\r\nConnection: Close\r\n\r\n" | nc ipoftheserver 8080
  • Can you test this using netcat? Also, \r\n is the delimiter for lines in HTTP. Can you try this as your request to netcat:

     

     

    echo -e "GET /test/index.jsp /HTTP1.1\r\n Host:\r\nConnection: Close\r\n\r\n" | nc 1.1.1.1 80

     

     

    Replace 1.1.1.1 80 with your server IP and port.

     

     

    And then try this as your send string in the monitor configuration:

     

     

    GET /test/index.jsp /HTTP1.1\r\n Host:\r\nConnection: Close

     

     

    The monitoring daemon in 9.4 - 10.1 appends two CRLFs to the end of the send string, so you shouldn't include them. Note I've removed the d in closed.

     

     

    Can you try this as a receive string:

     

     

    HTTP/1\.(0|1) (200|304)

     

     

    Aaron
  • Hi absolutely it is clear now. I have managed to add the monitor to the pool I have created. Though I have another problem. As the send string I have placed GET /test/index.jsp /HTTP1.1\n Host:\nConnection: Closed\n The url / test/index.jsp basicly returns a web page with words "Data and Retailer", A box and a send button. What should I add as the receive string? I have tried adding Data HTTP/(1.0|1.1) (200 OK|304 Not Modified) which didnt succeed. P.S. this is a tomcat app that Im trying to monitor. When the app stops the page still exists but gives a 404 error.
  • See this post for details:

     

     

     

    Can't see all the monitors

     

    http://devcentral.f5.com/Default.aspx?tabid=53&aft=1172093&afc=1172379

     

     

    A node is an IP address whereas a pool member is an IP address and port (with an association to the pool name). Normally, you create a monitor for a pool member without an alias IP or port and the monitor inherits the pool member IP and port. A service level monitor without a hardcoded port can't be associated with a node as there isn't a way for the monitoring daemon to know what port to perform the check on. If you create a monitor with a hardcoded alias port, then you can apply it to a node (an IP address).

     

     

    The short answer is that you generally want to associate service monitors with a pool. If you need to create dependencies between multiple ports or multiple IP:ports you can use the alias IP and/or port definitions on the monitor to do so.

     

     

    Hope this is clear? If not, can you describe what you're trying to implement in more detail?

     

     

     

    Aaron