Load balancer pool members to server relationship

Dan Aragon
Tera Contributor

I'm trying to identify impact assessment on changes to load balancers. We have load balancer discovery which identifies pools and pool members with the name and IP address, but I can not relate the pool members to the server CIs themselves so that I can identify their associated service and support group/managed by group. What's the best way to create the relationship between pool member to the server?

2 REPLIES 2

ChiranjeeviR
Kilo Sage

Hi @Dan Aragon ,

 

To properly assess the impact of changes to load balancers in ServiceNow, it's critical to relate pool members to the corresponding server CIs (Configuration Items), especially to understand downstream services, support groups, and ownership.

Since you already have Discovery populating the load balancer, pools, and pool members, but can't directly relate pool members to server CIs, here’s a structured approach to bridge that gap:

 

Yes, you can discover and relate pool members to servers directly through Discovery — but by default, this relationship often isn't established automatically unless specific conditions are met.

 

You can follow below steps

Steps to Modify the Discovery Pattern

 1. Find the Discovery Pattern

  1. Navigate to:
    Pattern Designer → Discovery Patterns
    Or go to: Discovery Definition > Patterns
  2. Search for your Load Balancer type (e.g., "F5 LTM" or "Load Balancer").
  3. Open the pattern used for discovering Load Balancer Pools and Pool Members.

 2. Locate the Step That Creates Pool Members

Inside the pattern:

  • You’ll find a section (step) that:
    • Uses a table operation to insert or update cmdb_ci_lb_pool_member.
    • Sets attributes like:
      • ip_address
      • port
      • pool (reference to the pool)

 3. Add a Lookup Step for IP Address

Now, let’s link the pool member’s IP to a Server CI:

Add a New Step: Lookup CI by IP

  1. Right after the step that sets the ip_address, click “Add Step”
  2. Choose “Lookup Table”
  3. Configure the lookup:
    • Table: cmdb_ci_ip_address
    • Condition: ip_address equals ${PoolMember.ip_address} (or the variable holding the pool member IP)
    • Output Variable: ip_record (or name it as you like)

 4. Get the Associated Server

Add another step to extract the related CI:

  1. Type: Script Step
  2. Script:
if (ip_record && ip_record.cmdb_ci) {
    var server = ip_record.cmdb_ci.getRefRecord();
    if (server && server.sys_class_name == 'cmdb_ci_server') {
        var serverSysId = server.sys_id;
        // Store it for use in next step
        output.serverSysId = serverSysId;
    }
}

You can also store server directly in a variable for relationship use.

 

  1. Relate Pool Member to Server

There are 2 common approaches:

Option A: Set Reference Field

  • If you added a reference field associated_server on cmdb_ci_lb_pool_member:
    • Add a Set Attributes step to populate:
      • associated_server = ${output.serverSysId}

Option B: Create Relationship

  • Add a Create Relationship step:
    • Parent CI: ${pool_member_sys_id}
    • Child CI: ${output.serverSysId}
    • Relationship Type: Depends on::Used by or custom type

🔹 6. Test the Pattern

After updating the pattern:

  1. Save and Publish the pattern
  2. Run a Discovery against a known load balancer
  3. Go to the discovered Pool Member CI
    • Check if associated_server is populated OR
    • Check Related Items tab for relationship to the Server CI

 Validation

  • Navigate to cmdb_ci_lb_pool_member record
  • Confirm:
    • ip_address is populated
    • associated_server is populated or relationship exists
  • View the Server CI:
    • Check if it has Business Service, Support Group, etc.

Result

You now have a live link from pool members → servers, created automatically by Discovery.

This enables:

  • Accurate impact analysis on changes to load balancers
  • Traceability to Business Services and Support Groups
  • Clean Dependency Views

 

Thanks and Regards,

Chiranjeevi R

Please mark as Correct Answer/Helpful, if applicable.

Thanks & Regards,
Chiranjeevi
ServiceNow Developer | | ITSM | | ServiceNow Discovery | | Event Management | | Service Mapping | | CMDB

Please mark as Correct Answer/Helpful, if applicable.

Hi @ ChiranjeeviR 

Thank you for reply,

3. Add a Lookup Step for IP Address 

I can't find Lookup table operation in pattern designer, can you please point to me.