在CentOS上排查RabbitMQ網絡問題可按以下步驟進行:
檢查服務狀態
sudo systemctl status rabbitmq-server
確保服務已啟動,未啟動則執行:
sudo systemctl start rabbitmq-server
sudo systemctl enable rabbitmq-server # 設置開機自啟
驗證端口監聽
netstat或ss命令檢查RabbitMQ默認端口(5672、15672)是否監聽:sudo netstat -tuln | grep -E '5672|15672'
# 或
sudo ss -tuln | grep -E '5672|15672'
若無LISTEN狀態,可能端口未開放或配置錯誤。排查防火墻規則
sudo firewall-cmd --list-ports | grep -E '5672|15672'
若未開放,添加規則并重載:sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --reload
確認配置文件正確性
/etc/rabbitmq/rabbitmq.conf或rabbitmq-env.conf,確保tcp_listeners配置正確(如監聽所有接口0.0.0.0或指定IP),且無語法錯誤。查看日志定位問題
/var/log/rabbitmq/),搜索ERROR或WARN級別日志,獲取具體錯誤信息(如端口沖突、權限不足等)。測試網絡連通性
ping測試服務器網絡連通性,或通過telnet測試端口可達性:ping <RabbitMQ服務器IP>
telnet <RabbitMQ服務器IP> 5672
若telnet失敗,可能是網絡策略或防火墻攔截。檢查資源使用情況
free -m # 查看內存使用
df -h /var/lib/rabbitmq # 查看數據目錄磁盤空間
啟用管理插件(可選)
http://服務器IP:15672:sudo rabbitmq-plugins enable rabbitmq_management
注:若為集群環境,還需檢查節點間網絡通信(如rabbitmqctl cluster_status)及Erlang Cookie一致性。