秒懂边缘云 | CDN基础入门:CDN日志下载与分析

简介: CDN提供了离线日志、实时日志两种日志的对接方式,通过本文您可以了解CDN提供的日志相关的功能和产品。

通过CDN对外提供访问服务时,CDN会针对到达加速节点的业务请求记录明细的访问日志,您可以通过分析CDN日志及时发现问题、分析问题,并有针对性的解决问题,提升CDN服务质量。CDN提供了离线日志、实时日志两种日志的对接方式,通过本文您可以了解CDN提供的日志相关的功能和产品。


准备工作


1.已经添加完成的CDN域名

2.阿里云CDN控制台。


本章节内容大纲


离线日志

  • 离线日志的下载方式,字段含义。
  • 常见离线日志的分析思路。
  • 如何延长离线日志存储时间。

实时日志

  • 实时日志的开通方式,字段含义。
  • 常见实时日志的分析思路。
  • 如何延长实时日志存储时间。

离线日志


阿里云CDN默认按小时颗粒度记录了域名全网访问日志,您可根据需求下载30天内指定域名某一天的日志至本地路径保存进行分析,离线日志的延迟一般在24小时内(特殊情况大于24小时)。



日志下载与字段含义


登录CDN控制台,在左侧导航栏,单击日志管理 > 离线日志,在日志下载页签,选择域名查询时间,单击查询,根据查询结果,单击操作列下的下载,即可下载日志至本地。


说明:

日志下载默认可下载最长时间为30天的日志数据,若您有更长时间的日志存储需求,可使用离线日志转存服务,把日志转存到您名下的OSS进行长期存储,具体操作请参见下文。



日志字段含义


日志示例:


[9/Jun/2015:01:58:09 +0800] 10.10.10.10 - 1542"-""GET http://www.aliyun.com/index.html"2001912830 MISS "Mozilla/5.0 (compatible; AhrefsBot/5.0; +http://example.com/robot/)""text/html"

字段

描述

[9/Jun/2015:01:58:09 +0800]

日志开始时间。

10.10.10.10

访问IP。

-

代理IP。

1542

请求响应时间,单位为毫秒。

"-"

HTTP请求头中的Referer。

GET

请求方法。

http://www.aliyun.com/index.html

用户请求的URL链接。

200

HTTP状态码。

191

请求大小,单位为字节。

2830

请求返回大小,单位为字节。

MISS

命中信息。

  • HIT:用户请求命中了CDN边缘节点上的资源(不需要回源)。
  • MISS:用户请求的内容没有在CDN边缘节点上缓存,需要向上游获取资源(上游可能是CDN L2节点,也可能是源站)。

说明:阿里云CDN目前仅提供了CDN边缘节点的日志信息,不包含CDN L2节点的回源相关信息,因此当该字段为MISS时,无法获取回源信息,因此无法直观地从日志里面看到用户请求是否回源。


