Prometheus基于Consul的 Redis 多实例监控方案

网站建设5年前发布
17 0 0

使用 Prometheus​ 进行 Redis​ 监控的都知道,Redis_exporter​ 是较常用的解决方案,但是在 redis_exporter​ 开始的版本中,并不支持一个 redis_exporter​ 实例监控多 Redis​ 实例,这样造成 exporter​ 实例的数量较多,难以维护和管理。但是好在官方已经解决了此问题。在 metrics 的暴漏形式上也有所改变:,这种改变一定程度缓解了 redis​ 相同认证方式上 redis_exporter实例过多,维护难得问题。,prometheus 有静态配置和动态配置。,静态配置就是直接把要监控的目标写死到 prometheus​ 的配置文件中,这样维护起来比较难,需要频繁的修改配置文件 prometheus.yml​. 同时还需进行 reload 操作才能生效。,配置完成后需要 reload 后,才能生效。,与此相反,prometheus​ 也可基于文件形式 rabbitmq.json​(与 prometheus​ 在同一级目录下) 的动态发现,虽然不需要再频繁修改的 prometheus​ 配置文件后进行 reload 操作,但是维护文件对运维确实也是苦难的,可自动化程度低且复杂。,prometheus​ 是可以基于 consul/etcd​ 实现动态发现的,这也是今天说的重点,对于基于 consul 实现的监控目标自动发现好处多多:,其他过多的就不在扩展了,直接进入正题,通过 Redis_exporter​ 的动态发现实现多实例监控来熟悉一下 consul​ 在 prometheus 动态发现中有多重要。,因为这里主要记录 prometheus​ 基于 consul​ 实现的 redis_exporter​ 进行多实例监控的案例,consul​ 和 prometheus 部署的问题就不在细说。,测试环境服务器IP:192.168.0.100。,consul部署,1.consul配置文件consul.hcl。,2.Consul docker-compose.yaml。,启动 consul​ 服务,并且获取 consul​ 的 token​,后期 prometheus 的配置中需要用到。,redis_exporter,redis_exporter 多实例密码问题[1]。,在redis_exporter issues中也有人做了针对不同密码不同redis实例采集的Docker镜像, 但这种方案无论在prometheus展示中还是在consul中都会明文暴漏redis实例密码,有需要的可以自己查看[2]。,prometheus,1.prometheus docker-compose.yaml。,2.注册redis​ 到consul 中。,202303061007032976b4b810a4747da9f8875335665d0741e989535,consul页面,这样截图对比一下是否清晰的知道 JSON​ 中每个字段的含义了?对于同一分类的 redis​ 实例可以放在同一个 service​ 的 name​ 下,也就是通过 service​ 的 name 进行分组。,3.服务注册到consul​ 以后,就需要修改prometheus 的配置了。,​,如果有同学借鉴以上配置,把自定义标签 realip/port 两个去掉即可,其它不动即可使用。,4.修改完成后,我们做针对consul_redis​ 这个 job 的最后一次reload prometheus服务。,5.然后访问prometheus 的页面,查看是否有监控项被发现。,202303061007298817cbd100c5ba5c34c3958001eeadb2247830579,prometheus target页面,这里就是最后的发现结果。,6.通过curl 查看监控指标的值,2023030610070474d95d622220928df0c554a112c1e5c4ed1ae1637,通过curl查看exporter结果,7.查看grafana 数据展示。,在 Dashboard​ 中配置之前定义好的realip变量,最终的展示大盘。,20230306100730d16ecaf31a1c97d1812977e7bf1e36cbd6368e576,20230306100705e98629c89002b30df9c0200adaa714b589c3b9326,[1]redis_exporter 多实例密码问题讨论:https://github.com/oliver006/redis_exporter/issues/278,[2]redis_exporter multi-auth docker:https://hub.docker.com/r/linuxhub/redis_exporter,

© 版权声明

相关文章