AWS Cloudwatch日志投递Opendistro EFK方案及Functionbeat兼容问题咨询
问题解决方案
你遇到的报错是Elastic官方非OSS版本Beat工具的许可证校验导致的:7.10及以上版本的Elastic官方发行版Beat内置了对端ES发行版校验逻辑,而Opendistro for Elasticsearch属于Apache 2.0许可的OSS分支,无法通过校验,因此触发报错。
兼容Opendistro 7.10.2的Functionbeat版本
存在可用版本,选择OSS版Functionbeat 7.10.2即可,该版本无许可证校验逻辑,适配Opendistro 7.10.2。
配置时需在functionbeat.yml的ES输出配置段添加以下参数关闭校验:
output.elasticsearch: hosts: ["你的Opendistro ES地址"] allow_oss: true # 如果开了身份认证,补充以下配置 username: "ES用户名" password: "ES密码" # 如果用了自签SSL证书,补充以下配置 ssl.verification_mode: "none"
其他可实现需求的方案
- 复用现有EFK组件Fluent Bit/Fluentd:你已在EKS部署EFK栈,直接给已有的Fluent Bit/Fluentd新增
cloudwatch_logs输入插件,拉取对应Cloudwatch日志组的日志后直接输出到Opendistro ES即可,无需额外部署新服务,兼容性最优。 - 使用OSS版Logstash:部署7.10.x版本的OSS版Logstash,配置
input.cloudwatch_logs插件拉取Cloudwatch日志,输出端直接对接Opendistro ES即可。 - 托管方案:使用AWS Kinesis Data Firehose,将Cloudwatch日志组的日志流投递到Firehose,再配置Firehose直接输出到你的Opendistro ES地址,无需自行维护采集进程,适合大规模日志场景。
内容的提问来源于stack exchange,提问作者merilstack
相关产品推荐
相关产品推荐

