最近更新时间:2026-07-15 19:47:33
传统 CDN 离线日志需要 2-7 小时才能生成,无法满足业务异常快速定位、实时监控和紧急故障排查的需求。金山云 CDN 支持将访问日志分钟级实时投送至金山云自建的 Klog 日志服务,实现日志的实时查询、分析与统计,快速定位业务问题、监控服务质量。
实时日志不提供服务等级协议(Service Level Agreement,SLA)保障,若您需要用于计费数据计算,请以 CDN 官方提供的离线日志为准。
CDN 实时日志投递是指将 CDN 节点产生的访问日志,以分钟级延迟实时推送到 Klog 日志服务的功能。您可以通过 Klog 提供的结构化查询语言(Structured Query Language,SQL)查询能力,对日志进行多维度的实时分析和统计,满足各类业务场景的需求。
使用本功能前,您需要先完成以下准备工作:
开通金山云 CDN 服务并完成域名接入
开通金山云 Klog 日志服务
在 Klog 控制台创建对应的日志工程(Project)和日志池(LogPool)
联系金山云 CDN 技术支持,提供以下信息完成日志投送配置:
客户 UID(AccountId)
日志工程名称(ProjectName)
日志池名称(LogPoolName)
需要投递日志的 CDN 域名
CDN 实时日志投递功能包含以下核心能力:
分钟级日志投送:日志产生后 5-10 分钟内即可在 Klog 中查询
标准 SQL 查询:支持使用标准 SQL 语法进行日志查询和统计
多维度分析:支持按 IP、URL、状态码、时间、地区等多维度进行统计分析
快速查询保存:支持将常用的 SQL 语句保存为快速查询,一键执行
日志长期存储:日志保留时间可根据业务需求在 Klog 中灵活配置
为保证日志查询和统计功能正常使用,您需要在 Klog 控制台完成以下索引配置:
进入日志池管理:进入您创建的日志工程,点击左侧导航栏 "日志池
找到对应日志池:找到 CDN 日志投送对应的日志池,点击 "配置索引"
删除所有字段的分词符:
点击 "批量编辑"
全选所有字段,将 "分词符" 列的内容全部清空
点击 "保存"
说明:如果保留分词符,IP、URL 等字段会被拆分成多个关键词,导致 GROUP BY 和精确查询失效
重置索引配置:点击右上角 "重新获取索引" 按钮
清空分词符:将分词符输入框中的所有内容全部清空
确认全局配置项:
索引状态:开启
中文分词:关闭
区分大小写:开启
检查字段分词符:下拉页面至 "字段查询" 区域,逐行检查所有字段的分词符列,确保所有字段的分词符输入框均为空
修改 request_length 字段类型:
找到 request_length、byte_sent(请求长度)字段,将其数据类型从默认的 long 修改为 double
点击 "确定" 保存配置
说明:Klog 的 long 类型最大值为 2^31-1(约 2GB),大文件下载场景下单个请求的流量可能超过该值,会导致统计错误
登录 Klog 控制台:在左侧导航栏点击 "日志查询"
选择日志源:选择对应的日志工程和日志池
选择时间范围:在页面顶部选择需要查询的时间范围
输入 SQL 查询:在查询输入框中输入 SQL 语句,点击 "执行查询"
以下 SQL 严格匹配 CDN 标准日志字段,可直接复制执行:
SELECT remote_addr, COUNT(*) AS ip_count, SUM(byte_sent) AS ip_flow
GROUP BY remote_addr
ORDER BY ip_flow DESC
LIMIT 10SELECT scheme_shost_request_uri, COUNT(*) AS request_count
GROUP BY scheme_shost_request_uri
ORDER BY request_count DESC
LIMIT 10SELECT cache_status_status_code, COUNT(*) AS request_count
GROUP BY cache_status_status_code
ORDER BY request_count DESCSELECT
scheme_shost_request_uri,
COUNT(*) AS slow_count,
AVG(request_time) AS avg_time,
MAX(request_time) AS max_time
WHERE request_time > 500
GROUP BY scheme_shost_request_uri
ORDER BY slow_count DESC
LIMIT 10;说明:request_time > 500 中的阈值 500(单位:毫秒)仅为示例,由于不同的业务模型差异较大,请根据实际业务的响应时间基线来设定慢请求阈值。
如有其他字段查询诉求,可以参考:金山云-文档中心-搜索型日志池查询语法
对于经常使用的查询语句,您可以将其保存为快速查询:
在查询输入框中输入 SQL 语句
点击输入框右侧的 "保存为快速查询"
输入查询名称和描述,点击 "确定"
后续可在 "快速查询" 下拉菜单中直接选择使用
适用场景:CDN 带宽突增,怀疑存在攻击流量或异常访问时,需要快速定位流量来源
配置方式:
进入 Klog 日志查询界面
选择带宽突增的时间范围(建议缩小到 15-30 分钟)
执行 "按 IP 统计请求数和流量"SQL 语句
查看结果,找出流量或请求数显著高于其他 IP 的异常 IP
效果说明:几分钟内定位异常流量的来源 IP,为后续的 IP 封禁和流量清洗提供依据,缩短故障处理时间
适用场景:日常业务巡检,或收到用户反馈访问卡顿、错误时,需要快速了解整体服务质量
配置方式:
进入 Klog 日志查询界面
选择最近 1 小时的时间范围
执行 "按状态码统计访问量"SQL 语句,查看是否有大量 4xx/5xx 错误
执行 "统计慢请求 TOP URL"SQL 语句,查看是否有响应缓慢的资源
效果说明:实时监控服务的错误率和响应时间,及时发现潜在的服务问题,避免影响更多用户
适用场景:怀疑存在恶意爬虫或盗链行为,导致带宽被大量消耗
配置方式:
进入 Klog 日志查询界面
选择需要分析的时间范围
通过执行 SQL 语句,统计空 Referer 的请求
分析结果,识别出请求频率异常高的 IP 和 UA
效果说明:快速识别出恶意爬虫和盗链行为,为后续的防盗链配置和 IP 封禁提供依据,减少不必要的带宽消耗
投递延迟:日志投送配置完成后,5-10 分钟内即可在 Klog 中查询到实时日志数据
保留时间:实时日志保留时间与您在 Klog 中设置的日志池保留时间一致
计费说明:Klog 服务涉及单独计费,具体计费规则请参考金山云文档中心的计费说明
查询性能:大量复杂的 SQL 查询会影响 Klog 服务性能,建议避免在业务高峰期执行耗时较长的查询
日志池管理:单个日志池建议只投递一个域名的日志,便于管理和查询
索引配置影响:日志字段的索引配置修改后,仅对新写入的日志生效,历史日志无法使用新的索引配置查询
若需使用 CDN 实时日志投递功能,请通过提交工单或联系对应售后 / 技术支持人员,由金山云人工协助完成配置。
工单内容建议包含以下信息:
工单标题:申请开通 [域名] 的 CDN 实时日志投递
需要投递日志的 CDN 域名
Klog 日志工程名称(ProjectName)
Klog 日志池名称(LogPoolName)
配置修改提交后,5 分钟内生效。
1.配置完成后查询不到日志怎么办?
请检查以下几点:
确认 CDN 域名有正常的访问流量。
确认日志投送配置中的工程名和日志池名正确。
确认 Klog 日志池的索引配置已正确完成。
等待 5-10 分钟后再尝试查询。
2.为什么 SQL 查询结果为空?
可能的原因:
选择的时间范围内没有日志数据。
字段名拼写错误(注意大小写)。
索引配置不正确(未删除分词符或字段类型错误)。
3.可以投递多个域名的日志到同一个日志池吗?
可以,但建议每个域名使用单独的日志池,便于管理和查询。如果多个域名共用一个日志池,可以通过 host 字段区分不同域名的日志。
4.实时日志和离线日志有什么区别?
特性 | 实时日志 | 离线日志 |
延迟 | 分钟级 | 1-6 小时 |
SLA | 不提供 | 提供 |
用途 | 实时监控、异常排查 | 计费统计、数据分析 |
保留时间 | 由 Klog 日志池配置 | 30 天 |
5.修改日志池的索引配置会影响历史日志吗?
不会。索引配置的修改仅对新写入的日志生效,历史日志将继续使用修改前的索引配置。
纯净模式
