View a markdown version of this page

通过 HTTP 端点记录摄取 - Amazon CloudWatch 日志
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过 HTTP 端点记录摄取

Amazon CloudWatch Logs 提供了 HTTP 终端节点,允许您使用简单的 HTTP POST 请求将 CloudWatch 日志直接发送到日志。这些端点支持 Sigv4 和持有者令牌身份验证。

重要

我们建议对所有可以集成 S Amazon DK 的生产工作负载使用 Sigv4 身份验证。Sigv4 使用短期凭证并提供最强的安全状态。不记名令牌(API 密钥)身份验证适用于 Sigv4 不可行的场景,例如不支持 SDK 集成的第三方日志转发器。 Amazon 有关更多信息,请参阅 IAM 用户指南中的长期访问密钥替代方案

CloudWatch 日志支持以下 HTTP 摄取终端节点:

端点 路径 Content-Type Format
OpenTelemetry Logs /v1/logs application/jsonapplication/x-protobuf OTLP JSON 或 Protobuf
HLC Logs /services/collector/event application/json HLC 格式
ND-JSON Logs /ingest/bulk application/jsonapplication/x-ndjson 换行符分隔的 JSON
Structured JSON Logs /ingest/json application/json JSON 对象或数组

常见行为

所有 HTTP 摄取端点都具有以下行为:

身份验证

所有端点都支持 Sigv4 和持有者令牌身份验证:

  • Sigv4(推荐)— 标准 Amazon 签名版本 4 签名。只要您的应用程序或基础设施支持 S Amazon DK 或可以签署请求,就使用 Sigv4。Sigv4 使用短期凭证,是最安全的身份验证方法。

  • 不记名令牌-使用Authorization: Bearer <ACWL token>标题。

    • 令牌必须是有效的 ACWL 持有者令牌。有关设置说明,请参阅设置不记名令牌身份验证

    • 需要logs:PutLogEventslogs:CallWithBearerToken IAM 权限。

日志组和日志流

  • 通过标题提供:x-aws-log-groupx-aws-log-stream

  • 除了 OTLP 之外,所有端点也?logGroup=<name>&logStream=<name>都支持查询参数。

  • 不能对同一个参数同时使用查询参数和标头。

  • 日志组和日志流都是必需的。

响应

  • 成功:HTTP 200用身体 {}

  • 验证错误:HTTP 400

  • 身份验证失败:HTTP 401

HTTP 摄取端点的比较

功能 HLC 日志 ND-JSON 日志 结构 JSON 日志 OpenTelemetry 日志
路径 /services/collector/event /ingest/bulk /ingest/json /v1/logs
Content-Type application/json application/jsonapplication/x-ndjson application/json application/jsonapplication/x-protobuf
时间戳字段 "time"(秒) "timestamp"(毫秒) "timestamp"(毫秒) "timeUnixNano"(纳秒)
必填字段 "event" OTLP 结构 () "resourceLogs"
部分成功响应
查询参数支持 支持 否(仅限标题)
实体元数据 支持
接受基元
基于行的解析
Protobuf 支持
重试后标题

选择终端节点

  • 使用 HLC 格式? 使用 HLC 日志。您现有的 HLC 负载只需最少的更改即可运行。

  • 直播 line-by-line日志? 使用 ND-JSON 日志。最适合每行发出一个事件的日志管道。最灵活 — 接受任何 JSON 值类型。

  • 正在发送结构化的 JSON 有效负载? 使用结构化 JSON 日志。最适合生成格式良好的 JSON 对象或数组的应用程序。

  • 已经在使用了 OpenTelemetry? 使用 OpenTelemetry 日志。接受 OTLP JSON 或 Protobuf 格式,并支持带有重试语义的部分成功响应。