以下是Ubuntu RabbitMQ故障排查的核心技巧,涵蓋服務狀態、日志分析、配置檢查等關鍵環節:
systemctl status rabbitmq-server 查看服務是否正常運行,未啟動時用 systemctl start rabbitmq-server 啟動。rabbitmqctl status 檢查節點狀態,確認是否處于 running 狀態,注意內存、磁盤等資源使用情況。/var/log/rabbitmq/ 目錄,使用 tail -f rabbit@hostname.log 實時追蹤錯誤信息,或通過管理插件(需先啟用)在Web界面查看。connection_closed_abruptly:檢查網絡、防火墻或客戶端心跳配置。flow control initiated:排查內存不足、消費者處理慢或隊列堆積問題。/etc/rabbitmq/rabbitmq.conf,重點關注端口(默認5672)、監聽地址、虛擬主機權限等配置,修改后需重啟服務。netstat -tuln | grep 5672 確認端口監聽狀態,通過 ufw allow 5672 開放防火墻(若使用ufw)。ping 和 telnet 測試節點間網絡連接,確保集群節點間通信正常。free -m 查看內存使用,df -h 檢查磁盤空間,避免因資源不足觸發流控。rabbitmqctl list_queues 查看隊列堆積情況,優化消費者性能或調整 prefetch_count。rabbitmq-plugins enable rabbitmq_management)通過Web界面監控隊列、用戶權限等。rabbitmqctl cluster_status 查看集群狀態,確保節點能正常加入。erl -version 確認Erlang版本與RabbitMQ兼容,可通過 apt-get install erlang 重新安裝匹配版本。rabbitmqctl list_users 和 rabbitmqctl list_permissions 確保用戶有對應虛擬主機權限。參考來源: