全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

CDN 实时日志投递方案

最近更新时间:2026-07-15 19:47:33

CDN 实时日志投递方案

背景说明

传统 CDN 离线日志需要 2-7 小时才能生成,无法满足业务异常快速定位、实时监控和紧急故障排查的需求。金山云 CDN 支持将访问日志分钟级实时投送至金山云自建的 Klog 日志服务,实现日志的实时查询、分析与统计,快速定位业务问题、监控服务质量。

实时日志不提供服务等级协议(Service Level Agreement,SLA)保障,若您需要用于计费数据计算,请以 CDN 官方提供的离线日志为准。

功能概述

CDN 实时日志投递是指将 CDN 节点产生的访问日志,以分钟级延迟实时推送到 Klog 日志服务的功能。您可以通过 Klog 提供的结构化查询语言(Structured Query Language,SQL)查询能力,对日志进行多维度的实时分析和统计,满足各类业务场景的需求。

准备工作

使用本功能前,您需要先完成以下准备工作:

  1. 开通金山云 CDN 服务并完成域名接入

  2. 开通金山云 Klog 日志服务

  3. 在 Klog 控制台创建对应的日志工程(Project)和日志池(LogPool)

  4. 联系金山云 CDN 技术支持,提供以下信息完成日志投送配置:

    • 客户 UID(AccountId)

    • 日志工程名称(ProjectName)

    • 日志池名称(LogPoolName)

    • 需要投递日志的 CDN 域名

功能介绍

CDN 实时日志投递功能包含以下核心能力:

  • 分钟级日志投送:日志产生后 5-10 分钟内即可在 Klog 中查询

  • 标准 SQL 查询:支持使用标准 SQL 语法进行日志查询和统计

  • 多维度分析:支持按 IP、URL、状态码、时间、地区等多维度进行统计分析

  • 快速查询保存:支持将常用的 SQL 语句保存为快速查询,一键执行

  • 日志长期存储:日志保留时间可根据业务需求在 Klog 中灵活配置

日志索引配置(仅首次使用)

为保证日志查询和统计功能正常使用,您需要在 Klog 控制台完成以下索引配置:

  1. 登录金山云Klog控制台

  1. 进入日志池管理:进入您创建的日志工程,点击左侧导航栏 "日志池

  1. 找到对应日志池:找到 CDN 日志投送对应的日志池,点击 "配置索引"

  1. 删除所有字段的分词符

    • 点击 "批量编辑"

    • 全选所有字段,将 "分词符" 列的内容全部清空

    • 点击 "保存"

    • 说明:如果保留分词符,IP、URL 等字段会被拆分成多个关键词,导致 GROUP BY 和精确查询失效

  1. 重置索引配置:点击右上角 "重新获取索引" 按钮

  2. 清空分词符:将分词符输入框中的所有内容全部清空

  3. 确认全局配置项

    • 索引状态:开启

    • 中文分词:关闭

    • 区分大小写:开启

  4. 检查字段分词符:下拉页面至 "字段查询" 区域,逐行检查所有字段的分词符列,确保所有字段的分词符输入框均为空

  1. 修改 request_length 字段类型

    • 找到 request_length、byte_sent(请求长度)字段,将其数据类型从默认的 long 修改为 double

    • 点击 "确定" 保存配置

    • 说明:Klog 的 long 类型最大值为 2^31-1(约 2GB),大文件下载场景下单个请求的流量可能超过该值,会导致统计错误

日志查询基础操作

  1. 登录 Klog 控制台:在左侧导航栏点击 "日志查询"

  2. 选择日志源:选择对应的日志工程和日志池

  1. 选择时间范围:在页面顶部选择需要查询的时间范围

  1. 输入 SQL 查询:在查询输入框中输入 SQL 语句,点击 "执行查询"

常用查询 SQL

以下 SQL 严格匹配 CDN 标准日志字段,可直接复制执行:

按 IP 统计请求数和流量
SELECT remote_addr, COUNT(*) AS ip_count, SUM(byte_sent) AS ip_flow 
GROUP BY remote_addr 
ORDER BY ip_flow DESC 
LIMIT 10
按 URL 统计请求次数
SELECT scheme_shost_request_uri, COUNT(*) AS request_count
GROUP BY scheme_shost_request_uri
ORDER BY request_count DESC
LIMIT 10
按状态码统计访问量
SELECT cache_status_status_code, COUNT(*) AS request_count
GROUP BY cache_status_status_code
ORDER BY request_count DESC

统计慢请求 TOP URL

