MetricBeat OSS连接模拟Elasticsearch7的OpenSearch失败求助
问题排查与解决方案
问题根源
错误日志明确显示MetricBeat尝试访问_license索引,但OpenSearch禁止创建以下划线_开头的自定义索引(系统内置索引除外),同时OpenSearch并没有Elasticsearch的_license端点,导致连接验证失败。
解决方案
1. 修改MetricBeat配置,禁用License检查
在output.elasticsearch区块中添加license.check.enabled: false,阻止MetricBeat尝试访问_license端点:
output.elasticsearch: # Array of hosts to connect to. hosts: ["10.29.165.222:9200"] protocol: "http" preset: balanced username: "admin" password: "admin" # 新增:禁用license检查 license.check.enabled: false
2. 确认OpenSearch兼容性配置
确保opensearch.yml中已正确设置模拟ES版本的参数(当前curl返回版本已正确,可再次确认):
compatibility.override_main_response_version: true compatibility.override_version_string: "7.10.2"
修改后重启OpenSearch服务。
3. 清理MetricBeat残留资源(可选)
如果之前MetricBeat尝试创建过无效模板,可手动清理:
# 删除可能存在的metricbeat模板 curl -X DELETE "http://10.29.165.222:9200/_template/metricbeat-*" -u admin:admin
4. 重启MetricBeat服务
sudo systemctl restart metricbeat
验证连接
查看MetricBeat实时日志确认状态:
sudo journalctl -u metricbeat -f
或检查OpenSearch中是否生成MetricBeat索引:
curl -X GET "http://10.29.165.222:9200/_cat/indices/metricbeat-*" -u admin:admin
内容的提问来源于stack exchange,提问作者Ragnar
相关产品推荐
相关产品推荐

