跳转到内容
搜索文档

启用 Datadog

最后更新 查看 MarkdownAgent 设置

Cloudflare Logpush 支持通过 Cloudflare 仪表板或 API 将日志直接推送到 Datadog。

通过 Cloudflare 仪表板管理

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

    账户级别:Go to Logpush ↗

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

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

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

  1. 在 **Select a destination(选择目标)**中,选择 Datadog

  2. 输入或选择以下目标信息:

    • Datadog URL Endpoint(Datadog URL 端点),可以是以下之一。您可以在 Datadog API 参考文档 中找到它们的区别。
  • http-intake.logs.datadoghq.com/v1/input
  • http-intake.logs.datadoghq.com/api/v2/logs
  • Datadog API Key(Datadog API 密钥),可通过遵循这些步骤获取。

  • Service(服务)Hostname(主机名)Datadog ddsource field(Datadog ddsource 字段)ddtags 字段可以作为 URL 参数设置。更多信息请参阅 Datadog 文档中的 Logs(日志)部分。虽然这些参数是可选的,但它们对索引或处理日志很有用。请注意,这些参数的值可能包含特殊字符,应进行 URL 编码。

输入完目标详细信息后,选择 Continue(继续)

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

  2. 在下一步中,需要配置您的 Logpush 作业:

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

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

通过 API 管理

要设置 Datadog Logpush 作业:

  1. 使用适当的端点 URL 和身份验证参数创建作业。
  2. 启用作业以开始推送日志。

在尝试读取或配置 Logpush 任务之前,请确保已启用 Log Share 权限。更多信息请参阅角色部分

1. 创建作业

要创建作业,请向 Logpush jobs 端点发送 POST 请求,并包含以下字段:

  • name(可选)- 使用您的域名作为作业名称。

  • destination_conf - 由端点 URL、授权标头以及 Datadog 在以下字符串格式中支持的零个或多个可选参数组成的日志目标。

    • <DATADOG_ENDPOINT_URL>:Datadog HTTP 日志接入端点,可以是以下之一。您可以在 Datadog API 参考文档 中找到它们的区别。

    https://http-intake.logs.datadoghq.com/v1/input

    https://http-intake.logs.datadoghq.com/api/v2/logs

  • <DATADOG_API_KEY>:Datadog API 令牌可通过遵循这些步骤获取。例如,20e6d94e8c57924ad1be3c29bcaee0197d

  • ddsource:设置为 cloudflare

  • servicehostddtags:Datadog 允许的可选参数。

"datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=<SERVICE>&host=<HOST>&ddtags=<TAGS>"

使用 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": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>&ddsource=cloudflare&service=<SERVICE>&host=<HOST>&ddtags=<TAGS>",
		"output_options": {
				"field_names": [
						"ClientIP",
						"ClientRequestHost",
						"ClientRequestMethod",
						"ClientRequestURI",
						"EdgeEndTimestamp",
						"EdgeResponseBytes",
						"EdgeResponseStatus",
						"EdgeStartTimestamp",
						"RayID"
				],
				"timestamp_format": "rfc3339"
		},
		"dataset": "http_requests",
		"enabled": true
	}'

响应:

{
  "errors": [],
  "messages": [],
  "result": {
    "id": <JOB_ID>,
    "dataset": "http_requests",
    "kind": "",
    "enabled": true,
    "name": "<DOMAIN_NAME>",
    "output_options": {
      "field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"],
      "timestamp_format": "rfc3339"
    },
    "destination_conf": "datadog://<DATADOG_ENDPOINT_URL>?header_DD-API-KEY=<DATADOG_API_KEY>",
    "last_complete": null,
    "last_error": null,
    "error_message": null
  },
  "success": true
}

有关更新作业(包括启用和禁用),请参阅 Manage Logpush with cURL(使用 cURL 管理 Logpush)

限制

请注意以下 Logpush 发送限制,如 Datadog 文档 中所述。

通过 HTTP 将日志发送到您的 Datadog 平台。每个 HTTP 请求的限制如下:

  • 每个载荷的最大内容大小(未压缩):5 MB
  • 单条日志的最大大小:1 MB
  • 如果以数组形式发送多条日志,最大数组大小:1,000 个条目

这篇文档对您有帮助吗?