SELECT
    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(单位:毫秒)仅为示例,由于不同的业务模型差异较大,请根据实际业务的响应时间基线来设定慢请求阈值。

如有其他字段查询诉求,可以参考:金山云-文档中心-搜索型日志池查询语法

快速查询保存

对于经常使用的查询语句,您可以将其保存为快速查询:

  1. 在查询输入框中输入 SQL 语句

  2. 点击输入框右侧的 "保存为快速查询"

  1. 输入查询名称和描述,点击 "确定"

  2. 后续可在 "快速查询" 下拉菜单中直接选择使用

配置场景与说明

突发异常流量快速排查

适用场景:CDN 带宽突增,怀疑存在攻击流量或异常访问时,需要快速定位流量来源

配置方式

  1. 进入 Klog 日志查询界面

  2. 选择带宽突增的时间范围(建议缩小到 15-30 分钟)

  3. 执行 "按 IP 统计请求数和流量"SQL 语句

  4. 查看结果,找出流量或请求数显著高于其他 IP 的异常 IP

效果说明:几分钟内定位异常流量的来源 IP,为后续的 IP 封禁和流量清洗提供依据,缩短故障处理时间

服务质量实时监控

适用场景:日常业务巡检,或收到用户反馈访问卡顿、错误时,需要快速了解整体服务质量

配置方式

  1. 进入 Klog 日志查询界面

  2. 选择最近 1 小时的时间范围

  3. 执行 "按状态码统计访问量"SQL 语句,查看是否有大量 4xx/5xx 错误

  4. 执行 "统计慢请求 TOP URL"SQL 语句,查看是否有响应缓慢的资源

效果说明:实时监控服务的错误率和响应时间,及时发现潜在的服务问题,避免影响更多用户

爬虫与盗链行为识别

适用场景:怀疑存在恶意爬虫或盗链行为,导致带宽被大量消耗

配置方式

  1. 进入 Klog 日志查询界面

  2. 选择需要分析的时间范围

  3. 通过执行 SQL 语句,统计空 Referer 的请求

  4. 分析结果,识别出请求频率异常高的 IP 和 UA

效果说明:快速识别出恶意爬虫和盗链行为,为后续的防盗链配置和 IP 封禁提供依据,减少不必要的带宽消耗

注意事项

  1. 投递延迟:日志投送配置完成后,5-10 分钟内即可在 Klog 中查询到实时日志数据

  2. 保留时间:实时日志保留时间与您在 Klog 中设置的日志池保留时间一致

  3. 计费说明:Klog 服务涉及单独计费,具体计费规则请参考金山云文档中心的计费说明

  4. 查询性能:大量复杂的 SQL 查询会影响 Klog 服务性能,建议避免在业务高峰期执行耗时较长的查询

  5. 日志池管理:单个日志池建议只投递一个域名的日志,便于管理和查询

  6. 索引配置影响:日志字段的索引配置修改后,仅对新写入的日志生效,历史日志无法使用新的索引配置查询

配置方式

若需使用 CDN 实时日志投递功能,请通过提交工单或联系对应售后 / 技术支持人员,由金山云人工协助完成配置。

工单内容建议包含以下信息

  • 工单标题:申请开通 [域名] 的 CDN 实时日志投递

  • 需要投递日志的 CDN 域名

  • Klog 日志工程名称(ProjectName)

  • Klog 日志池名称(LogPoolName)

配置修改提交后,5 分钟内生效。

常见问题

1.配置完成后查询不到日志怎么办?

请检查以下几点:

  • 确认 CDN 域名有正常的访问流量。

  • 确认日志投送配置中的工程名和日志池名正确。

  • 确认 Klog 日志池的索引配置已正确完成。

  • 等待 5-10 分钟后再尝试查询。

2.为什么 SQL 查询结果为空?

可能的原因:

  • 选择的时间范围内没有日志数据。

  • 字段名拼写错误(注意大小写)。

  • 索引配置不正确(未删除分词符或字段类型错误)。

3.可以投递多个域名的日志到同一个日志池吗?

可以,但建议每个域名使用单独的日志池,便于管理和查询。如果多个域名共用一个日志池,可以通过 host 字段区分不同域名的日志。

4.实时日志和离线日志有什么区别?

特性

实时日志

离线日志

延迟

分钟级

1-6 小时

SLA

不提供

提供

用途

实时监控、异常排查

计费统计、数据分析

保留时间

由 Klog 日志池配置

30 天

5.修改日志池的索引配置会影响历史日志吗?

不会。索引配置的修改仅对新写入的日志生效,历史日志将继续使用修改前的索引配置。

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