升级Prometheus报错Error refreshing servic Unexpected response code: 404解决办法

2020年9月1日18:59:54 发表评论 3,387 ℃

最近优化grafana视图,发现有些新grafana视图,在老版6.x兼容不是很好,想着把监控全家桶升级下:

grafana v6.3 升级到 grafana v7.1.5。

prometheus v2.12.0 升级到 Prometheus v2.20.1。

alertmanager v 0.14.0 升级到alertmanager v0.21.0。

果断备份数据操作升级,一切都比较正常,使用原来的数据全部启动成功,查看grafana视图基本显示正常,就是有些样式发生了变化,检查中发现jvm监控视图没有数据。

查看prometheus日志报错:

prometheus      | level=error ts=2020-09-01T10:30:35.514Z caller=consul.go:487 component="discovery manager scrape" discovery=consul msg="Error refreshing service" service=ZYSY-EXPORT tags= err="Unexpected response code: 404 ({\"timestamp\":1598956235514,\"status\":404,\"error\":\"Not Found\",\"message\":\"No message available\",\"path\":\"/v1/health/service/BMS\"})"

以为是版本变更后,配置变化造成的问题,在看了官方文档后,发现配置文件并没有特别需要变动的地方,再次回退prometheus到v2.12.0 ,启动成功。

Google一通才发现是eureka-consul-adapter 是没有提供 Consul 的 health 类端口的,所以会出现404,日志显示的很清楚了path /v1/health/service/BMS 404。

由于项目使用的spring-boot1.5.x ,eureka-consul-adapter只能使用0.0.1,而eureka-consul-adapter需要升级到1.4.0才有health端口。

经过测试,eureka-consul-adapter不升级的情况,prometheus支持的最高版本是 v2.16.0。

不过prometheus最新的测试版本v2.21.0-rc.0 ,已经支持eureka discovery,不过在使用v2.21.0-rc.0测试的时候提示不支持eureka,报错“prometheus field services not found in type eureka.plain”,只有等到下一个稳定版再升级测试eureka discovery。官网配置文件已经新增eureka_sd_configs:

 - job_name: service-eureka
  eureka_sd_configs:
    - server: 'http://eureka.example.com:8761/eureka'
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: