Prometheus启动成功访问页面显示Service Unavailable

prometheus 使用 systemctl restart之后,观察到服务进程已经存在,但是访问对应的server地址,却直接提示 Service Unavailable,这里整理排查的过程和问题所在,最后附上了利用python开发exporter监控MySQL数据库表增长的监控

可以关注公众号 全栈运维 不定期更新


背景

数据库出现磁盘告警,数据增长有点快,之前对数据库的监控只是整体的数据盘监控,没有具体的库表的监控,通过开发独立的exporter然后通过Prometheus进行数据采集然后通过 Grafana进行数据展示来监控那个库表增长导致的磁盘告警

问题过程

1、利用python开发针对MySQL数据库表的数据增长的exporter,启动exporter观察到数据获取正常

2、在 prometheus server的 prometheus.yml 配置中添加开发的exporter

# cat prometheus.yml | tail 
 - job_name: 'python-exporter-rds-search'
    scrape_interval: 10s
    static_configs:
    - targets: ['192.168.3.108:8345']

3、然后重启 prometheus

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

/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

# /usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Requires=network-online.target
After=network-online.target

[Service]
Restart=on-failure
ExecStart=/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

[Install]
WantedBy=multi-user.target

参考
1、https://stackoverflow.com/questions/47750983/prometheus-start-but-not-opened-on-browser

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据引用的描述,您提到Prometheus无法找到有效的日志存放位置。根据引用的配置,您可以在Prometheus的配置文件prometheus.yml中添加您开发的exporter。请确保在配置文件中正确指定了exporter的目标地址。 此外,根据引用的systemctl管理prometheus.service的描述,您可以检查Prometheus的服务配置文件(/usr/lib/systemd/system/prometheus.service)是否正确设置了启动命令(ExecStart)和参数(--config.file和--storage.tsdb.path)。请确保这些参数指向正确的配置文件和存储路径。 总结来说,如果Prometheus无法访问,您可以检查以下几个方面: 1. 确保Prometheus的日志存放位置正确设置。 2. 检查Prometheus的配置文件prometheus.yml中是否添加了正确的exporter配置。 3. 检查Prometheus的服务配置文件(/usr/lib/systemd/system/prometheus.service)是否正确设置了启动命令和参数。 通过检查以上步骤,您应该能够解决Prometheus无法访问的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Prometheus启动成功访问页面显示Service Unavailable](https://blog.csdn.net/eaglecolin/article/details/125499993)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值