跳转到内容
搜索文档

启用 HTTP 目标

最后更新 查看 MarkdownAgent 设置

Cloudflare Logpush 现已支持将日志发送到可配置的 HTTP 端点。

请注意,使用 Logpush 推送到 HTTP 端点时,Cloudflare 客户需自行对推送的日志进行身份验证。例如,客户可以在 Logpush 目标的 URL 或 HTTP 标头中指定密钥令牌。

通过 Cloudflare 仪表板管理

  1. 在 Cloudflare 仪表板中,前往账户或域名(也称为 zone)级别的 Logpush(日志推送) 页面。

    账户级别:Go to Logpush ↗

    域名(也称为 zone)级别:Go to Logpush ↗

  2. 根据你的选择,可分别访问账户范围数据集zone 范围数据集

  3. 选择 Create a Logpush job(创建 Logpush 作业)

  1. Select a destination(选择目标) 中,选择 HTTP destination(HTTP 目标)

  2. 输入要将日志发送到的 HTTP endpoint(HTTP 端点),然后选择 Continue(继续)。 - 你可以使用 "header_*" URL 参数来设置请求标头,例如,向 HTTP 端点传递身份验证令牌。

  3. 选择要推送到存储服务的数据集。

  4. 在下一步中,需要配置 Logpush 作业:

    • 输入 Job name(作业名称)
    • If logs match(如果日志匹配) 下,可以选择要包含和/或从日志中排除的事件。请参阅 Filters 了解更多信息。并非所有数据集都提供此选项。
    • Send the following fields(发送以下字段) 中,可以选择将所有日志推送到存储目标,或有选择地选择要推送的日志。
  5. Advanced Options(高级选项) 中,你可以:

    • 选择日志中时间戳字段的格式(RFC3339(默认)、UnixUnixNano)。
    • 为日志选择采样率,或推送随机采样的日志百分比。
    • CVE-2021-44228 启用脱敏。此选项会将每次出现的 ${ 替换为 x{
  6. 完成 Logpush 作业配置后,选择 Submit(提交)

通过 API 管理

要创建 Logpush 作业,请使用相应参数向 Logpush 作业创建端点 URL 发送 POST 请求。

支持的参数如下:

  • 与其他来源相同的字段:
    • dataset(必填):例如 http_requests
    • name(可选):建议使用你的域名作为作业名称。
    • output_options(可选):请参阅 Log Output Options 以配置字段、采样率和时间戳格式。
  • 特有字段:
    • destination_conf:日志发送位置。由端点 URL 和所用的 HTTP 标头组成。
      • 任何 "header_*" URL 参数都将用于设置请求标头。
        • HTTPS 端点不能包含与你已设置的任何 "header_*" URL 参数冲突的自定义 URL 参数。
        • 这些参数必须正确进行 URL 编码(例如,空格使用 "%20"),否则某些特殊字符可能会被错误解码。
      • 除了特殊的 "header_*" 参数外,destination_conf 还可以有更多 URL 参数。
        • 未进行 URL 编码的特殊字符在上传时会被编码。
      • 示例:https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests
    • max_upload_bytes(可选):一批日志的最大未压缩文件大小。此设置值必须在 5 MB 到 1 GB 之间。请注意,你无法设置最小文件大小;这意味着日志文件可能远小于此批次大小。
    • max_upload_records(可选):每批的最大日志行数。此设置必须在 1,000 到 1,000,000 行之间。请注意,你无法指定每批的最小日志行数;这意味着日志文件可能包含远少于该数量的行。

使用 cURL 的示例请求:

Required API token permissions

At least one of the following token permissions is required:
  • Logs Write
Create Logpush jobbash
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
	--request POST \
	--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
	--json '{
		"name": "<DOMAIN_NAME>",
		"destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
		"output_options": {
				"field_names": [
						"ClientIP",
						"ClientRequestHost",
						"ClientRequestMethod",
						"ClientRequestURI",
						"EdgeEndTimestamp",
						"EdgeResponseBytes",
						"EdgeResponseStatus",
						"EdgeStartTimestamp",
						"RayID"
				],
				"timestamp_format": "rfc3339"
		},
		"max_upload_bytes": 5000000,
		"max_upload_records": 1000,
		"dataset": "http_requests",
		"enabled": true
	}'

响应:

{
  "errors": [],
  "messages": [],
  "result": {
    "id": <JOB_ID>,
    "dataset": "http_requests",
    "kind": "",
    "max_upload_bytes": 5000000,
    "max_upload_records": 1000,
    "enabled": true,
    "name": "<DOMAIN_NAME>",
    "output_options": {
      "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"],
      "timestamp_format": "rfc3339"
    },
    "destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
    "last_complete": null,
    "last_error": null,
    "error_message": null
  },
  "success": true
}

请参阅 使用 cURL 管理 Logpush 以更新作业(包括启用和禁用)。

这篇文档对您有帮助吗?