RabbitMQ 的监控

前言

RabbitMQ 消息队列不仅可以解决服务之间耦合性的问题,还同样可以提升单服务的负载能力,已经成为编程开发中的必备利器,但它的存在一定会让服务的可用性降低,若 MQ 挂了,则直接影响的使用它的所有服务,如何优雅的避短才是我们能否顺心的使用它的关键, 那这里必然是一套组合拳 监控+报警

如何选择利器?

按照官方文档的说法,那便是 Prometheus & Grafana,前者是强大的监控工具包(主要实现存储指标以及规则报警),后者是优雅的指标可视化系统。真可谓是天作之合。

他们的优点如下(跟自带的管理页面相比)

  1. 监控系统与被监控系统分离
  2. 降低服务开销
  3. 长期存储指标
  4. 方便关联聚合对比各个相关指标
  5. 更强大和可定制的用户界面
  6. 易于分享的指标数据
  7. 更健全的访问权限
  8. 针对不同节点的数据收集更具弹性

PS: 官方从 3.8 版本对 Prometheus & Grafana 提供支持,强烈建议用于生产环境。

Prometheus 相关信息学习
Grafana 相关信息学习
Grafana 相关实现案例

不过在使用这些工具上手前, 我们需要一起了解下 如何做好监控 这个概念。

如何理解好的监控1

  1. 具备一定的预警作用,有助于在问题还没有影响业务时,提前解决问题或者安排扩充计划;
  2. 具备一定的定位排查作用,有助于产生问题时,方便进行根本原因分析;

如何做到上述两点,可以关注 基础设施和内核指标业务特定指标健康检查、轮询间隔(官方建议开发环境 15s,生产环境为 30s 甚至 60s,最低不能小于 5s,因为该监控轮询会可能对 TCP 连接断开从而增大 RabbitMQ的通道和队列检查,增加 CPU 消耗。)

官方API, 用于理解该业务有哪些特定指标

搭建监控2

Grafana 结合 MQ 现成模板

扫描二维码关注公众号,回复: 16786507 查看本文章

  1. 官方指南-监控 ↩︎

  2. 官方指南-搭建 Prometheus & Grafana ↩︎

猜你喜欢

转载自blog.csdn.net/weixin_43832080/article/details/125147083
今日推荐