CLB 访问日志分析

最近更新时间:2024-08-23 10:01:01

我的收藏
负载均衡(Cloud Load Balancer,CLB)作为千亿 QPS 的网关产品,精细化运营十分重要,而日志服务(Cloud Log Service,CLS)访问日志则是其中的利器。通过 CLB > 访问日志,我们可以挖掘海量的数据价值,不仅可以从访问日志中监控客户端请求、辅助排查问题、也可以分析梳理用户行为,为运营角色提供数据支持。本文主要介绍如何使用 CLS 分析 CLB 访问日志。

前提条件

已将 CLB 日志采集至日志服务(Cloud Log Service,CLS),详见 操作详情
如果您当前暂未启用上述功能,还可以使用日志服务免费提供的Demo日志主题来体验该功能,操作步骤详见 使用 Demo 日志快速体验 CLS

日志字段说明

字段名
说明
字段类型
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_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 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 的时间。
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

预置仪表盘

CLS 已将常用的CLB日志统计分析方式预置为仪表盘,您可通过该 仪表盘 快速了解当前 CLB 请求状态。
在仪表盘右上角单击编辑仪表盘可基于预置仪表盘进行编辑,构建更适用您的专属仪表盘。




场景示例

通过CLB日志了解访问客户地理分布,利用 CLS 提供的 IP 函数,将客户端 IP 转换为对应的省份或国家,图表类型选择“地图”。
中国分布:
* | 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




抽样采集日志

CLB 请求量较大时,产生的日志量也会很大,全量日志上报可能会导致日志成本较高。CLB 支持抽样采集部分日志,减少数据上报量,从而降低日志成本,操作说明详见 抽样采集日志