首页主机资讯centos rabbitmq故障排查步骤

centos rabbitmq故障排查步骤

时间2026-01-19 11:27:03发布访客分类主机资讯浏览1312
导读:CentOS 上 RabbitMQ 故障排查步骤 一 快速判定与定位 确认服务状态与日志 查看服务状态:systemctl status rabbitmq-server 查看启动失败原因:journalctl -xe | tail -n...

CentOS 上 RabbitMQ 故障排查步骤

一 快速判定与定位

  • 确认服务状态与日志
    • 查看服务状态:systemctl status rabbitmq-server
    • 查看启动失败原因:journalctl -xe | tail -n 200
    • 查看节点日志:tail -f /var/log/rabbitmq/rabbit@< hostname> .log
  • 本地连通性自检
    • 管理页面:wget -O- http://localhost:15672(应返回登录页或 200)
    • AMQP 端口:telnet localhost 5672nc -vz localhost 5672
  • 远程连通性自检
    • 管理页面:http://< 服务器IP> :15672
    • 云厂商安全组/本机防火墙需放行 15672/5672(见下文)
  • 端口占用与进程
    • 占用检查:ss -lntp | egrep '5672|15672|4369'
    • 进程检查:ps -ef | grep rabbitmq;必要时 kill -9 < PID> 后重启
  • 插件与节点状态
    • 管理插件:rabbitmq-plugins list | grep management
    • 节点状态:rabbitmqctl statusrabbitmqctl cluster_status

二 常见故障与修复

  • 服务无法启动
    • 查看 journalctl -xe/var/log/rabbitmq/*.log 的错误关键词(配置语法、权限、依赖、资源告警等)
    • 端口冲突:释放或调整占用 5672/15672/4369 的进程
    • 资源告警:日志出现 memory/disk alarm 时,先扩容或临时下调阈值(见下文)
  • 主机名与 /etc/hosts 解析问题
    • 现象:Job for rabbitmq-server.service failed 且日志提示无法解析节点名或 epmd 连接失败
    • 处理:在 /etc/hosts 为当前 hostname 添加解析(示例:192.168.1.10 < hostname> ),确保本机可解析自身主机名后重启服务
  • 版本/依赖不兼容
    • 现象:启动报 crypto/ssl 相关错误,或启动即退出
    • 处理:核对 RabbitMQ–Erlang 版本矩阵;在 CentOS 7 上默认 glibc 2.17,不支持 RabbitMQ 3.13.x(需 glibc > = 2.27),建议选用 RabbitMQ 3.12.x + Erlang 25.x;安装缺失依赖(如 openssl-develsocat)后重装/重启
  • 远程访问不了
    • 本机可访问、远程不行:检查服务器 IP 是否正确、云安全组/本机防火墙是否放行 15672/5672
    • firewalld 放行示例:firewall-cmd --zone=public --add-port=15672/tcp --permanent & & firewall-cmd --reload
    • 管理插件未启用:rabbitmq-plugins enable rabbitmq_management
  • 集群节点失联
    • 节点间需能解析主机名并互通 4369(epmd)25672 等端口
    • /etc/hosts 补全所有节点 IP–主机名 映射;必要时检查 .erlang.cookie 一致性与权限(见下文)
  • 认证与权限问题
    • 默认账号 guest/guest 仅允许本地登录;远程需创建管理员账号并赋权
    • 示例:rabbitmqctl add_user admin < pwd> & & rabbitmqctl set_user_tags admin administrator & & rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

三 高频命令清单

  • 服务管理
    • systemctl start|stop|restart|status rabbitmq-server
    • rabbitmq-server -detached(后台启动)
  • 节点与应用
    • rabbitmqctl statusrabbitmqctl stop_apprabbitmqctl start_app
  • 插件
    • rabbitmq-plugins enable|disable rabbitmq_management
  • 用户与权限
    • rabbitmqctl add_user < u> < p> rabbitmqctl set_user_tags < u> administrator
    • rabbitmqctl set_permissions -p / < u> ".*" ".*" ".*"
  • 集群
    • rabbitmqctl cluster_statusrabbitmqctl join_cluster < node>
  • 资源与告警
    • 查看告警:rabbitmqctl status | egrep 'memory|disk'
    • 调整阈值(示例):rabbitmqctl set_vm_memory_high_watermark 0.4rabbitmqctl set_disk_free_limit 500MB

四 集群与网络专项排查

  • 节点名与解析
    • 统一并固化 hostname,在 /etc/hosts 为所有节点添加 IP–主机名 双向解析,避免节点名漂移导致 nodedown
  • Cookie 一致性与权限
    • 集群节点 .erlang.cookie 必须一致;文件权限建议 400
    • 路径:RPM 安装通常为 /var/lib/rabbitmq/.erlang.cookie;二进制安装通常为 $HOME/.erlang.cookie
  • 关键端口与连通性
    • 确保节点间可互通 4369(epmd)25672(集群通信)、以及 5672/15672(业务与管理)
    • 本机:ss -lntp | egrep '4369|25672|5672|15672'
    • 跨机:nc -vz < peer_ip> 4369nc -vz < peer_ip> 25672
  • 集群状态核验
    • rabbitmqctl cluster_status 检查 running_nodespartitions 是否为空,必要时按顺序重启各节点

五 消息丢失与可靠性核查

  • 生产者确认
    • 开启 Confirm 模式,处理 ack/nack 并记录重试
  • 持久化
    • 队列:durable=true;消息:delivery_mode=2
  • 死信队列
    • 为失败消息配置 DLX/DLK,便于重试与分析
  • 高可用
    • 使用 镜像队列(示例策略:rabbitmqctl set_policy ha-all "^ha\." '{ "ha-mode":"all","ha-sync-mode":"automatic"} '
  • 监控与日志
    • 结合 /var/log/rabbitmq/ 与管理插件监控页面定位异常

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: centos rabbitmq故障排查步骤
本文地址: https://pptw.com/jishu/785637.html
rabbitmq如何配置持久化centos centos rabbitmq备份恢复方法

游客 回复需填写必要信息