启用Basic Authentication后Solr Prometheus Exporter连接失败求助
解决Solr启用Basic Authentication后Prometheus Exporter无法连接的问题
核心原因
启用Basic Auth后,Exporter请求Solr时未携带认证凭证,导致被Solr拒绝访问,抛出无具体信息的RemoteSolrException。
解决方案
1. 给Solr Exporter添加认证参数
方式一:命令行直接指定
修改启动命令,添加-u参数传入用户名和密码(格式为用户名:密码):
./bin/solr-exporter -p 9309 -b http://localhost:8309/solr -f ./conf/solr-exporter-config.xml -u solr:Solr123
替换solr:Solr123为你实际的Solr Basic Auth用户名和密码。
方式二:通过配置文件指定
编辑solr-exporter-config.xml,在<solrClient>节点下添加认证配置:
<solrClient> <authConfig> <basicAuth> <username>solr</username> <password>Solr123</password> </basicAuth> </authConfig> </solrClient>
保存后重启Exporter即可。
2. 确保Solr用户具备所需权限
Exporter需要访问Solr的核心信息、metrics端点等,确保你的Basic Auth用户拥有以下权限:
- 访问
/solr/admin/cores的权限 - 访问各核心的
/admin/ping和/admin/metrics端点的权限
可以在Solr的security.json中配置对应的权限规则,比如:
{ "authorization": { "permissions": [ { "name": "metrics-read", "path": "/admin/metrics", "method": "GET" }, { "name": "cores-read", "path": "/admin/cores", "method": "GET" }, { "name": "ping-read", "path": "/admin/ping", "method": "GET" } ], "role-permissions": [ { "role": "admin", "permission": "*" } ], "user-role": { "solr": ["admin"] } } }
3. 验证配置正确性
- 手动用curl测试认证是否有效:
curl -u solr:Solr123 http://localhost:8309/solr/admin/cores
如果能正常返回核心信息,说明认证凭证和权限没问题。
- 检查Exporter启动日志,确认没有认证相关的报错。
错误排查补充
如果添加认证后仍报错,可尝试:
- 确认Solr的Basic Auth配置正确,
security.json已加载生效 - 查看Solr的访问日志,确认Exporter的请求是否被拒绝,以及拒绝的具体原因
内容的提问来源于stack exchange,提问作者Amr Elkady
相关产品推荐
相关产品推荐

