操作指南

API 文档

配置访问日志

最近更新时间:2022-04-11 14:37:50

负载均衡支持配置七层(HTTP/HTTPS)访问日志(Access Log),访问日志可以帮助您了解客户端请求、辅助排查问题、分析梳理用户行为等。当前访问日志支持存储到 CLS 中,支持分钟粒度的日志上报,在线多规则检索。

负载均衡的访问日志主要用于故障排查,帮助业务快速定位问题。访问日志功能包括日志上报、日志存储和查询:

  • 日志上报,提供尽力而为服务(Best-Effort Service),优先保障业务转发,再保障日志上报。
  • 日志存储和查询,按当前使用的存储服务来提供服务保障 SLA。
说明:

  • 当前负载均衡仅七层协议(HTTP/HTTPS)支持配置访问日志到 CLS,四层协议(TCP/UDP/TCP SSL)不支持配置访问日志到 CLS。
  • 负载均衡配置访问日志到 CLS 的功能免费,用户仅需支付日志服务 CLS 的费用。
  • 仅支持日志服务 CLS 的地域支持此功能,详情请参见 CLS 的 可用地域

方式一:为单实例配置访问日志

步骤一:开启访问日志存入 CLS

  1. 登录 负载均衡控制台,单击左侧导航栏的实例管理
  2. 在“实例管理”页面,单击目标负载均衡 ID。
  3. 在“基本信息”页面的“访问日志(七层)”模块,单击铅笔图标。
  4. 在弹出的“修改 CLS 日志存放位置”对话框中,开启“启用日志”,并选择存储访问日志的日志集和日志主题,单击提交。若您没有创建日志集或日志主题,请 新建相关资源 后,再选取具体的存储位置。
    说明:

    建议选择 clb_logset 日志集下带“CLB”标识的日志主题。带“CLB”标识的日志主题和普通日志主题的差异在于:

    • 带“CLB”标识的日志主题默认自动创建索引;普通日志主题需手动创建索引,否则不支持检索。
    • 带“CLB”标识的日志主题默认支持仪表盘;普通日志主题需手动配置仪表盘。
  5. 配置完成后单击日志集或日志主题即可跳转到 CLS 控制台的检索分析页面。
  6. (可选)若想关闭访问日志,可再次单击铅笔图标,在弹出的“修改 CLS 日志存放位置”对话框中进行关闭并提交即可。

步骤二:配置日志主题的索引

说明:

为单实例配置的访问日志的日志主题必须配置索引,否则检索不到日志。

建议配置的索引如下:

键值索引 字段类型 分词符
server_addr text 无需配置分词符
server_name text 无需配置分词符
http_host text 无需配置分词符
status long -
vip_vpcid long -

具体操作如下:

  1. 登录 日志服务控制台,在左侧导航栏单击日志主题
  2. 在“日志主题”页面,单击目标日志主题 ID。
  3. 在日志主题详情页,单击索引配置页签,单击右上角的编辑,即可添加索引。索引字段配置说明请参见 开启索引
  4. 索引配置完成后结果如下图所示。

步骤三:查看访问日志

  1. 登录 日志服务控制台,单击左侧导航栏的检索分析
  2. 在“检索分析 ”页面中,选择日志集、日志主题和时间范围,单击检索分析,即可检索 CLB 上报到 CLS 的访问日志。检索语法详情请参见 语法与规则

方式二:批量配置访问日志

步骤一:创建日志集和日志主题

若您需要配置访问日志到日志服务 CLS 中,则需先创建日志集和日志主题。
若已有日志集和日志主题,则可直接跳转至 步骤二 开始操作。

  1. 登录 负载均衡控制台,单击左侧导航栏的访问日志
  2. 在“访问日志”页面左上角选择所属地域,在“日志集信息”区域,单击创建日志集
  3. 在弹出的“创建日志集”对话框中,设置保存时间,单击保存
    说明:

    每个地域仅支持创建一个日志集,日志集名称为“clb_logset”。

  4. 在“访问日志”页面的“日志主题”区域,单击新建日志主题
  5. 在弹出的“新增日志主题”对话框,选择左侧的负载均衡实例添加至右侧列表中,单击保存
    说明:

    • 新建日志主题时,可选择添加、或不添加负载均衡实例。在日志主题列表的右侧“操作”列中,单击管理可重新添加负载均衡实例。每个负载均衡实例仅限添加至一个日志主题中。
    • 一个日志集中可创建多个日志主题(Topic),您可将不同的 CLB 日志放在不同的日志主题中,这些日志主题默认会带“CLB”标识。
  6. (可选)若需关闭访问日志,在日志主题列表的右侧“操作”列中,单击停止停止投递日志即可。

步骤二:查看访问日志

负载均衡已自动配置以访问日志的变量为关键值的索引,您无需手动配置索引,可直接通过检索分析来查询访问日志。

  1. 登录 负载均衡控制台,单击左侧导航栏的访问日志
  2. 单击目标日志主题右侧“操作”列的检索,跳转至 日志服务控制台 的“检索分析”页面。
  3. 在“检索分析”页面的输入框中输入检索分析语句,选择时间范围,单击检索分析即可检索 CLB 上报到 CLS 的访问日志。
    说明:

    检索语法详情请参见 语法与规则

