繁体   English   中英

如何从 Kinesis firehose 将 stream 数据传输到自托管 elasticsearch 集群?

[英]How can I stream data to self hosted elasticsearch cluster from Kinesis firehose?

我在 AWS EKS 上部署了一个 ES 集群,它可以通过应用程序负载均衡器访问。 我在集群中创建了一个索引。 我将部署 Kinesis firehose 以使用http_endpoint作为 stream 数据到 ES 集群的目标。

但是如何配置 http 动词 firehose 用于将数据放入 ES 端点的内容? 例如,我的 ES 端点是http://xxxx.com/myindex ,我希望 firehose 向该端点发送POST请求。 如何将其配置为使用POST而不是PUT

不幸的是,Kinesis Firehose 无法让您对 HTTP 请求的外观进行太多控制,因为 HTTP 端点目标只有少数配置选项

Kinesis 根据自己的规范发送 HTTP 请求,并期望响应以特定方式查看。 您可以在此处找到规范。

如您所见,此规范与 Elasticsearch 的索引 API 不兼容。 附带说明一下,出于性能原因,您可能希望使用 Bulk API,因为 Kinesis 将缓冲事件并在一个请求中传递多个事件。

因此,您很可能需要 Kinesis 和 Elasticsearch 集群之间的一些东西来处理 HTTP 请求和响应方面的差异。 例如,这可能是一个简单的 nginx 代理,或者它可能是类似于 API 网关,它调用 Lambda ZC1C11AB4068E68A44478。 然后,此 Lambda function 向您的索引的批量 API 发送请求,并根据 Z29DC986Z6265F78 规范为 Kinesis 构造响应。

我希望这会有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM