跳至内容

如何使用 CloudWatch Logs 创建 Kinesis 数据流的订阅筛选条件?

2 分钟阅读
0

我想使用 Amazon CloudWatch Logs 来创建订阅筛选条件,以便将我的日志流式传输到 Amazon Kinesis 数据流。

解决方法

为同一账户中的 Kinesis 数据流配置订阅筛选条件

如果您还没有,请创建 Kinesis 数据流

**注意:**CloudWatch 日志组的 AWS 区域与 Kinesis 数据流目标必须相同。

使用自定义信任策略创建 IAM 策略和角色

AWS Identity and Access Management (IAM) 角色必须拥有 logs.yourregion.amazonaws.com 的信任权限,并允许权限 kinesis:PutRecord

使用自定义信任策略创建 IAM 角色。在 Custom trust policy(自定义信任策略)部分中,输入以下信任策略:

{  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT_ID:*"
      }
    }
  }
}

**注意:**请将 REGION 替换为您的区域,并将 ACCOUNT_ID 替换为您的 AWS 账户 ID。

Step 2: Add permissions(步骤 2:添加权限)部分中,选择 Edit(编辑),然后将以下策略语句添加到自定义策略中:

{  "Statement": {    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT_ID:stream/STREAM_NAME"
  }
}

**注意:**请将 REGION 替换为您的区域,将 ACCOUNT_ID 替换为您的 AWS 账户 ID,并将 STREAM_NAME 替换为您的流名称。

上述策略特定于 Kinesis 数据流。有关 Amazon Data Firehose 权限的更多信息,请参阅授予对 Firehose 资源的访问权限

创建订阅筛选条件

完成以下步骤:

  1. 打开 CloudWatch 控制台
  2. 在导航窗格中,选择 Log Management(日志管理)。
  3. 选择您的日志组
  4. 选择 Actions(操作),然后选择 Subscription Filters(订阅筛选条件)。
  5. 要配置目标,请选择 Create Kinesis subscription filter(创建 Kinesis 订阅筛选条件)。
  6. 选择 Current account(当前账户)。
  7. 从下拉列表中选择您的 Kinesis 数据流。
  8. 选择您创建的 IAM 角色。
  9. 选择分配方法。有关分配的更多信息,请参阅概念
  10. Subscription filter pattern(订阅筛选模式)部分中,定义 filter pattern(筛选模式)。
  11. 为订阅筛选条件输入名称。
  12. 使用现有的日志事件数据验证您的模式
  13. 选择 Start Streaming(开始流式传输)。

要验证您的数据流是否有效,请查看以下订阅筛选条件指标

  • ForwardedBytes: 转发到订阅目标的日志事件量(以压缩字节为单位)。
  • ForwardedLogEvents: 转发到订阅目标的日志事件的数量。

要检查将日志事件流式传输到目标时是否出现错误,请查看以下指标:

  • DeliveryErrors: CloudWatch Logs 在将数据转发到订阅目标时收到错误的日志事件的数量。
  • DeliveryThrottling: 显示 CloudWatch Logs 在将数据转发到订阅目标时遭遇节流的日志事件的数量。

为其他账户中的 Kinesis 数据流配置订阅筛选条件

**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

创建目标

在数据接收者的账户中,创建一个目标

创建订阅筛选条件

在源账户中,完成以下步骤:

  1. 如果您在 AWS Organizations 中使用组织,则创建一个 IAM 角色。否则,请继续执行步骤 2。
  2. 添加或验证跨账户目标的 IAM 权限
  3. 创建日志组向CloudWatch Logs 发送事件
  4. 创建订阅筛选条件

要验证您的数据流是否有效,请查看以下订阅筛选条件指标

  • ForwardedBytes: 转发到订阅目标的日志事件量(以压缩字节为单位)。
  • ForwardedLogEvents: 转发到订阅目标的日志事件的数量。

要检查将日志事件流式传输到目标时是否出现错误,请查看以下指标:

  • DeliveryErrors: CloudWatch Logs 在将数据转发到订阅目标时收到错误的日志事件的数量。
  • DeliveryThrottling: 显示 CloudWatch Logs 在将数据转发到订阅目标时遭遇节流的日志事件的数量。

如果您有专用 Kinesis 数据流,请检查数据流指标以确认其功能。

有关跨账户日志记录的问题,请参阅对 CloudWatch 跨账户设置问题进行故障排除

相关信息

创建 IAM 策略和用户

使用 Amazon Kinesis 数据流进行跨账户跨 AWS 区域的日志数据共享

AWS 官方已更新 3 个月前