日志格式及变量说明

日志格式

[$stgw_request_id] [$time_local] [$protocol_type] [$server_addr:$server_port]  [$server_name] [$remote_addr:$remote_port] [$status] [$upstream_addr] [$upstream_status] [$proxy_host] [$request] [$request_length] [$bytes_sent] [$http_host] [$http_user_agent] [$http_referer] [$request_time] [$upstream_response_time] [$upstream_connect_time] [$upstream_header_time] [$tcpinfo_rtt] [$connection] [$connection_requests] [$ssl_handshake_time] [$ssl_cipher] [$ssl_protocol] [$vip_vpcid] [$uri] [$server_protocol]

字段类型

目前日志服务支持如下三种字段类型:

名称 类型描述
text 文本类型
long 整型数值类型(Int 64)
double 浮点数数值类型(64 bit)

日志变量说明

变量名说明字段类型
stgw_request_id 请求 ID。 text
time_local 访问的时间与时区,例如,“01/Jul/2019:11:11:00 +0800”,最后的“+0800”表示所处时区为 UTC 之后的8小时,即为北京时间。text
protocol_type 协议类型(HTTP/HTTPS/SPDY/HTTP2/WS/WSS)。text
server_addrCLB 的 VIP。 text
server_portCLB 的 VPort,即监听端口。long
server_name 规则的 server_name,CLB 的监听器中配置的域名。text
remote_addr 客户端 IP。text
remote_port 客户端端口。long
status CLB 返回给客户端的状态码。 long
upstream_addr RS 地址。text
upstream_status RS 返回给 CLB 的状态码。 text
proxy_host stream ID。 text
request 请求行。 text
request_length 从客户端收到的请求字节数。 long
bytes_sent 发送到客户端的字节数。 long
http_host 请求域名,即 HTTP 头部中的 Host。text
http_user_agent HTTP 协议头的 user_agent 字段。text
http_referer HTTP 请求来源。 text
request_time 请求处理时间:从收到客户端的第一个字节开始,直到给客户端发送的最后一个字节为止,包括客户端请求到 CLB、CLB 转发请求到 RS、RS 响应数据到 CLB、CLB 转发数据到客户端的总时间。double
upstream_response_time 整个后端请求所花费时间:从开始 CONNECT RS 到从 RS 接收完应答的时间。double
upstream_connect_time 和 RS 建立 TCP 连接所花费时间:从开始 CONNECT RS 到开始发送 HTTP 请求的时间。double
upstream_header_time 从 RS 接收完 HTTP 头部所花费时间:从开始 CONNECT RS 到从 RS 接收完 HTTP 应答头部的时间。double
tcpinfo_rtt TCP 连接的 RTT。 long
connection 连接 ID。 long
connection_requests 连接上的请求个数。 long
ssl_handshake_time记录 SSL 握手各阶段耗时,格式:x:x:x:x:x:x:x。其中
  • 第1个字段表示是否 SSL 会话复用。
  • 第2个字段表示完整的握手时间。
  • 3~7表示 SSL 各阶段耗时。
  • 第3个字段表示 CLB 从收到 client hello 到发送 server hell done 的时间。
  • 第4个字段表示 CLB 从发送 server 证书开始到发送 server 证书完成的时间。
  • 第5个字段表示 CLB 从计算签名到发送 server key exchange 完成的时间。
  • 第6个字段表示 CLB 从收到 client key exchange 开始到收完 client key exchange 的时间。
  • 第7个字段表示 CLB 从收到 client key exchange 到发送 server finished 的时间。
text
ssl_cipher SSL 加密套件。text
ssl_protocol SSL 协议版本。text
vip_vpcid负载均衡 VIP 的所属私有网络 ID,公网 CLB 的 vip_vpcid 为-1。long
request 请求方式,支持 POST 和 GET 请求。text
uri 资源标识符。text
server_protocolCLB 的协议。text

默认支持检索的日志变量

带“CLB”标识的日志集默认支持检索的字段如下所示:

索引字段说明字段类型
time_local 访问的时间与时区,例如,“01/Jul/2019:11:11:00 +0800”,最后的“+0800”表示所处时区为 UTC 之后的8小时,即为北京时间。text
protocol_type 协议类型(HTTP/HTTPS/SPDY/HTTP2/WS/WSS)。text
server_addrCLB 的 VIP。 text
server_name 规则的 server_name,CLB 的监听器中配置的域名。text
remote_addr 客户端 IP。text
status CLB 返回给客户端的状态码。 long
upstream_addr RS 地址。text
upstream_status RS 返回给 CLB 的状态码。 text
request_length 从客户端收到的请求字节数。 long
bytes_sent 发送到客户端的字节数。 long
http_host 请求域名,即 HTTP 头部中的 Host。text
request_time 请求处理时间:从收到客户端的第一个字节开始,直到给客户端发送的最后一个字节为止,包括客户端请求到 CLB、CLB 转发请求到 RS、RS 响应数据到 CLB、CLB 转发数据到客户端的总时间。double
upstream_response_time 整个后端请求所花费时间:从开始 CONNECT RS 到从 RS 接收完应答的时间。double
目录