简介
负载均衡(Cloud Load Balancer,CLB)是腾讯云提供的高性能网关产品,用于帮助用户通过流量分发扩展应用系统的对外服务能力。CLB 在处理用户请求时,会产生大量的访问数据日志,这些日志详细记录了用户的访问请求,包括访问时间、请求方式、源IP地址、响应状态等关键信息(完整日志字段说明请参见 日志字段说明)。
腾讯云 CLS 日志服务联合 CLB,支持将 CLB 访问日志 实时采集至 CLS,并基于 CLS 的日志分析能力,帮助您完成从 CLB 访问日志中监控客户端请求、辅助排查异常问题、分析梳理用户行为,从而为排障和运营决策提供数据支持。通过本篇实践,您可以详细了解以下信息:
实践场景案例
功能优势
CLS 为 CLB 访问日志分析场景提供了开箱即用的访问分析仪表盘,仪表中包含 CLB 访问流量分析、状态码分布,以及用户行为等分析看板。
采集 CLB 负载均衡访问日志
步骤1:进入 CLB 云产品中心
1. 登录 日志服务控制台。
2. 在左侧导航栏中,单击云产品中心,进入云产品中心页面。
3. 在云产品日志中心,找到负载均衡 CLB,并单击进入负载均衡 CLB 日志中心。


步骤2:开启负载均衡访问日志采集
1. 在负载均衡实例列表中,找到并勾选一个或多个目标负载均衡实例。


2. 单击开启日志采集。


3. 在开启日志采集弹窗中,选择或 创建 目标日志主题,并单击确认。


步骤3:抽样采集(可选)
查看 CLB 负载均衡访问分析仪表盘
CLB 访问日志仪表盘:可视化展示 CLB 访问流量分析、状态码分布,以及用户行为等分析看板,助力运维排障场景。


您可通过以下操作查看以上 CLB 预置仪表盘:
1. 在负载均衡实例列表中,找到已开启访问日志采集的域名。
2. 单击仪表盘数量,在下拉列表中选择 CLB 访问日志仪表盘,单击后跳转仪表盘。


检索分析 CLB 负载均衡访问日志
1. 完成开启负载均衡访问日志采集后,在负载均衡实例列表中,找到已开启访问日志采集的负载均衡实例,然后单击访问日志所在的目标日志主题名称。


2. 单击后将跳转日志检索页,即可检索分析访问日志。日志字段的详细介绍请参见 日志字段说明。


日志字段说明
针对 CLB 访问日志中的字段解释, 可参见下表:
字段名 | 说明 |
stgw_request_id | 请求 ID。 |
time_local | 访问的时间与时区,例如,“01/Jul/2019:11:11:00 +0800”,最后的“+0800”表示所处时区为 UTC 之后的8小时,即为北京时间。 |
protocol_type | 协议类型(HTTP/HTTPS/SPDY/HTTP2/WS/WSS)。 |
server_addr | CLB 的 VIP。 |
server_port | CLB 的 VPort,即监听端口。 |
server_name | 规则的 server_name,CLB 的监听器中配置的域名。 |
remote_addr | 客户端 IP。 |
remote_port | 客户端端口。 |
status | CLB 返回给客户端的状态码。 |
upstream_addr | RS 地址。 |
upstream_status | RS 返回给 CLB 的状态码。 |
proxy_host | stream ID。 |
request | 请求行。 |
request_length | 从客户端收到的请求字节数。 |
bytes_sent | 发送到客户端的字节数。 |
http_host | 请求域名,即 HTTP 头部中的 Host。 |
http_user_agent | HTTP 协议头的 user_agent 字段。 |
http_referer | HTTP 请求来源。 |
http_x_forwarded_for | HTTP 请求中 x-forwarded-for header 的内容。 |
request_time | 请求处理时间:从收到客户端的第一个字节开始,直到给客户端发送的最后一个字节为止,包括客户端请求到 CLB、CLB 转发请求到 RS、RS 响应数据到 CLB、CLB 转发数据到客户端的总时间。单位:秒。 |
upstream_response_time | 整个后端请求所花费时间:从开始 CONNECT RS 到从 RS 接收完应答的时间。单位:秒。 |
upstream_connect_time | 和 RS 建立 TCP 连接所花费时间:从开始 CONNECT RS 到开始发送 HTTP 请求的时间。 |
upstream_header_time | 从 RS 接收完 HTTP 头部所花费时间:从开始 CONNECT RS 到从 RS 接收完 HTTP 应答头部的时间。 |
tcpinfo_rtt | TCP 连接的 RTT。 |
connection | 连接 ID。 |
connection_requests | 连接上的请求个数。 |
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 hello 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 的时间。 |
ssl_cipher | SSL 加密套件。 |
ssl_protocol | SSL 协议版本。 |
vip_vpcid | 负载均衡实例所属的私有网络 ID,公网 CLB 的取值为-1。 |
request_method | 请求方式,支持 POST 和 GET 请求。 |
uri | 资源标识符。 |
server_protocol | CLB 的协议。 |
实践场景案例
您可以基于 CLB 访问日志配置进行检索分析和配置仪表盘,实时的分析 CLB 访问日志中的数据。以下提供了两个案例:
案例 1:分析 CLB 访问日志中所有请求客户的地理分布情况


2. 在仪表盘创建页,选择空白仪表盘,并填入仪表盘名称为:CLB 访问日志地理分布。
3. 仪表盘完成创建后,单击自定义图表配置如下内容。


日志主题:选择在 采集 CLB 访问日志 步骤中所创建日志主题。
图表配置:图表类型选择“地图”。
执行语句:输入以下语句,即可呈现统计分布结果。
中国分布:
* | select count(*) as pv, ip_to_province(remote_addr) as address group by address limit 10000
全球分布:
* | select count(*) as pv, ip_to_country(remote_addr) as address group by address limit 10000
4. 单击应用到仪表盘后,即可在查看仪表盘视图中看到已保存的仪表盘。


案例 2:CLB 日志访问请求 QPS 趋势分析
1. 登录 日志服务控制台,在左侧导航栏中,单击检索分析,进入检索分析页面。
2. 在输入框中,搜索在 采集 CLB 访问日志 步骤中所创建的日志主题。


3. 在执行语句中输入以下语句,用于统计所选时间范围内 QBS 的请求次数。并在图表配置的图表类型选择“时序图”。
* | select histogram(cast(__TIMESTAMP__ as timestamp),interval 1 second) as time, count(*) as "QPS" group by time order by time desc limit 10000

