2016-11-21 136 views
1

我有一个端口映射4000:8080的管理程序,我必须将它与一个带有prometheus的容器链接起来。Docker - 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。 要与普罗米修斯运行的容器,我做的:创建

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) 

回答

1

缩进不正确,请尝试:

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

仍然无法正常工作。 – SegFault

+1

您正在使用哪个版本的Prometheus?前一阵子'target_groups'重新命名为'static_configs'。这是非常困难的调试没有任何错误输出。 –

+0

我已经完成了“docker pull prom/prometheus”,所以我认为它应该是最新的(图片的标签是''latest'') – SegFault

3

我觉得target_groups已从scrape_configs在普罗米修斯的最新版本已过时。 你可以尝试static_configs或file_sd_config

scrape_config
static_config
file_sd_config

scrape_configs: 
    - job_name: node_exporter 
    static_configs: 
     - targets: 
     - "stg-elk-app-01:9100" 
     - "stg-app-02:9100" 
3

配置格式改变。目标在最新版本的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

0

容器的名称是prometheus

一般而言,当一个容器启动后立即存在,我会建议增加-config.file-log.level=debug之后。

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

与配置的任何问题都会有。

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可能会让你变成旧的。

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

2

是的,target_groups更名为static_configs。请使用以下最新的Prometheus图像。

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

上面的工作适合我。