You need to enable JavaScript to run this app.
导航

访问日志投递TOS

最近更新时间2023.01.13 11:13:37

首次发布时间2022.05.18 19:59:26

ALB 支持将访问日志投递TOS功能。本文介绍如何在 ALB 控制台开启访问日志投递TOS功能,获取 ALB 实例的访问日志。

功能概述

  • ALB 可以定期将实例的访问日志投递到指定的火山引擎对象存储(TOS)桶中。您可以通过访问日志排除故障,分析用户画像,然后实施精准的运维活动。

  • ALB 对实例的访问日志每 5 分钟打包一次,在投递前会对日志包进行压缩。投递的目录是 /ALBAccessLogs/<YYYY>/<MM>/<DD>。如果目录不存在,会自动创建目录。日志文件的保留时长以存储桶的配置为准。日志字段的说明参见字段说明

    说明

    火山引擎对象存储(Tinder Object Storage,TOS)是火山引擎提供的海量、安全、低成本、易用、高可靠、高可用的分布式云存储服务。ALB 开启访问日志投递 TOS 后,将定期处理日志数据,并将数据打包投递到 TOS 的存储桶中进行保存,适用于海量数据长期存储的场景,存储价格低廉,性价比高。

前提条件

您已开通对象存储服务,并且创建了一个 TOS 桶用以接收 ALB 实例的访问日志。更多信息详见创建存储桶

开启访问日志投递TOS

  1. 登录火山引擎应用型负载均衡控制台

  2. 点击左侧导航栏 实例管理 ,进入 实例管理 页面。

  3. 实例管理 页面,点击待配置的实例名称。

  4. 实例详情 标签页,在 日志投递 > 访问日志投递TOS 中点击 编辑配置

  5. 配置访问日志 标签页中,设置 访问日志 为启用。

  6. 根据业务需要,设置 存储桶 为您的 TOS 服务中的存储桶,然后点击 确定

    注意

    • 首次开启访问日志功能时,系统将自动为您创建角色 ServiceRoleForAlb,以便得到授权向指定存储桶中投递日志。
    • 删除该角色将导致跨服务授权失效,所有启用访问日志的实例日志无法投递,请谨慎操作。
  7. 确认配置信息无误后,点击 确定 ,完成开启访问日志投递TOS。

关闭访问日志投递TOS

  • 访问日志投递TOS功能可随时停止,您可在日志投递 > 访问日志投递TOS 模块,点击 编辑配置 ,关闭 访问日志
  • 停止日志投递TOS后,已投递的日志会在 TOS 中继续保留,保留时长取决于 TOS 存储类型。
  • 再次开启日志投递TOS时,需要重新选择存储桶。同一天反复开启/停止且投递目标均为同一存储桶时,只创建一遍存储目录。

字段说明

字段
说明
示例
loadbalancer_id表示 ALB 的实例 ID。该字段包含在日志文件的名称中。日志文件内容中无该字段。-
protocol_type表示客户端请求使用的协议类型。[https]
time_iso8601表示请求的响应完成时间和时区。格式是标准的 ISO 时间格式。末尾的 +08:00 表示时区为 UTC 时间加 8 小时,即北京时间。[2021-08-10T17:39:29+08:00]
remote_addr表示客户端请求的 IP 地址。[180.184.65.180]
remote_port表示客户端请求使用的端口号。[49540]
request表示客户端发送的请求。[GET /v1/_proxy/disease/getContentByType/44672585629444/5 HTTP/1.1]
http_user_agent表示请求头的 User-Agent 字段。[Mozilla/5.0 (Linux; Android 10; ; wv) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/... Mobile Safari/. VivoBrowser/...]
http_host表示请求头中的 Host 字段。[m.baikemy.com]
http_referer表示请求的来源地址。[https://www.zhihu.com/]
request_length表示请求本身的字节数。[19]
ssl_protocol表示请求使用的 SSL 协议的版本。如果是 HTTP 请求,则不包含该字段。[TLSv1.2]
ssl_cipher表示请求使用的 SSL 加密套件。如果是 HTTP 请求,则不包含该字段。[ECDHE-RSA-AES256-GCM-SHA384]
request_id表示请求的 ID。[rewewert234w******]
connection表示请求与 ALB 实例的 TCP 连接 ID。[casd1345zxcasd******]
connection_requests表示客户端与 ALB 实例的 TCP 连接上已处理完成的请求数量。[5]
vip表示 ALB 实例的私网 IP 地址。[192.168.33.134]
eip表示 ALB 实例的公网 IP 地址。如果 ALB 实例是私网实例,则不会包含该字段。[172.16.3.61]
listener_id表示请求命中的监听器 ID。[lsn-3tl161ztae4l928******]
vport表示该监听器监听的端口。[443]
tcpinfo_rtt表示客户端与 ALB 实例建立 TCP 连接过程的往返时间(RTT),单位为毫秒。[0.121]
status表示 ALB 实例的响应状态码,即 ALB 实例返回给客户端的状态码。[200]
bytes_sent表示 ALB 实例响应客户端请求的报文大小,即 ALB 实例发送给客户端的数据的字节数。[1069]
request_time表示 ALB 实例响应客户端请求的时长,即请求的处理时间。该时间是从 ALB 实例收到客户端请求的第一个字节开始,到 ALB 实例发送给客户端最后一个字节结束的整个过程所耗费的时间,单位是秒。整个过程包括客户端发送请求到 ALB 实例,ALB 实例将请求转发到后端服务器,后端服务器将响应数据返回给 ALB 实例,ALB 实例转发数据到客户端。[0.252]
server_name表示命中的转发规则所配置的域名。转发规则配置的域名可以是泛域名。[*.baikemy.com]
servergroup_id表示后端服务器组的 ID。[rsp-3tl161zn6y4e8i******]

upstream_addr

表示处理该请求的后端服务器的 IP 地址和端口号。
如果请求出现异常,该字段会记录 NGINX 的 upstream ID。

[192.168.1.198:3000]

upstream_connect_time表示 ALB 实例与后端服务器建立 TCP 连接所花费的时间。即从 ALB 实例开始连接后端服务器到 ALB 实例开始发送 HTTP 请求之间的耗费的时间,单位为秒。[0.231]
upstream_header_time表示 ALB 实例收到后端服务器响应头所花费的时间。即从 ALB 实例开始连接后端服务器到 ALB 实例接收完后端服务器的响应头所耗费的时间,单位为秒。[0.020]
upstream_response_time表示后端服务器响应客户端请求所耗费的时间。即从 ALB 实例开始连接后端服务器到后端服务器响应结束所耗费的时间,单位为秒。[0.566]
upstream_status表示后端服务器返回给 ALB 实例的状态码。[200]