配置访问日志

最近更新时间:2024-03-22 18:25:21

我的收藏
负载均衡支持配置七层(HTTP/HTTPS)访问日志(Access Log),访问日志可以帮助您了解客户端请求、辅助排查问题、分析梳理用户行为等。当前访问日志支持存储到 CLS 中,支持分钟粒度的日志上报,在线多规则检索。
负载均衡的访问日志主要用于故障排查,帮助业务快速定位问题。访问日志功能包括日志上报、日志存储和查询:
日志上报,提供尽力而为服务(Best-Effort Service),优先保障业务转发,再保障日志上报。
日志存储和查询,按当前使用的存储服务来提供服务保障 SLA。
说明:
当前负载均衡仅七层协议(HTTP/HTTPS)支持配置访问日志到 CLS,四层协议(TCP/UDP/TCP SSL)不支持配置访问日志到 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. 索引配置完成后结果如下图所示。




步骤三:查看访问日志

2. 在左侧导航栏中,单击检索分析
3. 在顶部选择需要查询的日志主题。
4. 选择检索分析语句输入模式,日志服务提供两种模式来输入检索分析语句。详情可参见 语法规则
4.1 交互模式:通过鼠标点击指定检索条件及统计分析规则,自动生成检索分析语句,易用性高。



4.2 语句模式:直接输入检索分析语句,需符合语法规则,灵活度高。



5. 如需切换语法规则,可在此处进行切换,建议使用 CQL。

6. 输入检索分析语句后,在右侧选择时间范围,然后单击搜索按钮,执行检索分析。
6.1 当检索分析语句仅包含检索条件时:可在原始日志中查看匹配检索条件的日志,默认按日志时间倒排。
6.2 当检索分析语句包含 SQL 语句时:可在统计图表中查看分析结果,同时还可在原始日志中查看符合检索条件的日志,以便于对比分析统计结果及原始日志。

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

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

若您需要配置访问日志到日志服务 CLS 中,则需先创建日志集和日志主题。 若已有日志集和日志主题,则可直接跳转至 步骤二 开始操作。
1. 登录 负载均衡控制台,单击左侧导航栏的访问日志 > 日志列表
2. 访问日志页面左上角选择所属地域,在日志集信息区域,单击创建日志集
3. 在弹出的创建日志集对话框中,设置保存时间,单击保存
说明:
每个地域仅支持创建一个日志集,日志集名称为“clb_logset”。
4. 访问日志页面的日志主题区域,单击新建日志主题
5. 在弹出的新增日志主题对话框,选择存储类型和日志保存时间后,选择左侧的负载均衡实例添加至右侧列表中,单击保存
说明:
存储类型分为标准存储和低频存储,详情请参见 存储类型概述
日志保存支持永久保存和按固定时长保存。
新建日志主题时,可选择添加、或不添加负载均衡实例。在日志主题列表的右侧操作列中,单击管理可重新添加负载均衡实例。每个负载均衡实例仅限添加至一个日志主题中。
一个日志集中可创建多个日志主题(Topic),您可将不同的 CLB 日志放在不同的日志主题中,这些日志主题默认会带 CLB 标识。



6. (可选)若需关闭访问日志,在日志主题列表的右侧操作列中,单击停止,停止投递日志即可。

步骤二:查看访问日志

2. 在左侧导航栏中,单击检索分析
3. 在顶部选择需要查询的日志主题。
4. 选择检索分析语句输入模式,日志服务提供两种模式来输入检索分析语句。详情可参见 语法规则
4.1 交互模式:通过鼠标点击指定检索条件及统计分析规则,自动生成检索分析语句,易用性高。



4.2 语句模式:直接输入检索分析语句,需符合语法规则,灵活度高。



5. 如需切换语法规则,可在此处进行切换,建议使用 CQL。

6. 输入检索分析语句后,在右侧选择时间范围,然后单击搜索按钮,执行检索分析。
6.1 当检索分析语句仅包含检索条件时:可在原始日志中查看匹配检索条件的日志,默认按日志时间倒排。
6.2 当检索分析语句包含 SQL 语句时:可在统计图表中查看分析结果,同时还可在原始日志中查看符合检索条件的日志,以便于对比分析统计结果及原始日志。

日志格式及变量说明

字段类型

目前日志服务支持如下三种字段类型:
名称
类型描述
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
lb_id
CLB 的实例 ID,CLB 实例的唯一标识。
text
server_addr
CLB 的 VIP,仅非域名化实例支持,域名化实例该取值为空。
text
server_port
CLB 的 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
http_x_forwarded_for
HTTP 请求中 x-forwarded-for header 的内容。
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。其中,冒号分隔的字符串,单位是ms,每个阶段耗时若小于1ms则显示为0。
第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
负载均衡实例所属的私有网络 ID,公网 CLB 的取值为-1。
long
request_method
请求方式,支持 POST 和 GET 请求。
text
uri
资源标识符。
text
server_protocol
CLB 的协议。
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_addr
CLB 的 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
vip_vpcid
负载均衡实例所属的私有网络 ID,公网 CLB 的取值为-1。
long
lb_id
CLB 的实例 ID,CLB 实例的唯一标识。
text