本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 HTTP 端点记录摄取
Amazon CloudWatch Logs 提供了 HTTP 终端节点,允许您使用简单的 HTTP POST 请求将 CloudWatch 日志直接发送到日志。这些端点支持 Sigv4 和持有者令牌身份验证。
重要
我们建议对所有可以集成 S AWS DK 的生产工作负载使用 Sigv4 身份验证。Sigv4 使用短期凭证并提供最强的安全状态。不记名令牌(API 密钥)身份验证适用于 Sigv4 不可行的场景,例如不支持 SDK 集成的第三方日志转发器。 AWS 有关更多信息,请参阅 IAM 用户指南中的长期访问密钥替代方案。
CloudWatch 日志支持以下 HTTP 摄取终端节点:
| 端点 | 路径 | Content-Type | Format |
|---|---|---|---|
| OpenTelemetry Logs | /v1/logs |
application/json 或 application/x-protobuf |
OTLP JSON 或 Protobuf |
| HLC Logs | /services/collector/event |
application/json |
HLC 格式 |
| ND-JSON Logs | /ingest/bulk |
application/json 或 application/x-ndjson |
换行符分隔的 JSON |
| Structured JSON Logs | /ingest/json |
application/json |
JSON 对象或数组 |
常见行为
所有 HTTP 摄取端点都具有以下行为:
身份验证
所有端点都支持 Sigv4 和持有者令牌身份验证:
Sigv4(推荐)— 标准 AWS 签名版本 4 签名。只要您的应用程序或基础设施支持 S AWS DK 或可以签署请求,就使用 Sigv4。Sigv4 使用短期凭证,是最安全的身份验证方法。
-
不记名令牌-使用
Authorization: Bearer <ACWL token>标题。令牌必须是有效的 ACWL 持有者令牌。有关设置说明,请参阅设置不记名令牌身份验证。
需要
logs:PutLogEvents和logs:CallWithBearerTokenIAM 权限。
日志组和日志流
通过标题提供:
x-aws-log-group和x-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/json 或 application/x-ndjson |
application/json |
application/json 或 application/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 格式,并支持带有重试语义的部分成功响应。