Octavia Amphora 日志卸载

默认的日志配置会将日志存储在本地,在 amphora 文件系统上进行文件轮转。

Octavia Amphora 可以通过 syslog 协议将日志文件卸载到负载均衡管理网络 (lb-mgmt-net) 上的 syslog 接收器。这允许聚合管理日志和租户流量日志。syslog 接收器可以位于负载均衡管理网络本地,也可以通过负载均衡管理网络路由访问。默认情况下,可以使用支持 UDP 或 TCP syslog 协议的任何 syslog 接收器,但是操作员也可以选择创建一个覆盖 rsyslog 配置模板,以启用 Amphora 镜像可能支持的其他功能或协议。

本指南将讨论 Amphora 日志卸载的功能以及如何配置它们。

管理日志

Amphora 的管理日志卸载功能涵盖 Amphora 内部的所有系统日志,但不包括租户流量日志。租户流量日志可以发送到并由用于管理日志的相同 syslog 接收器处理,但它们是单独配置的。

所有管理日志消息将使用发送消息的应用程序的本机日志格式发送。

启用管理日志卸载

必须在 Octavia 配置文件中配置一个或多个 syslog 接收器端点才能启用管理日志卸载。第一个端点将是接收 syslog 数据包的主要端点。请阅读 故障转移注意事项 部分,了解如何使用多个目标服务器。

要配置管理日志卸载,请在所有控制器中设置 Octavia 配置文件中的以下设置并重新启动它们

[amphora_agent]
admin_log_targets = 192.0.2.1:10514

在此示例中,syslog 接收器将是 192.0.2.1,端口为 10514。如果未指定 log_protocol,则将使用 UDP。

注意

确保您的 syslog 接收器端点可以从负载均衡管理网络访问,并且您已配置所需的安全组或防火墙规则以允许流量。这些端点可以是负载均衡管理网络中的可路由地址。

与负载均衡相关的管理日志将使用 LOG_LOCAL[0-7] 设施。设施编号默认为 1,但可以使用 Octavia 配置文件中的 administrative_log_facility 设置进行配置。

要配置管理日志设施,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[amphora_agent]
administrative_log_facility = 1

转发所有管理日志

默认情况下,Amphorae 仅转发与负载均衡相关的管理日志,例如 haproxy 管理日志、keepalived 和 Amphora 代理日志。您可以选择配置 Amphorae 以发送来自 Amphora 的所有管理日志,例如内核、系统和安全日志。即使启用了此设置,租户流量日志也不会被包含。您可以在 租户流量日志 部分配置租户流量日志转发。

与负载均衡相关的管理日志将使用通过 administrative_log_facility 设置配置的 LOG_LOCAL[0-7] 设施发送。所有其他管理日志消息将使用其本机 syslog 设施。

要配置 Amphorae 以转发所有管理日志,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[amphora_agent]
forward_all_logs = True

租户流量日志

启用租户流量日志卸载

必须在 Octavia 配置文件中配置一个或多个 syslog 接收器端点才能启用租户流量日志卸载。第一个端点将是接收 syslog 数据包的主要端点。用于租户流量日志卸载的端点可以是与管理日志卸载配置相同的端点。请阅读 故障转移注意事项 部分,了解如何使用多个目标服务器。

警告

租户流量日志记录可能会产生大量的 syslog 消息,具体取决于负载均衡器接收到的连接数量。租户流量日志记录为负载均衡器到每个连接生成一个日志条目。我们建议您根据负载均衡器将要处理的预期连接数量,监控、调整大小和配置您的 syslog 接收器。

要配置租户流量日志卸载,请在所有控制器中设置 Octavia 配置文件中的以下设置并重新启动它们

[amphora_agent]
tenant_log_targets = 192.0.2.1:10514

在此示例中,syslog 接收器将是 192.0.2.1,端口为 10514。如果未指定 log_protocol,则将使用 UDP。

注意

确保您的 syslog 接收器端点可以从负载均衡管理网络访问,并且您已配置所需的安全组或防火墙规则以允许流量。这些端点可以是负载均衡管理网络中的可路由地址。

与负载均衡相关的租户流量日志将使用 LOG_LOCAL[0-7] 设施发送。设施编号默认为 0,但可以使用 Octavia 配置文件中的 user_log_facility 设置进行配置。

要配置租户流量日志设施,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[amphora_agent]
user_log_facility = 0

租户流量日志格式

默认租户流量日志格式为

