Solr 8.4.1无法更新solr-exporter配置找不到目录解决方法
Solr 8.4.1确实内置了Prometheus Exporter组件,找不到对应目录是因为该组件默认存放在独立的contrib模块路径,而非核心服务的server目录下,按以下步骤配置即可:
第一步:定位Exporter目录
进入Solr安装根目录,默认Exporter路径为./contrib/prometheus-exporter/,目录下包含bin、conf、lib三个子文件夹,其中./conf/solr-exporter-config.xml就是你要修改的采集规则配置文件。
如果你是通过yum、apt等系统包管理器安装的Solr,大概率默认未安装contrib扩展组件,直接下载同版本Solr完整发行包,把包内
contrib/prometheus-exporter整个目录拷贝到当前Solr安装路径的contrib文件夹下,将文件权限修改为与Solr运行用户一致即可。
第二步:适配业务配置
直接编辑./contrib/prometheus-exporter/conf/solr-exporter-config.xml,根据业务需求增删采集规则即可:
- 可以新增自定义Core的查询耗时、索引大小、缓存命中率等业务关心的指标采集规则
- 可以删掉不需要的冗余采集项,降低exporter拉取指标时对Solr核心服务的性能影响
第三步:启动Exporter进程
Exporter是独立于Solr核心的Java进程,默认监听9854端口提供Prometheus指标接口,启动命令参考:
# 进入exporter执行目录 cd /你的Solr安装路径/contrib/prometheus-exporter/bin # 参数说明:-p 监听端口 -b Solr服务根地址 -f 配置文件路径 -n 指标采集线程数 ./solr-exporter -p 9854 -b http://127.0.0.1:8983/solr -f ../conf/solr-exporter-config.xml -n 8
如果是SolrCloud集群模式,把-b参数换成-z指定ZooKeeper连接地址即可;如果Solr开启了身份认证,在启动命令前追加对应的认证JVM参数就行。
第四步:验证配置生效
启动后本地执行curl http://127.0.0.1:9854/metrics,如果能正常返回文本格式的Prometheus指标数据,说明配置无误,之后直接在Prometheus的抓取配置中添加该exporter地址即可完成接入。
注意事项
- 不要把Exporter的jar包或配置文件放到Solr的
./server/目录下,会引发类加载冲突,导致Solr核心服务或Exporter启动失败 - 生产环境建议为Exporter配置systemd托管服务,不要直接前台运行,避免进程异常退出后监控中断
- 采集线程数不要设置过大,建议不超过CPU核心数的1/2,避免指标拉取占用过多Solr服务资源
内容的提问来源于stack exchange,提问作者Eli Johnes

