Prometheus配置过程中出现的bug及解决方案

时间:2024-04-07 09:07:14

一、简介

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)
Prometheus配置过程中出现的bug及解决方案
问题原因:在/tmp目录下没有prometheus.yml文件,因此会被临时创建一个目录文件导致出错。
解决方案:在/tmp目录下创建一份prometheus.yml文件,内容可以参考网上百度结果。
问题二:权限不够
Prometheus配置过程中出现的bug及解决方案
问题原因:该问题的原因是由于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

Prometheus配置过程中出现的bug及解决方案
问题原因:该问题是由于Alerts的配置没有生效导致的,可以进入docker容器中进行查证,进入docker容器的方法参考如下

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

Prometheus配置过程中出现的bug及解决方案
可以看到在docker容器的/etc/prometheus目录下没有first.rules文件。
解决方案
1.在/tmp目录下创建first.rules文件,文件内容可以参考百度搜索,记住需要修改first.rules的可读写权限。
2.在prometheus.yml中添加first.rules,参考如下

rule_files:
  - "rules.yml"