本文档介绍如何在火山引擎内容分发网络(CDN)中创建日志投递任务。您最多可以创建 20 个任务。
任务创建向导包含两个步骤:
设置投递信息:配置投递相关的设置。
关联域名:指定投递哪些加速域名的实时日志。
在该步骤中,您可以指定将实时日志投递到火山引擎日志服务(TLS)、阿里云日志服务(SLS)或者您指定的 HTTP 服务器。
如果您第一次将实时日志投递到 TLS,在您点击 投递对象 下的 火山引擎日志服务(TLS) 时,页面会提示您开通 TLS 服务,然后授权 CDN 访问 TLS。请根据控制台页面的提示进行操作。
说明
当您授权 CDN 访问 TLS 时,您的火山引擎主账号下会被添加 ServiceRoleForCDN
角色。
要使子用户有权限创建日志投递任务,子用户需要被授予 CDNLogsFullAccess
系统预设策略。
如果前提条件满足,在您点击 投递对象 下的 火山引擎日志服务(TLS) 时,你需要完成以下配置,使 CDN 将实时日志投递到您指定的日志主题中。参见下方的配置说明。
配置 | 说明 |
---|---|
采集区域 | 表示从哪个加速区域内的 CDN 节点上采集日志。当前,您仅可指定 中国内地,表示采集的是位于中国内地的 CDN 节点上的日志。 |
投递地域 | 表示 TLS 存储日志的物理地域,您可以选择离您较近的地域,降低日志检索的延迟。
默认地域为 "华北2(北京)"。 |
日志项目名称 | 表示日志归属的日志项目。日志项目好比文件夹,文件夹中包含一个或者多个文件(日志主题)。
说明 下拉列表中仅展示您通过点击 创建日志项目 而创建的日志项目。您在 TLS 中创建的日志项目不会出现在列表中。 |
日志主题名称 | 表示存放日志的日志主题。日志主题好比文件,包含在文件夹(日志项目)中。 |
日志存储时长 | 表示日志在 TLS 的存储时长,范围为 1 - 3649,单位是天。 |
采样率 | 表示日志采样率,范围为 0.00 - 100.00,精确到 2 位小数。 |
备注信息 | 表示该投递配置的备注。
|
如果您第一次将实时日志投递到 SLS,您需要完成以下步骤:
在您阿里云账号下开通 SLS 服务。
在 SLS 中创建好 Project 和 Logstore。
获取您阿里云账号的 AccessKey ID 和 AccessKey Secret。该账号需要有操作 SLS 的权限。
如果您已完成了以上步骤,在您点击 投递对象 下的 阿里云日志服务(SLS) 时,你需要完成以下配置,使 CDN 将实时日志投递到您指定的 Logstore 中。参见下方的配置说明。
配置 | 说明 |
---|---|
采集区域 | 表示从哪个加速区域内的 CDN 节点上采集日志。当前,您仅可指定 中国内地,表示采集的是位于中国内地的 CDN 节点上的日志。 |
Endpoint | 表示 Project 的公网域名。例如 |
Project | 表示您创建的 Project,长度不能超过 64 个字符。 |
Logstore | 表示您创建的 Logstore,长度不能超过 64 个字符。 |
AccessKey ID | 表示您阿里云账号的 AccessKey ID,长度不能超过 128 个字符。 |
AccessKey Secret | 表示您阿里云账号的 AccessKey Secret,长度不能超过 128 个字符。 |
采样率 | 表示日志采样率,范围为 0.00 - 100.00,精确到 2 位小数。 |
备注信息 | 表示该投递配置的备注。
|
您已获取了该 HTTP 服务器的访问点。如果 HTTP 服务器需要对请求进行鉴权,您还需要获取鉴权密钥。
HTTP 服务器已实施下方描述的签名算法。在收到 CDN 发送的日志投递请求时,HTTP 服务器对请求进行鉴权。
说明
在您完成配置后,请点击 推送 以测试您的配置是否有效。只有测试通过,您才能继续下一步。
配置 | 说明 |
---|---|
采集区域 | 表示从哪个加速区域内的 CDN 节点上采集日志。当前,您仅可指定 中国内地,表示采集的是位于中国内地的 CDN 节点上的日志。 |
接口地址 | 表示 HTTP 服务器的访问点、端口和路径,端口和路径是可选的。访问点必须以 http:// 或者 https:// 开头,开头和结尾不能包含空格,长度不超过 1,024 个字符。例如,https://www.example.com:8080/cdn-logs 。 |
文件压缩 | 表示在 CDN 投递日志时,是否启用 GZip 压缩。如果 HTTP 服务器可以处理经 GZip 压缩的内容,您可以启用文件压缩,以减小投递的日志大小。 |
HTTP 服务器鉴权 | 表示 HTTP 服务器是否需要对请求鉴权。 |
鉴权 Key | 如果 HTTP 服务器鉴权 为启用,该配置会出现。鉴权 Key 用于计算签名,Key 的长度为 6 - 40 个字符。鉴权 Key 只有 HTTP 服务器和客户端知晓。 |
采样率 | 表示日志采样率,范围为 0.00 - 100.00,精确到 2 位小数。 |
自定义 HTTP 请求头 | 表示 CDN 在向 HTTP 服务器投递日志时,请求中需要包含的特定头部。您最多可以添加 10 个头部。 |
备注信息 | 表示该投递配置的备注。
|
鉴权流程
在发送日志投递请求前,CDN 基于鉴权 Key 和签名算法计算签名。额外参与签名计算的字段有当前时间戳(timestamp)、接口地址中的路径(uri)、CDN 随机生成的整数(rand)。rand 的范围是 0 - 2147483647。
向 HTTP 服务器发送 POST 请求。
auth_key
查询参数,参数值的格式为 timestamp-rand-signature
。其中,signature
就是签名。http://http_server_address[:port]/[uri]?auth_key=timestamp-rand-md5hash
http://https://www.example.com:8080/cdn-logs?auth_key=1744870608-1a2c!=A?1-6459280fed54315c2960f9ae2e91807d
\n
分隔。收到请求后,HTTP 服务器基于鉴权 Key 以及从请求中获取的当前时间和随机数计算签名。
HTTP 服务器判断这两个签名是否相同。如果签名相同,则表示鉴权成功。
签名算法
签名示例
假设:
接口地址为 https://www.example.com:8080/cdn-logs
。
鉴权 Key 为 1a2c!=A?1
。
请求的发送时间(timestamp)为 1744870608
。
CDN 随机生成的整数(rand)为 14567
。
则签名的计算公式为 MD5(/cdn-logs-1744870608-14567-1a2c!=A?1)
,计算出的签名为 6459280fed54315c2960f9ae2e91807d
。
说明
如果接口地址中不包含路径,则签名计算公式为 MD5(-1744870608-14567-1a2c!=A?1)
。
在该步骤中,您指定投递哪些加速域名的实时日志。
如果您要投递所有加速域名的实时日志,请设置 关联方式 为 按账号关联。对于您后续在 CDN 中添加的域名,这些域名的实时日志也会被投递。
如果您要投递指定加速域名的实时日志,请设置 关联方式 为 按域名关联,然后勾选这些加速域名。您最多可以勾选 200 个加速域名。
在步骤二中,子用户只能添加其有权限操作的加速域名。另外,假设一个子用户被授予的相关策略存在项目限制(如下图所示),也就是说该子用户有权限访问的是指定的加速域名。在这个情况下,该子用户无法使用 按账号关联。
在您创建投递任务后,您的任务就出现在任务列表中了。
如果某个任务配置需要调整,您可以在 操作 列上,点击 编辑。
要查看投递任务的配置,您可以在相应任务的 投递信息 列上,点击 展开查看。
对于投递到 TLS 的任务,您可以点击 操作 列上的 检索,然后在日志检索页面对日志进行检索和分析,参见 日志检索示例。