首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker Prometheus配置

Docker Prometheus配置
EN

Stack Overflow用户
提问于 2020-10-20 21:19:46
回答 2查看 621关注 0票数 0

我正在尝试配置prometheus和grafana来监控我的django应用程序,但是当执行docker-compose up命令时抛出这个错误:

代码语言:javascript
复制
grafana_prometheus_ctnr | level=error ts=2020-10-20T13:08:42.474Z caller=main.go:290 msg="Error loading config (--config.file=/etc/prometheus/prometheus.yml)" err="open /etc/prometheus/prometheus.yml: no such file or directory"

我有各种各样的服务,其中之一是普罗米修斯。

docker-compose.yml:

代码语言:javascript
复制
...

prometheus:
  container_name: grafana_prometheus_ctnr
  build:
    context: .
    dockerfile: Dockerfile-prometheus
  volumes:
    - ./prometheus-data:/etc/prometheus
  ports:
    - 9090:9090
  networks:
    - grafana-ntwk

...

Dockerfile-prometheus:

代码语言:javascript
复制
FROM prom/prometheus:v2.22.0

LABEL version="1.0.0"

COPY ./prometheus.yml /etc/prometheus/
COPY ./prometheus.json /etc/prometheus/file_sd/

EXPOSE 9090

prometheus.yml:

代码语言:javascript
复制
global:
  scrape_interval: 15s
  evaluation_interval: 15s
  scrape_timeout: 10s

scrape_configs:
  - file_sd_configs:
    files:
      - /etc/prometheus/file_sd/*.json

prometheus.json:

代码语言:javascript
复制
[
  {
    "targets": ["0.0.0.0:9090"],
    "labels": {
      "job": "prometheus",
      "environment": "develope",
    }
  },
  {
    "targets": ["0.0.0.0:8000"],
    "labels": {
      "job": "django",
      "environment": "develope",
    }
  },
  {
    "targets": ["0.0.0.0:5432"],
    "labels": {
      "job": "postres",
      "environment": "develope",
    }
  }
]

有人知道为什么文件没有被复制吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-22 15:02:04

这个更新对我来说效果很好:

Dockerfile-prometheus:

代码语言:javascript
复制
...
COPY ./prometheus.yml /etc/prometheus/prometheus.yml
COPY ./prometheus.json /etc/prometheus/file_sd/prometheus.json
...

docker-compose.yml:

代码语言:javascript
复制
...
prometheus:
  container_name: grafana_prometheus_ctnr
  build:
    context: .
    dockerfile: Dockerfile-prometheus
  volumes:
    - ./prometheus-data:/etc/prometheus
  ports:
    - 9090:9090
  networks:
    - grafana-ntwk
...

prometheus.yml:

代码语言:javascript
复制
global:
  scrape_interval: 15s
  evaluation_interval: 15s
  scrape_timeout: 10s

scrape_configs:
  - job_name: 'monitoring'
    file_sd_configs:
      - files:
        - /etc/prometheus/file_sd/*.json
票数 0
EN

Stack Overflow用户

发布于 2020-10-22 05:46:26

问题出在您的Dockerfiledocker-compose文件中。Dockerfileprometheus.yml复制到/etc/prometheus目录。docker-compose还将卷挂载到同一目录中。在这种情况下,容器内目录中的现有文件会被屏蔽,因为docker会将它们挂载在现有文件之上。文件仍然在容器中,但它们是不可访问的。从docker文件中删除COPY,或者从docker-compose中删除卷,或者将它们挂载到另一个目录中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64446044

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档