Mozilla/5.0(compatible; AhrefsBot/5.0; +http://example.com/robot/)

User-Agent请求头信息。

text/html

文件类型。


离线日志分析


离线日志下载解压后,可以直接通过文本编辑器打开查看,也可以通过shell、python等进行脚本分析,以下列举常见的shell分析命令帮助您理解,您也可以参考示例命令适当修改后实现自定义分析目的。


  • 示例日志文件名:example.aliyun.com_2022_08_18_100000_110000(使用命令时需替换文件名)
  • 分析目标:域名example.aliyun.com在2022年8月18日10点~11点期间的访问日志

响应时间较长top20的日志

cat  example.aliyun.com_2022_08_18_100000_110000 | sort  -rn -k 5 | head -20


文件MISS大小top20的日志

cat  example.aliyun.com_2022_08_18_100000_110000 | grep 'MISS' | sort  -rn -k 11 | head -20


502状态码的日志

cat  example.aliyun.com_2022_08_18_100000_110000 | awk '{if($9==502)print $0}'


客户端IP前缀为10.10.10.的日志

cat  example.aliyun.com_2022_08_18_100000_110000 | grep '10.10.10.'


URL访问次数排序top20(忽略参数)

cat  example.aliyun.com_2022_08_18_100000_110000 | awk '{print $8}' | awk -F'?' '{print$1}' |sort| uniq -c | sort -rn | head -20


客户IP访问次数排序top20

sort -k 3  example.aliyun.com_2022_08_18_100000_110000 | awk '{print $3}'  | uniq -c | sort -rn | head -20


过滤499状态码且响应时间大于10s的日志

cat  example.aliyun.com_2022_08_18_100000_110000 | awk '{if($9==499 && $5>10000)print $0}'


1M以上的文件中,平均响应速度小于100KB/s慢请求

cat  example.aliyun.com_2022_08_18_100000_110000 | awk '{if($5>0 && $11>1000000 && $11/$5<100)print $0}'


1M以上的文件中,平均响应速度小于100KB/s慢请求出现次数按照客户端IP聚合后再排序top20

sort -k 3  example.aliyun.com_2022_08_18_100000_110000 | awk '{if($5>0 && $11>1000000 && $11/$5<100)print $0}'  | awk '{print $3}' | uniq -c | sort -rn | head -20



延长离线日志存储时间


由于CDN日志在控制台只保留近30天的数据,因此如果您需要长期存储以便分析,需要对日志进行转存,常见方式:


  1. 通过控制台下载、API对接的方式,定期拉取服务端日志备份到本地服务器。
  2. 通过函数计算产品,将CDN离线日志转存到OSS中。


在这里我们主要介绍通过函数计算转存离线日志的方式,操作步骤如下:


  1. 离线日志-通过函数计算转存离线日志中,前往开通函数计算产品
  2. 创建日志转存服务,输入服务名称,并选择转存时需要存储的OSS bucket名称。
  3. 点击按钮进行授权,选择需要关联函数服务的域名。
  4. 创建完成,当域名产生新的日志后,会通过触发器将日志存储到OSS空间。
  5. 等待产生新日志并验收OSS内的转存效果。




实时日志


由于离线日志的延迟时间较长,如果您期望分析更加实时的访问日志信息,可以开通实时日志服务,实时日志的数据延迟不超过3分钟,可以帮助用户您快速对访问日志进行分析,及时发现问题和决策应对。


传统的离线日志分析模式中,需要用户将日志下载,再重新上传至数据仓库,然后在数据仓库进行一系列的清洗和数据模型定义,这一系列操作处理完以后才能进行数据分析,整个过程需要的人力较多,时间较长;而CDN实时日志打通了SLS日志服务的日志转存和日志分析能力,免去传统模式下繁琐的离线日志分析流程,可以通过SLS进行便捷分析。



日志推送配置与字段含义


登录CDN控制台,在左侧导航栏,单击日志管理 > 实时日志,在实时日志推送页签,创建实时日志推送服务,选择需要开启实时日志的域名后创建。



日志字段含义


相较离线日志,实时日志推送的信息内容更加丰富。

编号

字段名称

字段含义

默认是否创建索引

1

unixtime

请求时间。

2

domain

请求的域名。

3

method

请求方法。

4

scheme

请求协议。

5

uri

请求资源。

6

uri_param

请求参数。

7

client_ip

用户真实IP。

8

proxy_ip

代理IP。

9

remote_ip

和CDN节点建连IP。

10

remote_port

和CDN节点建连客户端端口。

11

refer_protocol

HTTP refer中的协议。

12

refer_domain

HTTP refer中domain信息。

13

refer_uri

HTTP refer中uri信息。

14

refer_param

HTTP refer中的参数信息。

15

request_size

请求大小。

16

request_time

请求响应时间,单位:毫秒。

17

response_size

请求返回大小,单位:字节。

18

return_code

请求响应码。

19

sent_http_content_range

应答头里表示的range信息(由源站创建),如bytes:0~99/200。

20

server_addr

服务的CDN节点IP。

21

server_port

服务的CDN节点服务端口。

22

body_bytes_sent

实际发送body大小,单位:字节。

23

content_type

请求的资源类型。

24

hit_info

命中信息(直播,动态加速除外),取值为HIT(命中)、MISS(未命中)。

25

http_range

用户请求中Header头中range字段取值,如bytes:0~100。

26

user_agent

用户代理信息。

27

user_info

用户信息。

28

uuid

请求唯一标识。

29

via_info

via头信息。

30

xforwordfor

请求头中XForwardFor字段。


实时日志分析


创建投递项目后,点击对应的分析与告警,可以跳转DCDN访问中心查看报表,报表业务默认展示了常见图表,您也可以根据业务需求创建自定义图表。



日志分析分类如下:


  • 基本信息:PV总数UV总数请求错误百分比
  • 数据分布与趋势:PV分布PV趋势
  • TOP数据:Top10 URITop10 IP
  • 错误信息:错误码趋势错误域名Top10错误URI Top10错误IP Top10
  • 性能指标:缓存命中率响应时延(5分钟)
  • 客户画像:UV分布Referer来源分布UA分布


左侧导航栏可以切换日志存储,点击Logstore名称打开日志分析页面。



默认DCDN在日志推送时已经创建索引,您可以展开索引字段查看聚合后的字段分布。



您也可以参考SLS的分析语句,按照需求过滤分析,如需排障或定位日志中的请求问题,可以将相应请求的日志内容复制给到售后工程师进行排查。



延长实时日志存储时间


创建实时日志服务时,默认保存时间为7天,如果您需要修改保存时间,或者永久保存,操作步骤如下:


  1. 打开SLS控制台内,打开CDN实时日志对应的Project。
  2. 右键需要修改Logstore打开修改面板,点击修改按钮后对保存时间进行调整,如需永久保存可开启永久保存开关。
  3. 修改完成后,点击保存即可生效。




更多边缘云产品资讯欢迎访问【阿里云边缘云】或扫码关注【阿里云Edge Plus】

qrcode_for_gh_0cf3488f3334_258.jpg

边缘云 开启分布式云网融合新时代

目录
相关文章
|
3月前
|
监控 Android开发 C语言
深度解读Android崩溃日志案例分析2:tombstone日志
深度解读Android崩溃日志案例分析2:tombstone日志
86 0
|
3月前
|
Go 数据处理 Docker
elk stack部署自动化日志收集分析平台
elk stack部署自动化日志收集分析平台
81 0
|
3月前
|
缓存 固态存储 关系型数据库
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
MySQL性能优化指南:深入分析重做日志刷新到磁盘的机制
|
4月前
|
Java
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
如何实现一个高效的二叉搜索树(BST)?请给出时间复杂度分析。 要求:设计一个二叉搜索树,支持插入、删除和查找操作。要求在平均情况下,这些操作的时间复杂度为O(log n)。同时,考虑树的平衡性,使得树的高度保持在对数级别。
36 0
|
6天前
|
机器学习/深度学习 前端开发 数据挖掘
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断(下)
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
76 11
|
4月前
|
存储 监控 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(1)
|
4月前
|
SQL 存储 安全
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
带你读《Apache Doris 案例集》——07查询平均提速700% ,奇安信基于 Apache Doris 升级日志安全分析系统(2)
111 0
|
4月前
|
运维 监控 数据可视化
日志管理:收集和分析Docker容器日志
容器化技术的普及使得应用的部署和管理更加便捷,但随之而来的挑战之一是有效地管理和分析容器产生的大量日志。本文将深入探讨Docker容器日志管理的重要性,介绍常用的日志收集工具,以及如何分析和利用这些日志数据,提供更为丰富和实际的示例代码,帮助大家更好地理解和应用日志管理的关键技术。
|
12天前
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断2
工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
18 0
|
12天前
|
机器学习/深度学习 前端开发 数据挖掘
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
R语言计量经济学:工具变量法(两阶段最小二乘法2SLS)线性模型分析人均食品消费时间序列数据和回归诊断
40 0

相关产品