Amazon Kinesis Data Firehose
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

步骤 2:创建 Kinesis Data Firehose 传输流并将 Splunk 作为目标

Kinesis Data Firehose 教程的这一部分中,您创建一个 Amazon Kinesis Data Firehose 传输流以从 Amazon CloudWatch 接收日志数据并将该数据传输到 Splunk。

CloudWatch 发送到传输流的日志采用压缩格式。但是,Kinesis Data Firehose 无法将压缩的日志发送到 Splunk。因此,在以下过程中创建传输流时,您启用数据转换并将 AWS Lambda 函数配置为解压缩日志数据。Kinesis Data Firehose 然后将未压缩的数据发送到 Splunk。

创建 Kinesis Data Firehose 传输流 并将 Splunk 作为目标

  1. 通过以下网址打开 Kinesis Data Firehose 控制台:https://console.amazonaws.cn/firehose/

  2. 选择 Create delivery stream (创建传输流)

  3. 对于传输流的名称,输入 VPCtoSplunkStream。然后滚动到底部,选择 Next (下一步)

  4. 对于 Record transformation* (记录转换*),选择已启用

  5. 对于 Lambda function* (Lambda 函数*),选择 Create new (新建)

  6. Choose Lambda blueprint (选择 Lambda 蓝图) 窗格中,向下滚动并选择 Kinesis Firehose Cloudwatch Logs Processor。此操作将打开 AWS Lambda 控制台。

    
                        显示 Kinesis Firehose Cloudwatch Logs Processor 蓝图的 Lambda 蓝图窗口的屏幕截图。
  7. 在 AWS Lambda 控制台上,对于函数名称,输入 VPCtoSplunkLambda

  8. 对于 Role (角色),在下拉列表中选择 Create a custom role (创建自定义角色)。此操作将打开 AWS Identity and Access Management (IAM) 控制台。

  9. 在 IAM 控制台的 IAM Role (IAM 角色) 列表中,选择 Create a new IAM Role (创建新的 IAM 角色)

  10. 对于 Role Name (角色名称),输入 VPCtoSplunkLambdaRole

  11. 选择查看策略文档旁边的箭头以展开策略。

    
                        显示查看和修改策略文档的箭头的屏幕截图。
  12. 选择策略右侧的 Edit (编辑),然后选择 Ok (确定)

  13. 在策略字段中,删除现有策略。然后粘贴以下策略。请务必将 your-regionyour-aws-account-id 占位符替换为您的 AWS 区域代码和账户 ID。请勿在账户 ID 中包括任何连字符或短划线。有关 AWS 区域代码的列表,请参阅 AWS 区域和终端节点

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:GetLogEvents" ], "Resource": "arn:aws:logs:*:*:*" }, { "Effect": "Allow", "Action": [ "firehose:PutRecordBatch" ], "Resource": [ "arn:aws:firehose:your-region:your-aws-account-id:deliverystream/VPCtoSplunkStream" ] } ] }

    此策略允许 Lambda 函数通过调用 PutRecordBatch 操作来将数据放回传输流中。此步骤是必需的,因为 Lambda 函数在 Kinesis Data Firehose 每次调用它时最多只能返回 6 MiB 数据。如果未压缩的数据大小超过 6 MiB,则函数会调用 PutRecordBatch 来将一些数据放回传输流中以供将来处理。

  14. 选择 Allow。这将使您返回 AWS Lambda 控制台。

  15. 向下滚动并选择创建函数

  16. 在 Lambda 函数窗格中,向下滚动到 Basic settings (基本设置) 部分并将超时增至 3 分钟。

  17. 向上滚动并选择保存

  18. 返回到 Choose Lambda blueprint (选择 Lambda 蓝图) 对话框,选择 Close (关闭)

  19. 在传输流创建页面上的 Transform source records with AWS Lambda (使用 AWS Lambda 转换源记录) 部分下,选择 refresh (刷新) 按钮。然后在函数列表中选择 VPCtoSplunkLambda

  20. 向下滚动并选择下一步

  21. 对于目标*,选择 Splunk

  22. 有关 Splunk cluster endpoint (Splunk 集群终端节点),请参阅 Splunk 文档中的配置 Amazon Kinesis Firehose 以将数据发送到 Splunk 平台中的信息。

  23. Splunk endpoint type (Splunk 终端节点类型) 保留设置为 Raw endpoint (原始终端节点)

  24. 输入您的 Splunk HTTP 事件收集器 (HEC) 令牌的值(不是名称)。

  25. 对于 S3 backup mode* (S3 备份模式*),请选择 Backup all events (备份所有事件)

  26. 选择现有 Amazon S3 存储桶(或者根据需要创建一个新的存储桶),然后选择 Next (下一步)

  27. Configure settings (配置设置) 页面上,向下滚动到 IAM role (IAM 角色) 部分,然后选择 Create new or choose (新建或选择) 按钮。

  28. IAM role (IAM 角色) 列表中,选择 Create a new IAM role (创建新的 IAM 角色)。对于 Role Name (角色名称),输入 VPCtoSplunkLambdaFirehoseRole,然后选择 Allow (允许)

  29. 选择 Next (下一步),然后检查您为传输流选择的配置。然后选择 Create delivery stream (创建传输流)

继续执行步骤 3:将数据从 Amazon CloudWatch 发送到 Kinesis Data Firehose