F5Networks / f5-appsvcs-extension

F5 BIG-IP Application Services 3 Extension
Apache License 2.0
164 stars 53 forks source link

Is it possible to set the "Node Name" in AS3 Pool_Member #531

Open zongzw opened 2 years ago

zongzw commented 2 years ago

Hi

I'm implementing an external monitor in which I do a HTTP request to the member to check if the member is available.

In this case, I need to check the hostname instread of "AddressDiscovery"-ed auto, because http get IP may get 404. For example: http://www.example.org -> 200, http://93.184.216.34 -> 404.

So I need to know the hostname instead of resolved IP that bigip gives to me in monitor checking.

A way to get the hostname is the node name:

'NODE_NAME': '/Common/www.example.org' instead of 'NODE_NAME': '/Common/_auto_93.184.216.34'

image

In general AS3 declaration, it always resolve the passed hostname to _auto:

                "web_pool-1637673434": {
                    "class": "Pool",
                    "members": [
                        {
                            "servicePort": 80,
                            "hostname": "www.example.org",
                            "addressDiscovery": "fqdn",
                            "autoPopulate": true
                        }
                    ]
                }

How can I set node_name?

More information about context of running external monitors FYI:

external monitor arguments:

['/config/ex_monitors/my_monitor_executable', '::ffff:93.184.216.34', '80', '/']

external monitor environments:

environ({'MON_TMPL_NAME': '/Common/Shared/http_ex-1637673434-for-web_pool', 'ts_port': '6514', 
'ARGS_I': '/', 'PROBE_TIMEOUT': '16', 'SECURITY_COMMONCRITERIA': 'false', 
'PATH': '/sbin:/bin:/usr/sbin:/usr/bin:/usr/contrib/bin:/usr/local/bin:/usr/contrib/sbin:/usr/local/sbin:/usr/libexec', 
'NODE_PORT': '80', 'logging_level': 'DEBUG', 'PWD': '/run', 
'MON_INST_LOG_NAME': '/var/log/monitors/Common_Shared_http_ex-1637673434-for-web_pool-Common__auto_93.184.216.34-80.log', 
'pool_name': 'web_pool', 'SHLVL': '1', 'NODE_IP': '::ffff:93.184.216.34', 'ts_host': '127.0.0.1', 

********    'NODE_NAME': '/Common/_auto_93.184.216.34',       ***************

'RUN_I': '/Common/http_ex', 'SECURITY_FIPS140_COMPLIANCE': 'false', 'probing_timeout': '3', 'logging_file': '/var/log/monitors/ex_monitors.log', 
'_': '/config/ex_monitors/http_ex', 'LD_LIBRARY_PATH': '/config/ex_monitors'})
dstokesf5 commented 2 years ago

This is related to #161. For now I am not considering this a duplicate since this issue focuses on FQDN, while #161 focuses on static nodes.