Logging pool member name (and not just address)
Problem this snippet solves:
I wanted to see a pool member's text name, not just the IP address, in logs. We accomplished this by creating an iCall script that routinely created dynamic data-groups from existing pools, then using an iRule to log the pool member's name based on lookup.
How to use this snippet:
We had this script run periodically as new pool members were not created/added on a regular basis:
create sys icall handler periodic create_poolmember_datagroups interval 86400 script create_poolmember_datagroups
The iRule would look in "dynpoolmbrdg-[pool_name]" by IP address and log the corresponding member text name.
Code :
icall script create_poolmember_datagroups {
app-service none
definition {
# Define variable types
set poollist [list]
set memberlist [list]
set datagrouplist [list]
# get a list of current data-groups
set dglistraw [tmsh::get_config /ltm data-group internal]
foreach datagroup $dglistraw {
lappend datagrouplist [tmsh::get_name $datagroup]
}
# process each pool member in the configuration
set poollistraw [tmsh::get_config /ltm pool]
foreach pool $poollistraw {
# retrieve the pool name and current members
set poolname [tmsh::get_name $pool]
set memberlist [tmsh::get_field_value $pool members]
# Create the pool's data group if it doesn't exist
set dyndgname dynpoolmbrdg-$poolname
if {[lsearch $datagrouplist $dyndgname] >= 0} {
} else {
tmsh::create ltm data-group internal $dyndgname type string
}
# Overwrite the data-group with a list of the current members
foreach member $memberlist {
set membername [tmsh::get_name $member]
set memberaddr [tmsh::get_field_value $member "address"]
append payload "$memberaddr { data $membername } "
set records "{ $payload }"
tmsh::modify ltm data-group internal $dyndgname records replace-all-with $records
}
}
}
description none
events none
}Tested this on version:
No Version FoundPublished Aug 13, 2019
Version 1.0G-Rob
Employee
F5 Solutions Engineer focused on cloud, automation, modern apps and excellent customer-focused service.G-Rob
Employee
F5 Solutions Engineer focused on cloud, automation, modern apps and excellent customer-focused service.No CommentsBe the first to comment