簡體   English   中英

Prometheus不是在vm上運行,而是在本地Docker上運行

[英]Prometheus not running on the vm but runs on Docker locally

我正在嘗試在虛擬機上運行prometheus。 我有幾個要監視的微服務,它們正在vm上運行。 我將以下內容添加到docker-compose.yml文件之一:

prometheus:
    image: prom/prometheus:v2.1.0
    volumes:
        - ./prometheus.yml:/etc/prometheus/prometheus.yml
    command:
        - '--config.file=/etc/prometheus/prometheus.yml'
    ports:
        - '9090:9090'

然后將prometheus.yml文件添加到與上述docker-compose相同的文件夾中。

global:
  scrape_interval:     15s 
  evaluation_interval: 15s 



scrape_configs:

  - job_name: 'prometheus'

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

 - job_name: 'radios-service'


   metrics_path: '/prometheus-metrics'
   static_configs:
        - targets: ['radios-service:8080']

 - job_name: 'websocket-service'
   metrics_path: '/prometheus-websocket'
   static_configs:
      - targets: ['websocket-service:8080']

這可以通過我的命令行在docker上成功運行,但是當我嘗試在vm上運行它時會拋出此錯誤:

錯誤:對於prometheus無法啟動服務prometheus:b'OCI運行時創建失敗:container_linux.go:348:啟動容器進程引起了“ process_linux.go:402:容器初始化引起了\\” rootfs_linux.go:58:安裝\\\\“ / usr /local/bin/prometheus.yml \\\\“轉換為rootfs \\\\” / var / lib / docker / overlay2 / f4b34c5866b191683d4e8c08e59fb14f56127cbcd67a603225954dd59c0a6a50 / merged \\\\“在\\\\” / var / lib / docker / overlay2 / f4b674e56a56e56a56e56a56a56e5a4e4a4e5c4e3e3c3e4c3e3e prometheus / prometheus.yml \\\\“導致\\\\”不是目錄\\\\“ \\”“:未知:您是否正在嘗試將目錄掛載到文件上(反之亦然)? 檢查指定的主機路徑是否存在以及是否為預期的類型'錯誤:啟動項目時遇到錯誤。

但是當我在本地運行它不會引發任何問題。 虛擬機中的問題可能是什么?

我通過在docker compose中編輯卷行來解決它。 我猜在Linux機器上,您需要提供絕對路徑。 我將prometheus.yml放在/ home /目錄中,並將路徑更改為如下所示:

prometheus:
image: prom/prometheus:v2.1.0
volumes:
    - /home/prometheus.yml:/etc/prometheus/prometheus.yml
command:
    - '--config.file=/etc/prometheus/prometheus.yml'
ports:
    - '9090:9090'

這似乎有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM