首先确认RabbitMQ服务是否正在运行,使用以下命令查看服务状态:
sudo systemctl status rabbitmq-server 若服务未运行,启动服务并设置开机自启:
sudo systemctl start rabbitmq-server sudo systemctl enable rabbitmq-server 服务状态应为“active (running)”,若未运行,需检查系统日志(journalctl -xe)排查启动失败原因。
确保客户端与RabbitMQ服务器之间的网络可达:
ping <RabbitMQ服务器IP>,确认网络连通性。telnet <RabbitMQ服务器IP> 5672(AMQP默认端口)或telnet <RabbitMQ服务器IP> 15672(管理界面端口),若连接失败,说明网络或防火墙阻断。确认RabbitMQ是否在正确端口监听:
sudo ss -tulnp | grep beam # 或使用 sudo lsof -i :5672 正常应输出类似以下内容(LISTEN状态表示端口开放):
beam.smp 1234 rabbitmq 25u IPv6 12345 0t0 TCP *:5672 (LISTEN) 若未监听,需检查RabbitMQ配置文件(/etc/rabbitmq/rabbitmq.conf)中的listeners.tcp.default设置。
CentOS的防火墙(firewalld)或SELinux可能阻止端口访问:
sudo firewall-cmd --zone=public --add-port=5672/tcp --permanent sudo firewall-cmd --zone=public --add-port=15672/tcp --permanent sudo firewall-cmd --reload Enforcing模式,临时设置为Permissive测试是否解决问题:sudo setenforce 0 若问题解决,需调整SELinux策略(如semanage port -a -t amqp_port_t -p tcp 5672)。日志文件位于/var/log/rabbitmq/,文件名为rabbit@<hostname>.log。使用以下命令查看实时日志或错误信息:
sudo tail -f /var/log/rabbitmq/rabbit@$(hostname).log # 实时追踪日志 sudo grep -i "error" /var/log/rabbitmq/rabbit@$(hostname).log # 筛选错误日志 常见错误包括:
connection refused:服务未启动或端口未开放;disk alarm:磁盘空间不足(需清理/var/lib/rabbitmq/目录);access_refused:用户权限不足(需通过rabbitmqctl set_permissions调整)。确认配置文件(/etc/rabbitmq/rabbitmq.conf或/etc/rabbitmq/rabbitmq-env.conf)中的关键参数正确:
nodename = rabbit@$(hostname)(需与集群节点名称一致);listeners.tcp.default = 5672(默认AMQP端口);rabbitmqctl set_permissions -p / myuser ".*" ".*" ".*")。启用RabbitMQ管理插件,通过Web界面查看队列、连接、用户等状态:
sudo rabbitmq-plugins enable rabbitmq_management 访问http://<RabbitMQ服务器IP>:15672,使用默认用户名guest/密码guest登录(仅限本地访问,远程访问需创建新用户并授权)。通过界面可直观查看:
Connections):是否达到上限;Queues):是否有积压;Overview):内存、磁盘使用情况。RabbitMQ对内存、磁盘空间敏感,需确保资源充足:
free -m查看内存使用,若available内存不足,调整vm_memory_high_watermark(默认0.4,即40%内存);df -h /var/lib/rabbitmq/查看磁盘剩余空间,建议保留至少1GB;top或htop查看CPU使用率,过高可能导致连接超时。确保客户端连接参数(主机名、端口、用户名、密码、vhost)与RabbitMQ配置一致:
configure、write、read权限。