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

    banner.jpg

    阿里云 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 的关键指标,如消息量、连接数和堆积量等,帮助企业快速发现潜在问题。这些监控功能不仅增强了系统的透明度,还显著提升了运维效率,尤其适合分布式和云原生架构下的复杂业务场景。

    联系我们

    加入社区

    微信扫码
    加入官方交流群

    立即体验

    在线开通,按量计费,真正的云服务!

    立即开始

    选择观测云版本

    代码托管平台