HAProxy load balancer discovery using probes
Summarize
Summary of HAProxy load balancer discovery using probes
This process enables ServiceNow customers to discover HAProxy Community Edition load balancers using SSH-based probes. HAProxy is an open-source load balancer optimized for HTTP load balancing with session persistence and Layer 7 processing. Discovery focuses on HTTP load balancing; TCP load balancing is not supported. From Discovery and Service Mapping Patterns version 1.15.0 onward, pattern-based discovery is the default, but probe-based discovery can still be enabled as needed.
Show less
Key Requirements
- HAProxy must be installed and running on a Linux server.
- A ServiceNow MID Server must be deployed with access to the HAProxy server and its configuration file.
- The discovery process locates the
haproxy.cfgfile either via the process output parameter or the default path/etc/haproxy/haproxy.cfg. - Discovery probes require valid credentials with privileges to execute commands on the target server.
How Discovery Works
- The Unix Active Processes probe looks for the HAProxy process named
haproxy. - Upon identification, a record is created in the
HAProxy Load Balancers [cmdbcilbhaproxy]table if it does not already exist. - Subsequent probes collect detailed information:
| Probe | Description | Commands Used |
|---|---|---|
| HAProxy – Version | Populates the HAProxy version in the HAProxy Load Balancers table. | haproxy |
| HAProxy – Get Configuration | Populates additional HAProxy load balancer details and related CI tables:
| echo, sed, cut, grep, egrep (via Borne shell script) |
Key Outcomes
- Accurate identification and recording of HAProxy load balancers in the ServiceNow CMDB.
- Detailed configuration data is captured and distributed across relevant CI tables, enabling comprehensive visibility into load balancer services, pools, members, interfaces, and applications.
- Relationships among the discovered CIs are established to reflect real-world dependencies and associations, improving CMDB integrity and service mapping accuracy.
Discovery of HAProxy Community edition load balancers is performed by SSH.
- For information about enabling probe-based discovery, see Enable HAProxy load balancer discovery with probes.
- For information about the HA Proxy pattern, see HAProxy load balancer discovery with patterns.
- For information about Probe to Pattern migration see the knowledge article KB0694477.
HAProxy is an open-source load balancer that can manage any TCP service. It is particularly suited for HTTP load balancing because it supports session persistence and Layer 7 processing. Discovery supports HAProxy for HTTP load balancing. TCP load-balancing is not supported.
- The HAProxy software is installed and running on a Linux server.
- The MID Server is deployed to explore the server and the MID Server has access to the server HAProxy configuration file.
- The configuration probe checks for the haproxy.cfg file using one of the following methods:
- Using the f parameter for the HAProxy process output.
- Using the default /etc/haproxy/haproxy.cfg path.
- The HAProxy probes require credentials and execute privileges to run commands.
Discovery uses the Unix - Active Processes probe to identify an HAProxy load balancer when the name of the process is haproxy. If this criterion matches, a record is created in the HAProxy Load Balancers [cmdb_ci_lb_haproxy] table if one does not already exist for that running process.
| Probe | Description | Commands |
|---|---|---|
| HAProxy – Version | The sensor of this probe populates the HAProxy version in the HAProxy Load Balancers [cmdb_ci_lb_haproxy] table. | haproxy |
| HAProxy – Get Configuration | The sensor of this probe populates additional information in the HAProxy Load Balancers [cmdb_ci_lb_haproxy] table. The probe also populates information in the Load Balancer Service [cmdb_ci_lb_service], Load Balancer Pool [cmdb_ci_lb_pool], Load Balancer Pool Member [cmdb_ci_lb_pool_member], Load Balancer Interface [cmdb_ci_lb_interface], and Load Balancer Application [cmdb_ci_lb_appl] tables. | echo, sed, cut, grep, egrep (within the Borne shell script) |
In addition to populating the data, the following relationships records are created in CI Relationships [cmdb_rel_ci] table:
- The records in the cmdb_ci_lb_appl table run on the cmdb_ci_web_server table records.
- The records in the cmdb_ci_lb_service table use the cmdb_ci_lb_pool table records.
- The records in the cmdb_ci_pool table are used by the cmdb_ci_service table records.
- The records in the cmdb_ci_pool table are members of the cmdb_ci_pool_member table records.
- The records in the cmdb_ci_pool_member table are members of the cmdb_ci_pool table records.