AWSKinesisDataFirehose目标与数据格式转换详解
立即解锁
发布时间: 2025-08-30 01:42:07 阅读量: 9 订阅数: 15 AIGC 

### AWS Kinesis Data Firehose 目标与数据格式转换详解
#### 1. 引言
AWS Kinesis Data Firehose(KDF)是一项强大的数据传输服务,它可以将数据流轻松地发送到各种目的地,如 Amazon Elasticsearch Service(AES)、Splunk、HTTP 端点等。同时,KDF 还支持特定的数据格式转换,为大数据存储和查询提供了便利。本文将详细介绍 KDF 的不同目标设置以及数据格式转换的相关内容。
#### 2. 跨账户向 AES 域交付记录
在多 AWS 账户设置中,如果希望在一个账户中使用 AES 集中进行搜索和数据分析,而在多个其他账户中使用 KDF 进行数据摄取和交付,那么跨账户向 AES 域交付记录是非常有益的。要创建交付流并指定 AES 集群端点,需要使用 AWS CLI 或 KDF API,因为 AWS 控制台仅允许从同一账户和同一区域的预填充域下拉列表中进行选择。
#### 3. Splunk 目标
##### 3.1 Splunk 简介
Splunk 是一个广泛应用于大小企业的软件平台,用于从各种数据源(如网站、机器、日志、设备、传感器和业务应用程序)收集、搜索、分析和可视化大量数据。KDF 将 Splunk 作为目标,方便那些将搜索和分析平台标准化为 Splunk 的企业将来自各种数据源以及与 KDF 集成的许多 AWS 服务的数据发送到 Splunk 进行轻松分析。
##### 3.2 使用 Splunk 作为目标的前提条件
- 安装适用于 Amazon Kinesis Firehose 的 Splunk 附加组件。
- 设置并启用 HTTP 事件收集器(HEC)。
- 创建启用索引器确认的 HEC 令牌。
HEC 提供了一种通过 HTTP 或 HTTPS 协议将事件和数据发送到 Splunk 的机制,无需设置 Splunk 转发器。HEC 令牌是用于验证连接到 Splunk 并交付数据的客户端的手段,每个令牌是一个 128 位、32 个字符的全局唯一标识符(GUID)。
##### 3.3 缓冲
KDF 会将传入的记录连接起来并进行缓冲。对于 Splunk 目标,缓冲区大小和缓冲间隔值分别设置为 5 MB 和 60 秒,且不可配置。如果需要在数据中使用记录分隔符,需要将其添加到发送给 KDF 的记录中,并确保 Splunk 能够解析数据。
##### 3.4 数据转换和数据格式转换
支持使用 Lambda 转换进行数据转换,但不支持数据格式转换。数据转换的配置与之前描述的类似。
##### 3.5 KDF 为 Splunk 部署模式
- 对于在 VPC 中运行的 Splunk 安装,Splunk 建议使用面向索引器的弹性负载均衡器(ELB),该负载均衡器暴露给互联网以将流量代理到索引器。KDF 仅支持启用基于持续时间的粘性会话且禁用 cookie 过期的经典负载均衡器(CLB),此时 ELB 域名系统(DNS)名称即为 Splunk 集群端点。
- 如果没有 ELB 并直接从 VPC 内将一个或多个 HEC 端点暴露给 KDF,需要确保附加了公共 IP 地址并且它们位于公共子网中,以便可以从互联网访问。此外,附加的安全组应具有入站规则,以提供对 KDF IP 地址的访问。
##### 3.6 交付失败处理
当 KDF 向 Splunk 发送数据时,会启动确认计时器。如果 KDF 收到交付错误或在确认超时时间内未收到确认,它将重试请求并启动重试持续时间计数器。重试和 HEC 确认超时持续时间可以在 Splunk 目标配置中进行配置,重试持续时间为 0 到 7200 秒(0 到 2 小时),HEC 确认超时持续时间为 180 到 600 秒(3 到 10 分钟)。如果在重试持续时间到期后仍无法交付,数据将被发送到配置的备份 S3 存储桶中的 splunk - failed 文件夹。
##### 3.7 Splunk 目标配置
要在 KDF 中设置 Splunk 目标,需要以下信息:
- Splunk 集群端点:需要可公开访问,有关配置和检索端点的更多信息,请参阅 [文档](https://docs.splunk.com/Documentation/AddOns/released/Firehose/ConfigureFirehose)。
- Splunk 端点类型:可用值为 RAW(最常见的格式,可解析大多数格式)或 Event(需要特定的 JSON 格式)。使用 Event 时,需要使用 Lambda 转换将传入事件正确格式化为正确的 JSON 格式。
- 身份验证令牌:即 KDF 用于与 HEC 进行身份验证的 HEC 令牌。
- HEC 确认超时:HEC 确认的超时时间。
- 重试持续时间:KDF 在交付失败或未收到 Splunk HEC 确认时重试发送数据的时间段(以秒为单位)。
##### 3.8 安全
对于 Splunk 目标,KDF 需要访问 HEC,还需要访问 S3 存储桶以写入和读取所有或失败的记录(取决于交付流的配置),如果启用了错误日志记录,还需要访问 CloudWatch 日志,如果启用了 Lambda 转换,需要访问 Lambda 函数,如果为 S3 启用了加密,需要访问指定的 KMS 密钥。这些访问权限通过在创建交付流时指定的 IAM 角色提供,IAM 策略与 S3 目标的策略类似。
#### 4. HTTP 端点目标
##### 4.1 HTTP 端点目标概述
HTTP 端点目标使 KDF 能够通过 HTTPS 将数据发送到任何可访问的 HTTP 端点,该端点可以位于不同的 AWS 账户、不同的 AWS 区域、企业数据中心或其他任何地方。这一功能为数据摄取和处理提供了极大的灵活性,还可以通过 Amazon API Gateway 与许多其他 AWS 服务集成,如 Amazon DynamoDB 和 Amazon RDS。此外,一些第三方供应商也可以基于 HTTP
0
0
复制全文
相关推荐










