一、简介
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"