project_id loadbalancer_id listener_id client_ip client_port data_time
request_string http_status bytes_read bytes_uploaded
client_certificate_verify(0 or 1) client_certificate_distinguised_name
pool_id member_id processing_time(ms) termination_state

任何未知或不适用于连接的字段将在其位置使用“-”字符。

使用 rsyslog 作为 syslog 接收器时的示例日志条目是

注意

此示例中的前缀[1] 来自 rsyslog 接收器,不是来自 amphora 的 syslog 消息的一部分。

[1] “Jun 12 00:44:13 amphora-3e0239c3-5496-4215-b76c-6abbe18de573 haproxy[1644]:”

Jun 12 00:44:13 amphora-3e0239c3-5496-4215-b76c-6abbe18de573 haproxy[1644]: 5408b89aa45b48c69a53dca1aaec58db fd8f23df-960b-4b12-ba62-2b1dff661ee7 261ecfc2-9e8e-4bba-9ec2-3c903459a895 172.24.4.1 41152 12/Jun/2019:00:44:13.030 "GET / HTTP/1.1" 200 76 73 - "" e37e0e04-68a3-435b-876c-cffe4f2138a4 6f2720b3-27dc-4496-9039-1aafe2fee105 4 --

自定义租户流量日志格式

您可以选择为租户流量日志指定自定义日志格式。此字符串遵循 HAProxy 日志格式变量,但“{{ project_id }}”和“{{ lb_id }}”变量除外,这些变量将被 Octavia Amphora 驱动程序替换。这些自定义变量是可选的。

有关 HAProxy 文档,请参阅 自定义日志格式 变量定义。

要配置自定义日志格式,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[haproxy_amphora]
user_log_format = '{{ project_id }} {{ lb_id }} %f %ci %cp %t %{+Q}r %ST %B %U %[ssl_c_verify] %{+Q}[ssl_c_s_dn] %b %s %Tt %tsc'

故障转移注意事项

为了防止单个 syslog 服务器停机导致潜在的数据丢失,建议使用多个日志目标。在这种配置中,log_protocol 需要设置为 TCP。使用 UDP syslog 协议时,RSyslog 无法检测到主端点是否已失败。

在使用多个日志目标时,请注意 log_retry_countlog_retry_interval 设置。您可能希望将 log_retry_count 设置为 0,并为 log_retry_interval 使用更高的值。可能的值高达 1800(30 分钟)。这样,客户端在检测到服务器不可用后会立即发生故障转移。在这种情况下,该服务器在发生该事件后至少 log_retry_interval 秒内将不再被使用。在以下示例中,主 syslog 接收器将是 192.0.2.1,端口为 10514。备用 syslog 接收器将是 2001:db8:1::10,端口为 10514。

[amphora_agent]
admin_log_targets = 192.0.2.1:10514, 2001:db8:1::10:10514
tenant_log_targets = 192.0.2.1:10514, 2001:db8:1::10:10514
log_protocol = TCP
log_retry_count = 0
log_retry_interval = 1800

禁用日志记录

在某些情况下,您可能需要在 Amphora 内部禁用日志记录,例如遵守监管标准。Octavia 提供了多种禁用 Amphora 日志记录的选项。

禁用本地日志存储

此设置停止将日志条目写入 Amphora 内部的磁盘。如果为 Amphorae 配置了日志卸载,则仍然可以通过 Amphora 日志卸载发送日志。启用此设置可能会为负载均衡器提供性能优势。

警告

此功能禁用 Amphora 中的所有日志存储,包括内核、系统和安全日志。

注意

如果您启用此设置且未使用 Amphora 日志卸载,我们建议您也 禁用租户流量日志记录 以提高负载均衡性能。

要在 Amphora 中禁用本地日志存储,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[amphora_agent]
disable_local_log_storage = True

禁用租户流量日志记录

此设置允许您禁用租户流量日志记录,而与其他的日志配置设置无关。它将优先于其他设置。启用此设置后,将不会将任何租户流量(连接)日志写入 Amphora 内部的磁盘或通过 Amphora 日志卸载发送。

注意

禁用租户流量日志记录也可以提高 amphora 的负载均衡性能。由于潜在的性能改进,我们建议您在启用 禁用本地日志存储 设置时启用此设置。

要禁用租户流量日志记录,请在所有控制器中设置 Octavia 配置文件的以下设置并重新启动它们

[haproxy_amphora]
connection_logging = False