首页 > 其他分享 >蓝鲸rabbitmq监控实践

蓝鲸rabbitmq监控实践

时间:2024-03-19 10:13:35浏览次数:42  
标签:node exporter self 蓝鲸 rabbitmq cluster 监控 告警

蓝鲸rabbitmq监控实践

rabbitmq是蓝鲸所依赖的消息队列服务,影响着多个服务,如作业平台、标准运维、监控平台、节点管理、日志平台等。因为rabbitmq服务异常而导致的故障往往比较隐蔽,这类故障往往无法在页面直接反馈出来。在生产环境中曾遇到过因为rabbitmq异常,导致作业任务以及标准运维任务执行卡住的情况,如果故障发生在夜间,会导致一些重要的定时任务无法按照预期执行,容易造成一些重大运维事故。所以通过监控掌握rabbitmq服务的运行情况,对于整个蓝鲸服务的正常运行至关重要。这里提供一个rabbitmq监控实践总结。

rabbitmq_exporter

rabbitmq监控指标采集使用开源的rabbitmq_exporter,本身监控平台就支持各类exporter插件,这里我们可以拿来即用。如果是监控平台版本是V3.6.3029或者版本相近的,可以直接使用文末附件导入,其他版本的监控平台没有测试过。

启用rabbitmq_management插件

rabbitmq_exporter采集依赖于rabbitmq启用rabbitmq_management插件。

rabbitmq_management 插件是 RabbitMQ 提供的一个管理插件,让用户可以通过图形化的方式来管理 RabbitMQ,它还提供一系列接口,rabbitmq_exporter通过请求这些接口来获取rabbitmq的各项指标。

通过以下命令启用rabbitmq_management插件

rabbitmq-plugins enable rabbitmq_management

插件启用不需要重启rabbitmq,如果是rabbitmq集群,则每个rabbitmq节点都需要启用rabbitmq_management

rabbitmq_management插件启用成功后,会在节点上监听15672端口

下载rabbitmq_exporter

Release下载地址:https://github.com/kbudde/rabbitmq_exporter/releases

Linux选择最新版本即可:rabbitmq_exporter

下载并解压至本地

rabbitmq_exporter_1.0.0-RC19_linux_amd64.tar.gz
   |- LICENSE
   |- README.md
   |- rabbitmq_exporter

监控平台导入exporter插件

「插件」-「新建」- 「插件类型选择Exporter」-「上传rabbitmq_exporter」

绑定端口:9419

绑定主机:127.0.0.1

定义以下环境变量参数:

参数 类型 默认值类型 默认值
RABBIT_URL 环境变量 文本 http://127.0.0.1:15672
RABBIT_USER* 环境变量 文本 admin
RABBIT_PASSWORD 环境变量 密码
PUBLISH_PORT 环境变量 文本 $
PUBLISH_ADDR 环境变量 文本 $
RABBIT_EXPORTERS* 环境变量 文本 exchange,node,overview,queue,aliveness
ALIVENESS_VHOST* 环境变量 文本 /

RABBIT_USER:任意一个tag=management用户都可以,rabbitmqctl list_users命令可以查看用户tag

RABBIT_EXPORTERS:rabbitm_exporter把指标分成了module,可以认为是进行了分类,RABBIT_EXPORTERS表示要采集的指标类别

ALIVENESS_VHOST:利用rabbitmq 的aliveness接口探测服务状态,接口会默认在探测的vhost下创建名为aliveness-test的队列,接口通过对aliveness-test队列消息的发送和接收来判断rabbitmq服务状态,确保RABBIT_USER设置的用户具有对ALIVENESS_VHOST指定的vhost有创建queue的权限,比如RABBIT_USER指定为admin,执行rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" 为admin用户授权

--96c8da153698aa88196654f3af3a9ab0.png

调试插件,选择一台rabbitmq进行调试,并保存指标,如果指标名和监控平台保留字冲突,需要先转换指标名才能保存

--001f793308034e8f89708520289a6726.png

