2016-11-21 381 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'] 

上面的工作適合我。