在 docker 图像中执行命令以启动 solr 导出器

Execute command into docker image to launch solr exporter

我想在 solr docker 图像中执行一个命令来导出指标。

https://lucene.apache.org/solr/guide/7_3/monitoring-solr-with-prometheus-and-grafana.html

我试过这个:

    command:
      - solr-demo
      - sh ./bin/solr-exporter -p 9854 -b http://localhost:8983/solr

这是完整的 docker-compose

version: '3.7'
volumes:
    solr_data: {}
services:
  solr:
    image: solr:8
    ports:
     - "8983:8983"
    volumes:
      - solr_data:/var/solr
    command:
      - solr-demo

我没有任何错误,但没有执行启动导出器的命令。

Prometheus 解决此问题的方法是 运行 将 solr-exporter 作为单独的 docker 容器或 side-car,并让它抓取 solr 服务器。

version: '3.7'
volumes:
    solr_data: {}
services:
  solr:
    image: solr:8
    ports:
     - "8983:8983"
    volumes:
      - solr_data:/var/solr
    command:
      - solr-demo
  solr-exporter:
    image: solr:8
    ports:
     - "9854:9854"
    entrypoint:
      - "/opt/solr-8.2.0/contrib/prometheus-exporter/bin/solr-exporter"
      - "-p"
      - "9854"
      - "-b"
      - "http://solr:8983/solr"
      - "-f"
      - "/opt/solr-8.2.0/contrib/prometheus-exporter/conf/solr-exporter-config.xml"
      - "-n"
      - "8"

使用 "http://solr:8983/solr" 作为导出器的目标使其抓取名为 solr 的容器。

以上导出器命令行是从 docs here 中逐字提取的,您可能需要根据需要进行调整。