AMQP Server Unreachable

  1. 新增 instance 時,狀態 ERROR,查詢 log,AMQP server on ip110:5672 is unreachable。
    [root@ip110 ~]<demo># grep -m1 AMQP /var/log/nova/nova-api.log
    2020-05-27 08:52:56.753 181993 ERROR oslo.messaging._drivers.impl_rabbit 
    [req-b7e43d4c-7134-4baa-8b2b-97825e947326 fdae41299d574ea59fc26bef4793885b 
    0abfdfea73d142d08192aab5cc051642 - default default] 
    [1fe95ac0-bc0b-4873-b169-52bfa1fa929c] AMQP server on ip110:5672 is unreachable:
     [Errno 32] Broken pipe. Trying again in 1 seconds. 
    Client port: 4306: error: [Errno 32] Broken pipe
    
  2. telnet 連線 ip110 的 5672 port,連線成功,表示 AMQP server 運作正常,也防火牆沒擋。
    [root@ip110 ~]<demo># telnet ip110 5672
    Trying 163.17.10.110...
    Connected to ip110.
    Escape character is '^]'.
    
    Connection closed by foreign host.
    
  3. 查詢 nova.conf 的連線帳號為 openstack,密碼 xxxxxx。
    [root@ip110 ~]<demo># grep rabbit: /etc/nova/nova.conf
    transport_url=rabbit://openstack:xxxxxx@ip110
    
  4. 重新設定 openstack 的密碼。
    [root@ip110 ~]<demo># rabbitmqctl change_password openstack xxxxxx
    
  5. 重新設定 openstack 的 密碼還是無效,刪除帳號 openstack,重新產生並設定權限。
    [root@ip110 ~]<demo># rabbitmqctl add_user openstack xxxxxx
    [root@ip110 ~]<demo># rabbitmqctl set_permissions openstack ".*" ".*" ".*"
    
  6. 重新啟動 rabbitmq-server 服務,成功解決問題。
    [root@ip110 ~]<demo># systemctl restart rabbitmq-server.service