CDN 访问日志分析

最近更新时间:2024-10-24 20:59:22

我的收藏

简介

内容分发网络(Content Delivery Network,CDN) 是非常重要的互联网基础设施,用户可以通过 CDN,快速的访问网络中各种图片,视频等资源。在访问过程中,CDN 会产生大量的日志数据,通过对 CDN 访问日志的分析,用户可以挖掘出大量有用的信息用于 CDN 质量和性能的分析、错误诊断、客户端分布,以及用户行为分析。

前提条件

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

方案优势

当前, 各 CDN 服务提供厂商, 通常会实时提供基础的监控指标,例如请求次数,宽带等信息。 但是,在许多特定的分析场景下, 这些默认的实时指标可能并不能满足用户定制化的分析需求。 因此,通常用户会进一步将 CDN 的原始日志下载下来, 进行离线的深入分析与挖掘。这种情况用户需自行搭建离线分析集群,不仅需要大量的运维开发成本和人力成本;同时在一些基于 CDN 日志的告警,排障等分析场景下,离线日志的实时性难以保证。
腾讯云 CDN 与 CLS 实现打通, 用户可以将 CDN 的数据实时投递至 CLS, 并进一步使用 CLS 的检索和 SQL 分析能力, 来满足不同场景下用户个性化的实时日志分析需求。

日志字段说明

字段名
原始日志类型
日志服务类型
说明
app_id
Integer
long
腾讯云账号 APPID
client_ip
String
text
客户端 IP
file_size
Integer
long
文件大小
hit
String
text
缓存 HIT / MISS,在 CDN 边缘节点命中、父节点命中均标记为 HIT
host
String
text
域名
http_code
Integer
long
HTTP 状态码
isp
String
text
运营商
method
String
text
HTTP Method
param
String
text
URL 携带的参数
proto
String
text
HTTP 协议标识
prov
String
text
运营商省份
referer
String
text
Referer 信息,HTTP 来源地址
request_range
String
text
Range 参数,请求范围
request_time
Integer
long
响应时间(毫秒),指节点从收到请求后响应所有回包再到客户端所花费的时间
request_port
String
long
客户端与 CDN 节点建立连接的端口。若无,则为 -
rsp_size
Integer
long
返回字节数
time
Integer
long
请求时间,UNIX 时间戳,单位为:秒
ua
String
text
User-Agent 信息
url
String
text
请求路径
uuid
String
text
请求的唯一标识
version
Integer
long
CDN 实时日志版本

预置仪表盘

CLS 已将常用的CDN日志分析方式预置为仪表盘,您可通过该仪表盘快速了解当前 CDN 请求状态。
质量监控分析仪表盘,包括缓存命中率、错误码分布等。
用户行为分析仪表盘,包括 PV、UV 和各地域访问分布等。
在仪表盘右上角单击编辑仪表盘可基于预置仪表盘进行编辑。



可以构建更适用您的专属仪表盘。




场景示例

场景1:监控 CDN 访问延时高于一定阈值告警

使用数学统计中的百分数(例如99%最大延迟)来作为告警触发条件较为准确,使用平均值触发告警会造成一些个体请求延时被平均,无法反映真实情况。 例如针对99%的延时大于100ms 进行告警,并且在告警信息中展示受影响域名、url、client_ip,以便快速判断错误情况。
1. 进入创建告警策略页面,操作步骤详见配置告警策略
2. 在执行语句中输入以下语句,时间范围选择15分钟,统计近15分钟内的99%延时。
* | select approx_percentile(request_time, 0.99) as p99
3. 触发条件如下,即99%延时大于100ms 时,满足告警条件。
$1.p99 > 100
4. 执行周期:固定频率,每1分钟执行一次。
5. 多维分析:在告警信息中展示受影响的域名,客户端 IP,url,帮助开发人员快速定位问题。

告警触发后,通过微信,企业微信,短信第一时间获取关键信息。


场景2: 资源访问错误激增告警,当同比增数超过一定阈值时, 告警通知用户

当页面访问错误的数量出现激增时,可能说明 CDN 后端服务器出现故障,或者请求过载。 我们可以通过设置告警来对一定时间范围内(eg.一分钟)请求错误数量的同比增数进行监控, 当同比增数超过一定阈值时,告警通知用户。
1. 进入创建告警策略页面,操作步骤详见 配置告警策略
2. 在执行语句中输入以下语句,时间范围选择1分钟,统计最近1分钟相比上1分钟的错误数增量。
http_code:>=400 | select compare[1]-compare[2] as errorCNTRise from (select compare(errorCNT,60) as compare from(select count(*) as errorCNT))
3. 触发条件如下,即错误数增量大于100时,满足告警条件。
$1.errorCNTRise > 100