访问日志

HTTP 连接管理器,该 TCP 代理 和该 Thrift 代理 支持使用以下功能进行可扩展的访问日志记录

  • 每个连接流中的任意数量的访问日志。

  • 可自定义的访问日志过滤器,允许将不同类型的请求和响应写入不同的访问日志。

可以使用 监听器访问日志 启用下游连接访问日志记录。监听器访问日志补充 HTTP 请求访问日志,并且可以与过滤器访问日志分别启用和独立启用。

如果启用访问日志,则默认情况下它将在 UDP 会话、TCP 连接或 HTTP 流结束时报告到配置的接收器。可以扩展此行为并在 UDP 会话、TCP 连接或 HTTP 流的开始定期或定期报告访问日志。在直接上游连接建立或新的传入 HTTP 请求时报告访问日志不依赖于定期报告,反之亦然。

会话开始访问日志

UDP 代理

对于 UDP 代理,当配置了通过 HTTP 进行的 UDP 隧道时,可以使用 访问日志刷新间隔 在成功建立上游隧道连接后启用一次访问日志记录。

TCP 代理

对于 TCP 代理,可以使用 在连接时刷新访问日志 在成功建立上游连接后启用一次访问日志记录。

HTTP 连接管理器

对于 HTTP 连接管理器,可以使用 在收到新请求时刷新访问日志 在收到新的 HTTP 请求时启用一次访问日志,并在迭代过滤器链之前启用。

HTTP 路由器过滤器

对于路由器过滤器,可以使用 在收到上游流时刷新上游日志 在新的上游流与下游流关联时启用上游访问日志,并在成功与上游建立连接后启用。

定期访问日志

UDP 代理

对于 UDP 代理,可以使用 访问日志刷新间隔 启用定期访问日志。

TCP 代理

对于 TCP 代理,可以使用 访问日志刷新间隔 启用定期访问日志。注意:第一个访问日志条目在 TCP 代理收到新连接后一个间隔生成,无论是否已建立上游连接。

HTTP 连接管理器

对于 HTTP 连接管理器,可以使用 访问日志刷新间隔 启用定期访问日志。注意:第一个访问日志条目在 HTTP 连接管理器收到新的 HTTP 请求后一个间隔生成,并在迭代 HTTP 过滤器链之前生成,无论是否已建立上游连接。

HTTP 路由器过滤器

对于路由器过滤器,可以使用 上游日志刷新间隔 启用定期访问日志。注意:第一个访问日志条目在路由器过滤器收到新的 HTTP 请求后一个间隔生成,无论是否已建立上游连接。

访问日志过滤器

Envoy 支持多个内置的 访问日志过滤器扩展过滤器,它们在运行时注册。

访问日志接收器

Envoy 支持可插拔的访问日志接收器。当前支持的接收器是

文件

  • 异步 IO 刷新架构。访问日志记录永远不会阻塞主网络处理线程。

  • 使用预定义字段以及任意 HTTP 请求和响应标头定制访问日志格式。

gRPC

  • Envoy 可以将访问日志消息发送到 gRPC 访问日志服务。

标准输出

  • 异步 IO 刷新架构。访问日志记录永远不会阻塞主网络处理线程。

  • 使用预定义字段以及任意 HTTP 请求和响应标头定制访问日志格式。

  • 写入进程的标准输出。它适用于所有平台。

标准错误

  • 异步 IO 刷新架构。访问日志记录永远不会阻塞主网络处理线程。

  • 使用预定义字段以及任意 HTTP 请求和响应标头定制访问日志格式。

  • 写入进程的标准错误。它适用于所有平台。

Fluentd

  • 通过 TCP 连接将访问日志刷新到上游,该上游接受 Fluentd Forward Protocol,如以下内容所述:Fluentd Forward Protocol 规范.

  • 通过线路发送的数据是 Fluentd Forward Mode 事件 的流,其中可能包含一个或多个访问日志条目(取决于刷新间隔和其他配置参数)。

进一步阅读