1. 程式人生 > >Prometheus配置過程中出現的bug及解決方案

Prometheus配置過程中出現的bug及解決方案

一、簡介

Node exporter,Promenade和Alertmanager在安裝配置後,在除錯Prometheus執行中出現了不少bug,針對這些bug進行了解決。本部落格主要蒐集總結這些bug和解決方案,進行記錄。
Prometheus執行命令參考如下:

docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \
                                        -v /tmp/prometheus-data:/prometheus-data \ 
                                        prom/prometheus

問題一:caused \“not a directory\”"": unknown: Are you trying to mount a directory onto a file (or vice-versa)
在這裡插入圖片描述
問題原因:在/tmp目錄下沒有prometheus.yml檔案,因此會被臨時建立一個目錄檔案導致出錯。
解決方案:在/tmp目錄下建立一份prometheus.yml檔案,內容可以參考網上百度結果。
問題二:許可權不夠
在這裡插入圖片描述
問題原因:該問題的原因是由於docker掛載對映/tmp/prometheus.yml檔案後讀取的許可權不夠。
解決方案:對/tmp/prometheus.yml新增其它使用者的可讀寫許可權,參考如下

chmod 666 prometheus.yml

問題三:Alerts No alerting rules defined
由於需要用到Alerts,因此需要在命令中新增Alerts的配置

docker run -p 9090:9090 -v /tmp/prometheus.yml:/etc/prometheus/prometheus.yml \      
                                       -v /tmp/first.rules:/etc/prometheus/first.rules \       
                                       -v /tmp/prometheus-data:/prometheus-data \       
                                       prom/prometheus

在這裡插入圖片描述
問題原因:該問題是由於Alerts的配置沒有生效導致的,可以進入docker容器中進行查證,進入docker容器的方法參考如下

1.docker ps
2.docker exec -it containerID /bin/bash //或者是sh

在這裡插入圖片描述
可以看到在docker容器的/etc/prometheus目錄下沒有first.rules檔案。
解決方案
1.在/tmp目錄下建立first.rules檔案,檔案內容可以參考百度搜索,記住需要修改first.rules的可讀寫許可權。
2.在prometheus.yml中新增first.rules,參考如下

rule_files:
  - "rules.yml"