Forum Discussion

codyjohn's avatar
codyjohn
Icon for Nimbostratus rankNimbostratus
Nov 12, 2014

Reference a pool name inside of an associated external monitor?

We have many similar pools, one per customer, with different ip:port combinations assigned to each of them. The pools are each named with a unique identifier for each customer, something like:

 

pool_${customer}

 

We want to implement a monitor (presumably external) that does a simple HTTP request against each node and looks for the associated ${customer} value in the payload. We want to do so without creating a separate explicit monitor for each pool, and use the name of the associated pool to determine the return value to look for. Any ideas on how to accomplish this?

 

5 Replies

  • How about using RestAPI to list the members in each pool_${customer}? Then loop thru the members in each pool using curl to fetch page and check for the customer string.

     

    • codyjohn's avatar
      codyjohn
      Icon for Nimbostratus rankNimbostratus
      Are you suggesting we have an external script that performs this? If so, how would we then mark a node as down if we don't find "${customer}" in the curl payload? Another API call? We are trying to implement a failsafe mechanism to ensure that the application server and the F5 are in agreement on what customer instance should be served by a particular ip:port combination, and that we never have an app node in the wrong customer pool. We have thousands of pools per F5 pair and want to figure out a simple and native (if possible) solution that can catch stuff quickly.
  • kunjan's avatar
    kunjan
    Icon for Nimbostratus rankNimbostratus

    How about using RestAPI to list the members in each pool_${customer}? Then loop thru the members in each pool using curl to fetch page and check for the customer string.

     

    • codyjohn's avatar
      codyjohn
      Icon for Nimbostratus rankNimbostratus
      Are you suggesting we have an external script that performs this? If so, how would we then mark a node as down if we don't find "${customer}" in the curl payload? Another API call? We are trying to implement a failsafe mechanism to ensure that the application server and the F5 are in agreement on what customer instance should be served by a particular ip:port combination, and that we never have an app node in the wrong customer pool. We have thousands of pools per F5 pair and want to figure out a simple and native (if possible) solution that can catch stuff quickly.
  • kunjan's avatar
    kunjan
    Icon for Nimbostratus rankNimbostratus

    Yes, can have another API call to disable to node if found in the wrong pool. I guess you still have a standard monitoring to check the service up or down for faster health check. The external script will be useful only to validate the nodes are under correct pool. This may be scheduled.

     

    The other option might be to use API to auto generate the monitors, which ensures monitors are created correctly and mark it down if service is down or nodes moved under the pool wrongly.