Prometheus启动成功访问页面显示Service Unavailable
背景
数据库出现磁盘告警,数据增长有点快,之前对数据库的监控只是整体的数据盘监控,没有具体的库表的监控,通过开发独立的exporter然后通过Prometheus进行数据采集然后通过 Grafana进行数据展示来监控那个库表增长导致的磁盘告警
问题过程
1、利用python开发针对MySQL数据库表的数据增长的exporter,启动exporter观察到数据获取正常
2、在 prometheus server的 prometheus.yml
配置中添加开发的exporter
1 | # cat prometheus.yml | tail |
3、然后重启 prometheus
1 | systemctl restart prometheus |
看到服务重启成功,ps 也看到进程有了
4、但是访问Prometheus server的页面,提示 Service Unavaliable
5、以为是刚才添加的 exporter的配置不对,回滚配置再重启还是同样的错误
6、网上查阅资料,看到有反馈说是 安装目录下 data 文件下的 lock 需要清理
但是实际上去检查这个文件,文件的时间是很早之前,所以个人觉得和这个没有关系,就没有清理。
继续排查 ~~~
问题关键
1、发现配置的Prometheus没有找到有效的日志存放的地方,通过 systemctl status prometheus.service -l
看不到有效的信息
2、为了排查问题所在直接使用命令行方式开启debug日志 --log.level=debug
1 | /opt/app/prometheus/prometheus --config.file=/opt/app/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus --storage.tsdb.retention=30d --web.enable-lifecycle --web.enable-admin-api --log.level=debug |
然后发现有个 Starting prometheus
之后日志就一直卡住没有任何输出了
3、这个是时候 ps 查看进程是启动了,但是 telnet 端口是不通的,怀疑是服务还没有完全启动,等待观察,知道4分钟之后出现新的日志输出,看到正常启动,这时候检查端口也是通的了
结论
对比了另外一个Prometheus server启动很快,两个的差别在于”出现问题“
的这个的数据量 150G
导致服务启动很慢而已。
附加
1、python开发exporter监控数据库表增长
https://gitee.com/colin5063/prometheus_exporter/tree/master/mysql_exporter
2、systemctl 管理 prometheus.service
1 | # /usr/lib/systemd/system/prometheus.service |
参考
1、https://stackoverflow.com/questions/47750983/prometheus-start-but-not-opened-on-browser
Prometheus启动成功访问页面显示Service Unavailable
http://blog.colinspace.com/2022/06/22/20220627-prometheus-service-unavaliable/