Docker - Prometheus容器立即死亡

时间:2016-11-21 10:12:27

标签: docker containers prometheus cadvisor

我有使用端口映射4000:8080运行的cadvisor,我必须将它与带有prometheus的容器链接。

我的prometheus.yml是:

scrape_configs:
# Scrape Prometheus itself every 2 seconds.
- job_name: 'prometheus'
  scrape_interval: 2s
  target_groups:
  - targets: ['localhost:9090', 'cadvisor:8080']

此文件包含路径/home/test/prometheus.yml。 为了用prometheus运行容器,我做:

docker run -d -p 42047:9090  --name=prometheus -v /home/test/prometheus.yml:/etc/prometheus/prometheus.yml  --link cadvisor:cadvisor prom/prometheus -config.file=/etc/prometheus/prometheus.yml -storage.local.path=/prometheus -storage.local.memory-chunks=10000 

创建容器,但它立即死亡。 你能告诉我问题出在哪里吗?

消息来自docker events&

2016-11-21T11:43:04.922819454+01:00 container start 69d03c68525c5955cc40757dc973073403b13fdd41c7533f43b7238191088a25 (image=prom/prometheus, name=prometheus)
2016-11-21T11:43:05.152141981+01:00 container die 69d03c68525c5955cc40757dc973073403b13fdd41c7533f43b7238191088a25 (exitCode=1, image=prom/prometheus, name=prometheus)

6 个答案:

答案 0 :(得分:7)

配置格式已更改。目标在最新版本的static_config下。

scrape_configs:
# Scrape Prometheus itself every 2 seconds.
  - job_name: 'prometheus'
  scrape_interval: 2s
  static_configs:
      - targets: ['localhost:9090', 'cadvisor:8080']

Prometheus Documentation for further help

答案 1 :(得分:4)

我认为scrape_configs已在最新版本的prometheus中从scrape_configs: - job_name: node_exporter static_configs: - targets: - "stg-elk-app-01:9100" - "stg-app-02:9100" 弃用。 你可以试试static_configs或file_sd_config

scrape_config
static_config
file_sd_config

submit.addActionListener(this);

答案 2 :(得分:4)

是的,target_groups已重命名为static_configs。请使用以下的最新普罗米修斯图像。

static_configs:
  - targets: ['localhost:9090', 'cadvisor:8080']

以上对我有用。

答案 3 :(得分:1)

缩进不正确,请尝试:

scrape_configs:
  # Scrape Prometheus itself every 2 seconds.
  - job_name: 'prometheus'
    scrape_interval: 2s
    target_groups:
    - targets: ['localhost:9090', 'cadvisor:8080']

答案 4 :(得分:0)

容器的名称为prometheus

通常,当容器在启动后立即存在时,我建议您在-log.level=debug之后立即添加-config.file

docker run -d -p 42047:9090 --name=prometheus -v /home/test/prometheus.yml:/etc/prometheus/prometheus.yml --link cadvisor:cadvisor prom/prometheus -config.file=/etc/prometheus/prometheus.yml -log.level=debug -storage.local.path=/prometheus -storage.local.memory-chunks=10000

接下来,查看容器的日志:

docker logs prometheus

配置存在任何问题。

答案 5 :(得分:0)

正如你在之前的评论中所说:

from logs: time="2016-11-21T11:21:40Z" level=error msg="Error loading config: couldn't load configuration (-config.file=/etc/prometheus/prometheus.yml): unknown fields in scrape_config: target_groups" source="main.go:149"

这显然意味着该领域" target_groups"造成了这个问题。这是因为Prometheus的新版本(v1.5以后)已经放弃使用" target_groups"字段并简单地提供目标。即使我在大约6个月前遇到过这个问题。请尝试使用新版本。 docker pull prom/prometheus可能会让你成为旧的。

希望这有助于...... !!!