文章目录
前言
RabbitMQ 消息队列不仅可以解决服务之间耦合性的问题,还同样可以提升单服务的负载能力,已经成为编程开发中的必备利器,但它的存在一定会让服务的可用性降低,若 MQ 挂了,则直接影响的使用它的所有服务,如何优雅的避短才是我们能否顺心的使用它的关键, 那这里必然是一套组合拳 监控+报警。
如何选择利器?
按照官方文档的说法,那便是 Prometheus & Grafana,前者是强大的监控工具包(主要实现存储指标以及规则报警),后者是优雅的指标可视化系统。真可谓是天作之合。
他们的优点如下(跟自带的管理页面相比)
- 监控系统与被监控系统分离
- 降低服务开销
- 长期存储指标
- 方便关联聚合对比各个相关指标
- 更强大和可定制的用户界面
- 易于分享的指标数据
- 更健全的访问权限
- 针对不同节点的数据收集更具弹性
PS: 官方从 3.8 版本对 Prometheus & Grafana 提供支持,强烈建议用于生产环境。
Prometheus 相关信息学习
Grafana 相关信息学习
Grafana 相关实现案例
不过在使用这些工具上手前, 我们需要一起了解下 如何做好监控 这个概念。
如何理解好的监控1
- 具备一定的预警作用,有助于在问题还没有影响业务时,提前解决问题或者安排扩充计划;
- 具备一定的定位排查作用,有助于产生问题时,方便进行根本原因分析;
如何做到上述两点,可以关注 基础设施和内核指标、业务特定指标、健康检查、轮询间隔(官方建议开发环境 15s,生产环境为 30s 甚至 60s,最低不能小于 5s,因为该监控轮询会可能对 TCP 连接断开从而增大 RabbitMQ的通道和队列检查,增加 CPU 消耗。)
搭建监控2
扫描二维码关注公众号,回复:
16786507 查看本文章