监控负载均衡器

介绍

Octavia 提供了多种监控负载均衡器的方式。 您可以通过 Octavia API 或直接从您的负载均衡器查询统计信息。

本指南将讨论可用于监控您的 Octavia 负载均衡器的各种选项。

使用 Octavia API 监控

Octavia 从所有负载均衡器收集关键指标,包括使用支持收集统计信息的第三方提供程序驱动程序构建的负载均衡器。 Octavia 汇总这些统计信息并通过 Octavia API 提供。 负载均衡器统计信息可在负载均衡器或监听器级别获得。

可以使用 OpenStack Client 查询负载均衡器统计信息。

$ openstack loadbalancer stats show <lb id>

+--------------------+-----------+
| Field              | Value     |
+--------------------+-----------+
| active_connections | 0         |
| bytes_in           | 2236722   |
| bytes_out          | 100973832 |
| request_errors     | 0         |
| total_connections  | 3606      |
+--------------------+-----------+

也可以使用 OpenStack Client 查询单个监听器的统计信息。

$ openstack loadbalancer listener stats show <listener id>

+--------------------+-------+
| Field              | Value |
+--------------------+-------+
| active_connections | 0     |
| bytes_in           | 89    |
| bytes_out          | 237   |
| request_errors     | 0     |
| total_connections  | 1     |
+--------------------+-------+

通过 Octavia API 查询的负载均衡器统计信息包括所有监听器协议的指标。

使用 Prometheus 监控

一些提供程序驱动程序,例如 Octavia amphora 驱动程序,提供了一个 prometheus 端点。 这允许您配置您的 Prometheus 基础设施以从 Octavia 负载均衡器收集指标。

要在 Octavia 负载均衡器上添加 Prometheus 端点,请创建一个具有特殊协议 PROMETHEUS 的监听器。 这将在监听器上启用该端点,地址为 /metrics。 该监听器支持 Octavia 负载均衡器的所有功能,例如 allowed_cidrs,但不支持附加池或 L7 策略。 所有指标都将由资源(UUID)的 Octavia 对象 ID 标识。

注意

当前,在使用 amphora 提供程序时,UDP 和 SCTP 指标不会通过 Prometheus 端点报告。

要为负载均衡器 lb1 创建端口 8088 上的 Prometheus 端点,您将运行以下命令。

$ openstack loadbalancer listener create --name stats-listener --protocol PROMETHEUS --protocol-port 8088 lb1
+-----------------------------+--------------------------------------+
| Field                       | Value                                |
+-----------------------------+--------------------------------------+
| admin_state_up              | True                                 |
| connection_limit            | -1                                   |
| created_at                  | 2021-10-03T01:44:25                  |
| default_pool_id             | None                                 |
| default_tls_container_ref   | None                                 |
| description                 |                                      |
| id                          | fb57d764-470a-4b6b-8820-627452f55b96 |
| insert_headers              | None                                 |
| l7policies                  |                                      |
| loadbalancers               | b081ed89-f6f8-48cb-a498-5e12705e2cf9 |
| name                        | stats-listener                       |
| operating_status            | OFFLINE                              |
| project_id                  | 4c1caeee063747f8878f007d1a323b2f     |
| protocol                    | PROMETHEUS                           |
| protocol_port               | 8088                                 |
| provisioning_status         | PENDING_CREATE                       |
| sni_container_refs          | []                                   |
| timeout_client_data         | 50000                                |
| timeout_member_connect      | 5000                                 |
| timeout_member_data         | 50000                                |
| timeout_tcp_inspect         | 0                                    |
| updated_at                  | None                                 |
| client_ca_tls_container_ref | None                                 |
| client_authentication       | NONE                                 |
| client_crl_container_ref    | None                                 |
| allowed_cidrs               | None                                 |
| tls_ciphers                 | None                                 |
| tls_versions                | None                                 |
| alpn_protocols              | None                                 |
| tags                        |                                      |
+-----------------------------+--------------------------------------+

一旦 PROMETHEUS 监听器变为 ACTIVE,您可以通过更新 prometheus.yml 文件来配置 Prometheus 以从负载均衡器收集指标。

[scrape_configs]
- job_name: 'Octavia LB1'
  static_configs:
  - targets: ['192.0.2.10:8088']

有关设置 Prometheus 的更多信息,请参阅 Prometheus 项目网站

注意

通过 /metrics 端点公开的指标将使用自定义 Octavia 命名空间。

您可以将 Grafana 连接到 Prometheus 实例,以提供额外的图形和仪表板功能。 Octavia 负载均衡器的 Grafana 仪表板包含在 Octavia 代码的 etc/grafana 目录中。