阿里云 RabbitMQ 可观测性最佳实践

阿里云 RabbitMQ

阿里云 RabbitMQ 是一款高性能、高可靠的消息中间件,支持多种消息协议和丰富的功能特性。它提供消息队列功能,能够实现应用间的消息解耦和异步通信,提升系统扩展性和稳定性。其支持多种消息持久化策略,确保消息不丢失;具备灵活的路由和负载均衡能力,可高效分发消息;还提供丰富的管理功能,如队列监控、消息追踪和权限管理等,帮助用户轻松管理和优化消息队列,广泛应用于分布式系统、微服务架构和事件驱动应用中。

RabbitMQ 监控的必要性在于,它能够实时掌握消息队列的运行状态,及时发现并解决潜在问题。通过监控消息堆积、消费延迟、连接数等关键指标,可以确保消息的高效传输和处理,避免因消息积压或消费者故障导致的业务中断。此外,监控还能帮助优化资源分配,提升系统性能,确保 RabbitMQ 在高并发和复杂业务场景下稳定运行,从而保障整个分布式系统的可靠性和可用性。

观测云

观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。

部署 DataKit

DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。

登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

采集器配置

指标采集

  1. 登录观测云控制台
  2. 点击【集成】菜单,选择【云账号管理】
  3. 点击【添加云账号】,选择【阿里云】,填写界面所需的信息,如之前已配置过云账号信息,则忽略此步骤
  4. 点击【测试】,测试成功后点击【保存】,如果测试失败,请检查相关配置信息是否正确,并重新测试
  5. 点击【云账号管理】列表上可以看到已添加的云账号,点击相应的云账号,进入详情页
  6. 点击云账号详情页的【集成】按钮,在未安装列表下,找到阿里云 RabbitMQ,点击【安装】按钮,弹出安装界面安装即可。

关键指标

指标名称 描述 单位
ExchangeTPSIn Exchange 每秒消息流入数 count/s
ExchangeTPSOut Exchange 每秒消息流出数 count/s
InstanceChannels Instance 的 Channel 数量(废弃) count
InstanceChannelsNew 通道数量 count
InstanceConnections 实例连接数 count
InstanceConsumers 消费者数量 count
InstanceMaxTpsInMinute 实例API请求速率峰值(每分钟Max值) count/s
InstanceMessageInput 实例消息生产数量 count
InstanceMessageOutput 实例消息消费数量 count
InstanceQueueMessageAccumulation 实例Queue消息堆积量(推荐) count
InstanceQueueMessageInput 实例Queue消息生产数量(推荐) count
InstanceQueueMessageOutput 实例Queue消息消费数量(推荐) count
InstanceTPSIn Instance 每秒消息流入数 count/s
InstanceTPSOut Instance 每秒消息流出数 count/s
InstanceVhostChannels VHost 的 Channel 数 count
InstanceVhostConsumers VHost 消费者数量 count
InstanceVhostMessageInput 实例Vhost消息生产数量 count
InstanceVhostMessageOutput 实例Vhost消息消费数量 count
InstanceVhostQueueConsumers Queue 消费者数量 count
InstanceVhostQueueMessageAccum Queue 消息堆积量 count
InstanceVhostQueueMessageInput Queue 消息生产数量 count
InstanceVhostQueueMessageOutput Queue 消息消费数量 count
QueueTPSIn Queue 消息每秒流入数 count/s
QueueTPSOut Queue 每秒消息流出数 count/s
VHostTPSIn VHost 每秒消息流入数 count/s
VHostTPSOut VHost 每秒消息流出数 count/s
VhostChannels VHost 通道数量 count
VhostConnections VHost 连接数量 count

场景视图

登录观测云控制台,点击「场景」 -「新建仪表板」,输入 "阿里云 RabbitMQ", 选择 "阿里云 RabbitMQ",点击 "确定" 即可添加视图。

在 Queue 模块下,可以看到队列消息的生产、消费、堆积情况。

监控器(告警)

观测云内置了监控器模板,可以选择从模版创建监控器,并开启适合业务的监控器以及时通知相关成员关注问题,触发条件、频率等信息可以依据实际业务进行调整。

登录观测云控制台,点击「监控」 -「新建监控器」,输入 "阿里云 RabbitMQ", 选择对应的监控器,点击 "确定" 即可添加。

RabbitMQ 消息堆积异常

消息堆积可能会使得业务发生延迟

RabbitMQ 消息消费者数量为0

当消费者数量为0的时候,就很有可能导致消息堆积

阿里云 RabbitMQ 实例连接数异常

需要注意阿里云最大链接数为10000

总结

通过采集阿里云 RabbitMQ 指标信息上报至观测云,能够实时展示实例、Vhost、Queue 和 Exchange 的关键指标,如消息量、连接数和堆积量等,帮助企业快速发现潜在问题。这些监控功能不仅增强了系统的透明度,还显著提升了运维效率,尤其适合分布式和云原生架构下的复杂业务场景。

相关推荐
腾讯云中间件14 小时前
深度剖析 TDMQ RabbitMQ 版经典队列底层存储机制
消息队列·rabbitmq·腾讯
Bug退退退12318 小时前
RabbitMQ 之顺序性保障
服务器·分布式·rabbitmq
泉城老铁2 天前
Spring Boot深度整合RabbitMQ:从入门到企业级实战
java·后端·rabbitmq
西岭千秋雪_3 天前
RabbitMQ队列的选择
笔记·分布式·学习·rabbitmq·ruby
Bug退退退1234 天前
RabbitMQ 之消息积压
分布式·rabbitmq
Bug退退退1235 天前
RabbitMQ 高级特性之事务
java·分布式·spring·rabbitmq
咖啡啡不加糖6 天前
RabbitMQ 消息队列:从入门到Spring Boot实战
java·spring boot·rabbitmq
Bug退退退1236 天前
RabbitMQ 幂等性
分布式·rabbitmq
Bug退退退1236 天前
RabbitMQ 高级特性之延迟队列
java·spring·rabbitmq·java-rabbitmq