Cloudflare Logpush 支持通过 Cloudflare 仪表板或 API 将日志直接推送到 Microsoft Azure。
-
在 Cloudflare 仪表板中,前往账户或域名(也称为 zone)级别的 Logpush(日志推送) 页面。
账户级别:Go to Logpush ↗
域名(也称为 zone)级别:Go to Logpush ↗
-
根据你的选择,可分别访问账户范围数据集与 zone 范围数据集。
-
选择 Create a Logpush job(创建 Logpush 作业)。
-
在 Select a destination(选择目标) 中,选择 Microsoft Azure。
-
输入或选择以下目标详细信息:
- SAS URL - 授予 Azure Storage 资源访问权限的预签名 URL。有关使用 Azure Storage Explorer 生成 SAS URL 的更多信息,请参阅 Azure storage documentation ↗。服务必须设置为仅 Blob(
ss=b),资源类型必须设置为仅 Object(srt=o)。 - Path(路径) - 存储容器内的存储桶位置
- Organize logs into daily subfolders(按日整理到子文件夹)(推荐)
- SAS URL - 授予 Azure Storage 资源访问权限的预签名 URL。有关使用 Azure Storage Explorer 生成 SAS URL 的更多信息,请参阅 Azure storage documentation ↗。服务必须设置为仅 Blob(
输入完目标详细信息后,选择 Continue(继续)。
-
选择要推送到存储服务的数据集。
-
在下一步中,需要配置你的 Logpush 任务:
- 输入 Job name(作业名称)。
- 在 If logs match(如果日志匹配) 下,可以选择要包含和/或从日志中排除的事件。更多信息请参阅 Filters。并非所有数据集都提供此选项。
- 在 Send the following fields(发送以下字段) 中,可以选择将所有日志推送到存储目标,或有选择地指定要推送的日志。
-
在 Advanced Options(高级选项) 中,你可以:
- 选择日志中时间戳字段的格式(
RFC3339(默认)、Unix或UnixNano)。 - 为日志选择采样率,或推送随机采样的一定百分比日志。
- 启用针对
CVE-2021-44228的脱敏。该选项会将每一次出现的${替换为x{。
- 选择日志中时间戳字段的格式(
-
配置完 Logpush 任务后,选择 Submit(提交)。
Cloudflare 使用 shared access signature (SAS) token 来访问你的 Blob Storage 容器。你需要提供 Write 权限,以及至少五年的过期期限,这样你就不必担心 SAS token 过期。
在尝试读取或配置 Logpush 任务之前,请确保已启用 Log Share 权限。更多信息请参阅角色部分。
要启用到 Azure 的 Logpush:
-
创建 Blob Storage 容器。请参阅 Azure 的说明 ↗。
-
创建 shared access signature (SAS) ↗,以保护和限制对 Blob Storage 容器的访问。使用 Storage Explorer ↗ 导航到你的容器,右键单击以创建签名。将签名设置为至少五年后过期,并且仅提供写入权限。
-
在 Logpush API 或 UI 提示时提供 SAS URL。
配置 Azure 目标时,SAS (Shared Access Signature) token 必须设置为仅具有写入权限的 blob 容器。服务必须为仅 Blob(ss=b),资源类型必须为仅 Object(srt=o)。
如果 SAS token 使用了不同设置,你将收到以下错误:
signedResourceTypes must be Object only (srt=o)要解决此错误,请使用 Storage Explorer ↗ 以正确权限重新生成 SAS token:
- Service:仅 Blob(
ss=b) - Resource type:仅 Object(
srt=o) - Permissions:仅 Write
- Expiration:自现在起至少五年