Forum Discussion

Ben_Jacobs_8776's avatar
Ben_Jacobs_8776
Icon for Nimbostratus rankNimbostratus
Jun 29, 2007

SOAP Health Monitor

Sorry if this has been posted before. I'm relatively new to Big-IP and haven’t done anything yet with iRules.

 

 

We’re trying to get a pool which monitors a SOAP listener working, but the default SOAP health monitor is not working for us. There is no way to provide a value for a ‘SOAPAction’ and without it we always return a 404 error. I’ve been told that there is a way to get this working with an iRule.

 

 

I really have no idea where to start on this, but if someone has already done an iRule to do this any help would be appreciated.

 

 

Thanks.

 

  • spark_86682's avatar
    spark_86682
    Historic F5 Account
    There is a workaround for this issue where you use a virtual with an iRule attached as your monitor target. So your config would look like:

    
    monitor soap_mon {
       defaults from soap
       dest 10.10.10.99:http 
       method "HealthCheck"
       namespace "http://example.org/"
       param type "string"
       protocol "http"
       return type "string"
       return value "LOOKS GOOD"
       urlpath "/soapmon.cgi"
    }
    pool my_pool {
       monitor all soap_mon
       member 10.10.10.100:http
    }
    pool soap_health_check_pool {
       member 10.10.10.100:http
    }
    virtual soap_health_check {
       destination 10.10.10.99:http
       snat automap
       ip protocol tcp
       profile http tcp
       pool soap_health_check_pool
       rule soap_health_rewrite
    }

    And use an iRule like:

    
    rule soap_health_rewrite {
       when HTTP_REQUEST {
          HTTP::header replace SOAPAction "Some_SOAP_Action"
       }
    }

    That's a rough draft that should get you started...
  • Thanks.

     

     

    It looks like setting up the health monitor this way will only check to see if the Virtual Server is up; it won't be able to see if the listner on an individual node is down. So if one node is down, the whole cluster will be down.
  • Deb_Allen_18's avatar
    Deb_Allen_18
    Historic F5 Account
    I am not intimately familiar with all the potential forms a SOAP request could take, but if a request sufficient for validating the health of the server could take the form of a GET for a specific URI with the correct Host header and SOAPAction header, perhaps a simpler option would be to create an HTTP monitor based on the built-in HTTP monitor template, specifying the appropriate headers, following this example on AskF5:

     

    "Writing full HTTP commands for Extended Content Verification (ECV) or Extended Application Verification (EAV) health monitors" (Click here)

     

     

    HTH

     

    /deb