Elastic-APM连接ES OSS 7.10.2报[_license]无效索引名错误如何解决
问题根因
报错为版本不兼容导致的预期错误:Elastic自7.11版本起全线产品停止兼容OSS发行版,7.13.0版本的APM Server启动时会主动调用Elasticsearch的/_license系统接口校验授权,而你使用的7.10.2 OSS版Elasticsearch没有内置该接口,会将_license识别为普通索引名,触发Elasticsearch「普通索引名不能以下划线开头」的内置规则,因此返回400错误。
排查步骤
- 先确认当前各组件版本,执行以下命令核对:
elasticsearch --version kibana --version apm-server version
Elastic Stack要求所有组件的主版本+次版本完全一致才能保证稳定兼容,你使用的ES、Kibana均为7.10.2,必须搭配同版本的7.10.2 APM Server OSS版。
- 执行curl命令直接调用ES接口验证问题根源:
curl http://localhost:9200/_license
如果返回与报错一致的400响应,即可排除配置错误问题,确认是版本兼容性导致。
Homebrew安装指定版本APM Server OSS操作步骤
- 先卸载当前已安装的高版本apm-server-oss:
brew uninstall apm-server-oss
- 检索Homebrew官方仓库的历史提交记录,找到7.10.2版本对应的
apm-server-oss.rb公式文件,保存到本地后执行本地安装:
brew install ./本地保存路径/apm-server-oss.rb
- 安装完成后执行版本锁定,避免后续
brew upgrade操作自动升级该组件:
brew pin apm-server-oss
- 验证版本是否正确:
apm-server version
确认返回7.10.2版本后,再执行apm-server test output即可验证连通性正常。
内容的提问来源于stack exchange,提问作者phil
相关产品推荐
相关产品推荐

