AWS announces preview of AWS Interconnect - multicloud
AWS announces AWS Interconnect – multicloud (preview), providing simple, resilient, high-speed private connections to other cloud service providers. AWS Interconnect - multicloud is easy to configure and provides high-speed, resilient connectivity with dedicated bandwidth, enabling customers to interconnect AWS networking services such as AWS Transit Gateway, AWS Cloud WAN, and Amazon VPC to other cloud service providers with ease.
如何对在 CloudWatch 中按照订阅筛选器传输日志失败的问题进行故障排除?
我想对在 Amazon CloudWatch 中按照订阅筛选器传输日志失败的问题进行故障排除。
简短描述
当您开始流式传输时,请检查 CloudWatch Logs 指标以确保筛选模式正确且与传入的日志事件一致。以下是故障排除时需要查看的最常见指标:
- **ForwardedBytes:**转发到订阅目标的日志事件量(以压缩字节为单位)。
- **ForwardedLogEvents:**转发到订阅目标的日志事件的数量。
- **DeliveryErrors:**CloudWatch Logs 在将数据转发到订阅目标时收到错误的日志事件的数量。
- **DeliveryThrottling:**表明 CloudWatch Logs 在将数据转发到订阅目标时受到限制的日志事件的数量。
**注意:**如果目标服务收到可重试的错误,例如限制或服务错误,则 CloudWatch Logs 会尝试发送 24 小时的数据。如果错误无法重试,例如 AccessDenied 或 ResourceNotFound 错误,则 CloudWatch Logs 不会尝试进一步传输。
解决方法
根据您使用的目标服务,对按照订阅筛选器传输日志失败的问题进行故障排除。
Amazon Kinesis Data Streams
要解决按照订阅筛选器向 Amazon Kinesis Data Streams 传输日志失败的问题,请完成以下任务:
-
检查您的 Kinesis 数据流是否处于活动状态。要查看状态,请使用 Kinesis 控制台或 DescribeStream API 调用。
-
检查 CloudWatch 日志组和 Kinesis 数据流是否在同一 AWS 区域中。
-
检查与订阅筛选器关联的 AWS Identity and Access Management (IAM) 角色。确保 CloudWatch Logs 具有必要的权限,可以将数据存入您的数据流。以下是角色权限策略示例:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的 AWS 账户 ID,将 example-stream-name 替换为您的数据流名称。{ "Statement": [{ "Effect": "Allow", "Action": "kinesis:PutRecord", "Resource": "arn:aws:kinesis:example-region:example-account-id:stream/example-stream-name" }] } -
检查 IAM 角色是否配置了相应的信任策略。以下是信任策略示例:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的账户 ID。{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.region.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:logs:example-region:example-account-id:*" } } } } -
如果您有专用 Kinesis 数据流,请检查数据流指标以确认其正常运行。有关详细信息,请参阅使用 Amazon CloudWatch 监控 Amazon Kinesis Data Streams 服务。
-
如果您遇到跨账户日志记录问题,请参阅如何对 CloudWatch 中的跨账户日志记录问题进行故障排除?
Amazon Data Firehose
要解决按照订阅筛选器向 Amazon Data Firehose 传输日志失败的问题,请完成以下任务:
-
检查您的 Firehose 流是否处于活动状态。要查看状态,请使用 Kinesis 控制台或 DescribeDeliveryStream API 调用。如果您使用数据转换功能,请确保指定的 AWS Lambda 函数存在。
-
检查 Firehose 指标,以确认数据正在流入 Firehose。检查 IncomingBytes、IncomingRecords、DataReadFromKinesisStream.Bytes 和 DataReadFromKinesisStream.Records 等指标。
-
如果 Firehose 未接收数据,请检查 API 级别 CloudWatch 指标。问题可能源于上游。诸如 PutRecord 和 PutRecordBatch 之类的 API 会向 Firehose 发送数据,并且必须正确调用。
-
检查错误日志,以查看有关传输失败原因的详细信息。确保相关的 IAM 策略包含 logs:PutLogEvents 权限。以下是具有 logs:PutLogEvents 权限的 IAM 策略示例:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的账户 ID。{ "Sid": "", "Effect": "Allow", "Action": [ "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:example-region:example-account-id:log-group:/aws/kinesisfirehose/Delivery_Stream:log-stream:*", "arn:aws:logs:example-region:example-account-id:log-group:%FIREHOSE_POLICY_TEMPLATE_PLACEHOLDER%:log-stream:*" ] } -
检查与您的 Firehose 流关联的 IAM 角色是否具有允许 CloudWatch Logs 存放数据的相应权限。以下是权限策略示例:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的账户 ID,将 example-stream-name 替换为您的数据流名称。{ "Statement": [{ "Effect": "Allow", "Action": "firehose:PutRecord", "Resource": "arn:aws:firehose:example-region:example-account-id:deliverystream/example-stream-name" }] } -
检查 IAM 角色是否配置了相应的信任策略。以下是信任策略示例:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的账户 ID。{ "Statement": { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringLike": { "aws:SourceArn": "arn:aws:example-region:example-account-id:*" } } } } -
如果您遇到跨账户日志记录问题,请参阅如何对 CloudWatch 中的跨账户日志记录问题进行故障排除?
-
有关与不同目标相关的问题,请参阅 Amazon Data Firehose 故障排除。
Lambda
要解决按照订阅筛选器向 Lambda 传输日志失败的问题,请完成以下任务:
-
检查 Lambda 函数是否具有所需的基于资源的策略,以授予 CloudWatch Logs 运行您的函数的权限。以下是策略声明示例:
**注意:**将 example-region、example-account-id、example-lambda-function 和 example-log-name 替换为您的区域、账户 ID、Lambda 函数和日志名称。"Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:example-region:example-account-id:function:example-lambda-function", "Condition": { "StringEquals": { "AWS:SourceAccount": "example-account-id" }, "ArnLike": { "AWS:SourceArn": "arn:aws:logs:example-region:example-account-id:log-group:example-log-name:*" } } } ] -
使用以下角色策略检查 Lambda 函数的 IAM 角色是否与 lambda.amazonaws.com 存在信任关系:
"Statement": [ { "Effect": "Allow", "Principal": { "Service": "lambda.amazonaws.com" }, "Action": "sts:AssumeRole" } ]
OpenSearch Service
要解决按照订阅筛选器向 Amazon OpenSearch Service 传输日志失败的问题,请完成以下任务:
-
使用以下角色策略检查 Lambda 函数的 IAM 角色是否与 lambda.amazonaws.com 存在信任关系:
**注意:**将 example-region 替换为您的区域,将 example-account-id 替换为您的账户 ID,将 example-target-domain 替换为目标域的名称。{"Version": "2012-10-17", "Statement": [ { "Action": [ "es:*" ], "Effect": "Allow", "Resource": "arn:aws:es:example-region:exampleaccount-id:domain/example-target-domain/*" } ] } -
如果您遇到跨账户日志记录问题,请参阅如何对 CloudWatch 中的跨账户日志记录问题进行故障排除?
-
要解决包含 OpenSearch Service 订阅筛选器的 CloudWatch Logs 问题,请参阅如何对 CloudWatch Logs 进行故障排除,使其流式传输到我的 OpenSearch Service 域?
相关信息
如何使用 CloudWatch 控制台创建、配置 Kinesis 订阅筛选器并对其进行故障排除?
- 语言
- 中文 (简体)

相关内容
AWS 官方已更新 1 年前