rabbitmq消息队列centos如何监控
导读:CentOS 上监控 RabbitMQ 的实用方案 一 基础检查与内置管理界面 启用管理插件并创建监控专用账号: 启用插件:rabbitmq-plugins enable rabbitmq_management 访问地址:http://...
CentOS 上监控 RabbitMQ 的实用方案
一 基础检查与内置管理界面
- 启用管理插件并创建监控专用账号:
- 启用插件:
rabbitmq-plugins enable rabbitmq_management - 访问地址:
http://< 服务器IP> :15672 - 安全建议:修改默认密码,创建只读监控账号并授权
rabbitmqctl add_user monitor < 密码>rabbitmqctl set_user_tags monitor monitoringrabbitmqctl set_permissions -p / monitor ".*" ".*" ".*"
- 启用插件:
- 命令行巡检(快速定位问题):
- 节点状态:
rabbitmqctl status - 队列概况:
rabbitmqctl list_queues name messages_ready messages_unacknowledged consumers - 连接与通道:
rabbitmqctl list_connections name state recv_oct send_oct - 交换机:
rabbitmqctl list_exchanges name type durable auto_delete
- 节点状态:
- 关键关注:队列的 Unacked Message 持续大于 0 且增长,通常意味着消费者处理受阻或异常,需要结合消费者日志与处理能力排查。
二 Prometheus Grafana 监控(推荐)
- 方式 A 内置 Prometheus 插件(原生指标,轻量)
- 启用插件:
rabbitmq-plugins enable rabbitmq_prometheus - 指标端口:默认 5552,验证:
curl http://localhost:5552/metrics - Prometheus 抓取配置示例:
- scrape_configs:
- job_name: ‘rabbitmq’
static_configs:
- targets: [‘< 节点IP> :5552’]
- job_name: ‘rabbitmq’
static_configs:
- scrape_configs:
- Grafana:导入官方仪表盘模板 ID 10981,常用指标包括:
rabbitmq_queue_messages(队列消息总数)rabbitmq_queue_consumers(消费者数量)rabbitmq_node_mem_used、rabbitmq_node_disk_free(节点资源)rabbitmq_connections(连接数)
- 启用插件:
- 方式 B RabbitMQ Exporter(兼容性强,细粒度)
- 部署 exporter(示例 v0.10.0):
- 下载解压后配置
rabbitmq.yml(指向 5672 管理账号或专用账号) - 启动:
./bin/rabbitmq_exporter
- 下载解压后配置
- Prometheus 抓取:
targets: ['< exporterIP> :9419'] - Grafana 导入社区面板并配置数据源即可。
- 部署 exporter(示例 v0.10.0):
三 Zabbix 监控
- 方案一 基于管理 API 的模板
- 部署社区模板(如 jasonmcintosh/rabbitmq-zabbix):
- 将脚本放入
/etc/zabbix/scripts/rabbitmq,创建隐藏认证文件 .rab.auth(含USERNAME/PASSWORD/CONF/LOGLEVEL/LOGFILE/PORT(15672)) - 修正脚本内路径与日志路径,脚本与目录权限设为 755
- 在
zabbix_agentd.conf开启:UnsafeUserParameters=1、Timeout=15、Include=/etc/zabbix/zabbix_agentd.conf.d/*.conf - 服务端导入模板,建议使用主动模式(配置
ServerActive) - 常见报错
/var/log/rabbitmq_zabbix.log无权限,执行:chown zabbix:zabbix /var/log/rabbitmq_zabbix.log
- 将脚本放入
- 部署社区模板(如 jasonmcintosh/rabbitmq-zabbix):
- 方案二 Zabbix Agent 2 的 RabbitMQ 插件
- 安装 Zabbix Agent 2 与插件,配置 Server/ServerActive,导入官方或社区模板,按需选择自动发现队列/连接等监控项。
四 关键指标与告警建议
- 建议重点监控与阈值示例:
- 队列深度:
rabbitmq_queue_messages > 1000持续 5 分钟 触发告警(Warning) - 未确认消息:
rabbitmq_queue_messages_unacknowledged持续增长或大于阈值 - 消费者:
rabbitmq_queue_consumers == 0(无消费者) - 连接数:
rabbitmq_connections突增/突降 - 资源:
rabbitmq_node_mem_used / rabbitmq_node_disk_free逼近水位
- 队列深度:
- 资源水位与稳定性:
- 内存水位:
vm_memory_high_watermark.relative = 0.6 - 磁盘预警:
disk_free_limit.absolute = 1GB
- 内存水位:
- 集群与高可用:
- 建议部署为集群,并使用镜像队列策略提升可用性,例如:
rabbitmqctl set_policy ha-all "^ha\\." '{ "ha-mode":"all"} '(按需调整匹配规则)。
- 建议部署为集群,并使用镜像队列策略提升可用性,例如:
五 快速排障清单
- 管理界面与 API 访问异常:确认 15672 端口开放、账号权限正确、管理插件已启用
- Prometheus 抓取失败:确认 5552(或 9419)端口可达,
curl能返回指标,防火墙/安全组策略正确 - Zabbix 无数据:检查
UnsafeUserParameters=1、主动模式ServerActive、脚本与日志权限、模板与主机关联是否正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: rabbitmq消息队列centos如何监控
本文地址: https://pptw.com/jishu/778784.html
