【发布时间】:2017-10-16 08:05:02
【问题描述】:
我正在尝试使用 Kinesis Firehose 将 AWS cloudwatch 日志流式传输到 Amazon ES。但是,我在 ES 错误日志中不断收到以下错误。有什么想法吗?
无法将数据解码为 UTF-8,如 {"attemptsMade":0,"arrivalTimestamp":1494910856979,"errorCode":"InvalidEncodingException","errorMessage":"数据可能不能被解码为UTF-8" , “attemptEndingTimestamp”:1494911157268 “RAWDATA”: “H4S IAAAAAAAAADWO0QqCMBi FX2XsWiJBQ70LUW8sIYU uQmLpnxvpJttMQnz3Ztr lxzmcQj0RXNBWNMkErmk SKoTfZSrmWQLoV1fBQlW S9ZoLHrNUgFQ5u5a8XvY HrBSfM6rWumdHQpDNjtu M7vr333IPnOtZfbxG4pm jTQ5tegEIK1YvxBlEgra ZIPFFtlhgnyzOKmQQqFO zwXM5fj / HcTewAAAA =”, "esDocumentId":null
【问题讨论】:
-
您是否有理由不使用预构建的 lambda 进行流式传输并改用 Firehose?
-
嘿,我想同时流式传输到 s3 和 ES,并且正在使用 terraform 来自动化它。我没有找到使用 terraform 和使用控制台上可用的“Stream to ES”方法来自动化的方法。如果你有,请告诉我。
-
如果我必须使用 terraform(我不会因为我已经使用 Serverless),我会从模板的 aws 控制台创建 lambda 函数,然后将函数代码复制为 [terraform lambda][1 ] 并通过发布到 s3 来扩展它,然后使用 [cloudwatch logs subscription filter][2] 作为您刚刚创建的 lambda 的源。虽然我不熟悉 Terraform,所以这主要是我的猜测。 [1]:terraform.io/docs/providers/aws/r/lambda_function.html [2]:terraform.io/docs/providers/aws/r/…
-
如果这对您有意义,我可以发布上一条评论作为答案。我看到 cmets 部分弄乱了链接。
-
感谢您的投入,亚当。
标签: amazon-web-services elasticsearch amazon-kinesis-firehose