采集

「数据采集」-「新建」-「填写采集名称和RABBIT_PASSWORD」

RABBIT_PASSWORD为rabbitmq的admin密码,其他保持默认即可

--ed9a9fe163f98afcaec3d48ba0e81fa9.png

采集目标选择「动态拓扑」-「蓝鲸 / 公共组件 / rabbitmq」-「完成采集下发」

--93c3bce39ba86a1ddd0a9c2d546b0f32.png

监控仪表盘

rabbitmq_exporter采集的和rabbitmq相关的指标,都带有rabbimtq_的前缀

以下几个指标需要特别关注,其他指标请参考:https://github.com/kbudde/rabbitmq_exporter

指标名 描述 Label(维度)
aliveness_info aliveness状态,1或0
up 节点存活状态,1或0 node
uptime 节点运行时长(ms) cluster, node, self*
running 状态为running的节点数量 cluster, node, self
node_mem_used 节点已使用的内存数量(byte) cluster, node, self
node_mem_limit* 节点内存限制(byte),默认是节点内存的40% cluster, node, self
node_mem_alarm rabbitmq内存使用率达到node_mem_limit时告警,1告警,0不告警 cluster, node, self
node_disk_free 内存空闲量(byte) cluster, node, self
node_disk_free_limit 内存空闲量限制(byte),默认是50MB cluster, node, self
node_disk_free_alarm 内存空闲量小于node_disk_free_limit时告警,1告警,0不告警 cluster, node, self
partitions 网络分区数,发生网络分区是为2,正常为0 cluster, node, self
queue_messages_ready ready的消息数量 cluster, vhost, queue, durable, policy, self
queue_messages_unacknowledged unacknowledged的消息数量 cluster, vhost, queue, durable, policy, self
queue_memory 队列占用的内存大小(byte) cluster, vhost, queue, durable, policy, self

self:self=1表示该条数据是当前节点的数据,rabbitmq_exporter访问当前节点的management接口,可以获取到集群所有节点的数据,用self这个label就可能表示获取到的指标是否是属于当前节点,比如在节点[email protected]上采集的rabbitmq_uptime指标,就包含了所有节点的uptime数据。

# 在[email protected]节点上执行curl -s 127.0.0.1:9419/metrics | grep rabbitmq_uptime 
rabbitmq_uptime{cluster="rabbit@VM-240-18-centos",node="[email protected]",self="0"} 1.260266076e+09
rabbitmq_uptime{cluster="rabbit@VM-240-18-centos",node="[email protected]",self="1"} 1.433729125e+09  

node_mem_limit:对应vm_memory_high_watermark配置,默认情况下 vm_memory_high_watermark 的值为0.4,即内存阈值为 0.4, 表示当 RabbitMQ 使用的内存超过 40%时,就会产生内存告警井阻塞所有生产者的连接。一旦告警被解除(有消息被消费或者从内存转储到磁盘等情况的发生), 一切都会恢复正常。

文末提供仪表盘附件导入

监控告警策略

建议设置以下指标告警:

指标名 静态阈值 描述
rabbitmq_uptime <600000 服务重启告警
rabbitmq_up <1 节点失活告警
rabbitmq_aliveness_info <1 服务异常告警
rabbitmq_node_mem_alarm >=1 内存使用达到阈值告警
rabbitmq_partitions >=2 出现网络分区告警
rabbitmq_node_mem_used >节点内存的35% 内存使用告警

建议再加上蓝鲸平台自带的应用内存率告警和磁盘使用率告警

附件

仪表盘
采集&策略&仪表盘
rabbitmq_exporter

查看更多蓝鲸运维文章,请跳转:蓝鲸运维手册大全

标签:node,exporter,self,蓝鲸,rabbitmq,cluster,监控,告警
From: https://www.cnblogs.com/tencent-blueking/p/18082122

