简体   繁体   中英

How does kinesis firehose stream data to self managed elasticsearch?

I am hosting Elasticsearch cluster in EKS and I'd like to stream all cloudwatch groups to this Elasticsearch cluster via Kinesis Firehose. But AWS Kinesis firehose doesn't support stream data to Elasticsearch cluster other than AWS hosted ES.

What is the best way to stream data to self hosted ES cluster?

I think the best way is by means of a lambda function for Firehose . For this to work, you would have to choose supported destination, eg S3. The function normally is used to transform the records, but you can program what ever logic you want, including uploading records to a custom ES.

If you would use Python, the function could use elasticsearch layer to connect with your custom cluster and inject records into it. elasticsearch is python interface to ES and it will work with any ES cluster.

An alternative is to use HTTP Endpoint for Your Destination . In this scenario, you could have maybe small instance on ec2 container which would get the records from firehose, and then push them to ES. Just like before, elasticsearch library could be used with Python.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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