无法使用 docker (prom/prometheus) 加载 prometheus.yml 配置文件

问题描述 投票:0回答:4

我正在尝试使用以下自定义 conf 文件使用 docker 加载 prometheus:danilo@machine:/prometheus-data/prometheus.yml:

global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.

  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'

  # A scrape configuration containing exactly one endpoint to scrape:
  # Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 5s

    static_configs:
      - targets: ['localhost:9090']

      - targets: ['localhost:8083', 'localhost:8080']
        labels: my_app
      group: 'my_app_group'

使用以下命令:

$ sudo docker run -p 9090:9090 prom/prometheus --config.file=/prometheus-
  data/prometheus.yml

文件已经存在。但是,我收到以下消息:

level=error ts=2018-09-26T17:45:00.586704798Z caller=main.go:617 err="从“/prometheus-data/prometheus.yml”加载配置时出错:无法加载配置(--config .file="/prometheus-data/prometheus.yml"): 打开 /prometheus-data/prometheus.yml: 没有那个文件或目录"

我正在关注本指南:

我该怎么做才能正确加载这个文件?

docker dockerfile prometheus prometheus-alertmanager
4个回答
12
投票

“文件已经存在”,你的意思是文件在你的主机上

/prometheus-data/prometheus.yml
?如果是这样,那么您需要将其绑定安装到您的容器中,以便 Prometheus 可以访问它。

sudo docker run -p 9090:9090 -v /prometheus-data/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus

它在文档中的Volumes & bind-mount下介绍。


4
投票

我正在使用 docker-compose.yaml,我也遇到了同样的问题。我必须按如下方式设置音量详细信息。

  prometheus:
    image: prom/prometheus:v2.26.0
    user: root
    ports:
      - 9090:9090
    volumes:
      - /apps/prometheus/configs/prometheus.yaml:/etc/prometheus/prometheus.yaml
      - /data/prometheus:/prometheus
    command: --web.enable-lifecycle --config.file=/etc/prometheus/prometheus.yml

0
投票

你需要在你的 docker 上挂载卷。 @Udara 的解决方案很好,但命令出错。

sudo docker run -p 9090:9090 -v /prometheus-data/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

别忘了在文件夹/prometheus-data下添加prometheus.yml

文件

0
投票

我在做同样的事情,当把整个路径像整个路径一样时它起作用了:

sudo docker run -p 9090:9090 -v User/inner-directories.../prometheus-data/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus --config.file=/etc/prometheus/prometheus.yml

当您使用卷时,您必须放置在 docker 配置资源上注册的路径

© www.soinside.com 2019 - 2024. All rights reserved.