相关文章

  • RabbitMQ-笔记
    RabbitMQ-笔记目录零、资料一、RabbitMQ常见的3种模型1.1、基本队列1.2、工作队列1.3、发布订阅1.3.1Fanout交换机1.3.2Dirct交换机1.3.3Topic交换机1.4消息转化器零、资料黑马-RabbitMQ快速入门一、RabbitMQ常见的3种模型1.基本队列2.工作队列3.发布订阅(解决前......
  • 监控微信的软件,什么软件可以监控微信聊天记录
    有的老板会在后台发文:“能监控聊天记录么?”“聊天记录删除了能找回么”“监控聊天记录的安装包有吗”......可见很多老板对员工的工作时的工作状态都不太放心。针对监控微信这个事情,我们应该理性分析看待。首先,需要明确的是,监控员工工作微信是一种有争议的做法。尽管......
  • 非Spring项目实现RabbitMq消息生产和消费
    问题:​ 如果脱离了Spring要怎么实现一个RabbitMq生产者和消费者的客户端?方案资源依赖<dependencies><!--核心依赖--> <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><v......
  • Jmeter性能测试 —— jmeter之使用ServerAgent监控服务器
    ServerAgent性能测试时我们关注的重要指标是:并发用户数,TPS,请求成功率,响应时间,服务器的CPU,memory,I/Odisk等。Jmeter的聚合报告可以查看并发数、吞吐量、请求成功率、响应时间等;如果要查看服务器端的CPU,memory,I/Odisk等就需要安装插件ServerAgent将ServerAgent-2.2.1.jar上传......
  • Python实现HTTPS网站证书过期监控及更新
    Python实现HTTPS网站证书过期监控及更新当前HTTP逐渐被大众所抛弃,HTTPS正在成为互联网上的主流。前段时间我们维护的一个HTTPS证书即将过期,由于多云环境比较复杂,团队小伙伴在替换更新证书的过程中出现疏漏,导致有一个域名证书没有及时更新,影响了系统可用性,为了杜绝这种问题再次发......
  • 【IT老齐045】RabbitMQ六种队列模式
    【IT老齐045】RabbitMQ六种队列模式前情提要Producer:生产者,消息的提供者Consumer:消费者,消息的使用者Broker:MQ服务器,管理队列、消息及相关信息Message:消息,程序间的通信的数据Queue:队列,消息存放的容器,消息先进先出Exchange:交换机,用于分发消息工作模式简单模式工作队列......
  • 【IT老齐046】RabbitMQ队列解决消息积压问题
    【IT老齐046】RabbitMQ队列解决消息积压问题场景每天上午10点,全国2万多名客户经理集中录入上一日JK单据到BorrowSale系统,峰值能达到500单/s。但信审系统任务重,最多只支持到60单/s,每日会导致大量消息积压解决方案工作队列RabbitMQ改为工作队列模式,将消息送给9个信审系统实......
  • 基础监控理论
    文章目录监控流程架构体系监控分类监控发展和技术企业中监控发展阶段通用技术和工具监控流程架构体系监控流程架构体系是确保信息系统健康、稳定运行的重要组成部分,它包括监控系统的设计、搭建、数据分析、数据采集、稳定性测试、自动化集成、部署上线以及图形化......
  • 服务器监控新利器:ServerBee带你看透服务器运行状态
    近年来,随着互联网的飞速发展,服务器已经成为企业运营中不可或缺的一部分。然而,服务器出现故障或者性能下降可能会给企业带来巨大的损失。因此,如何及时有效地监控服务器状态成为了企业管理者关注的焦点之一。今天,我将向大家介绍一款强大的服务器监控工具——ServerBee。Serv......
  • Linux 服务监控脚本
    Linux服务监控脚本个人搭建的zabbix服务器因性能问题总是关闭,所以写了个脚本对zabbix-server服务进行监控。当服务停止时,脚本会自动拉起服务并记录日志,方面定位排查。[root@elttwl~]#vim/opt/scripts/zabbix-monitor.sh#!/bin/bashSERVICE=zabbix-serverwhiletruedo......