RabbitMQ服務主機名更改導致消息隊列無法連接


RabbitMQ服務主機名更改導致消息隊列無法連接

 

在多節點環境中,RabbitMQ服務使用一個獨立節點部署。在此環境下,如果修改了RabbitMQ節點的主機名,則需要更新RabbitMQ用戶才能保證服務能夠被正確訪問。

 

RabbitMQ節點原主機名為:

root@Aloe-Express-20:/etc# cat /etc/hostname

Aloe-Express-20

root@Aloe-Express-20:/etc# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 Aloe-Express-20

172.16.112.81 CCnode

 

修改RabbitMQ節點主機名為:

root@Aloe-Express-22:/etc# cat /etc/hostname

Aloe-Express-22

root@Aloe-Express-22:/etc# cat /etc/hosts

127.0.0.1 localhost

127.0.1.1 Aloe-Express-22

172.16.112.81 CCnode

 

重啟RabbitMQ節點后,發現nova服務無法連接rabbitMQ消息隊列,日志抱錯如下:

2016-03-29 10:34:39.477 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed

2016-03-29 10:34:44.492 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed

2016-03-29 10:34:49.508 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed

2016-03-29 10:34:54.523 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed

2016-03-29 10:34:59.539 1012 ERROR oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] AMQP server ccnode:5672 closed the connection. Check login credentials: Socket closed

此錯誤是由於用戶密碼驗證不通過造成。

 

於是回到RabbitMQ節點,查看RabbitMQ服務運行狀態:

root@Aloe-Express-22:/etc/sahara# ps -ef | grep rabbit

rabbitmq  1939     1  0 10:20 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon

rabbitmq  2065     1  0 10:20 ?        00:00:00 /bin/sh /usr/sbin/rabbitmq-server

rabbitmq  2079  2065  2 10:20 ?        00:00:11 /usr/lib/erlang/erts-5.10.4/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.4.3/sbin/../ebin -noshell -noinput -s rabbit boot -sname rabbit@Aloe-Express-22 -boot start_sasl -config /etc/rabbitmq/rabbitmq -kernel inet_default_connect_options [{nodelay,true}] -sasl errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@Aloe-Express-22.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@Aloe-Express-22-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.4.3/sbin/../plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@Aloe-Express-22-plugins-expand" -os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@Aloe-Express-22" -kernel inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672

rabbitmq  2258  2079  0 10:20 ?        00:00:00 inet_gethost 4

rabbitmq  2259  2258  0 10:20 ?        00:00:00 inet_gethost 4

root     17356  4079  0 10:29 pts/3    00:00:00 grep --color=auto rabbit

 

服務正常運行,查看服務狀態:

root@Aloe-Express-22:/etc/sahara# rabbitmqctl status

Status of node 'rabbit@Aloe-Express-22' ...

[{pid,2079},

 {running_applications,

     [{rabbitmq_management,"RabbitMQ Management Console","3.4.3"},

      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.4.3"},

      {webmachine,"webmachine","1.10.3-rmq3.4.3-gite9359c7"},

      {mochiweb,"MochiMedia Web Server","2.7.0-rmq3.4.3-git680dba8"},

      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.4.3"},

      {inets,"INETS  CXC 138 49","5.9.7"},

      {amqp_client,"RabbitMQ AMQP Client","3.4.3"},

      {rabbit,"RabbitMQ","3.4.3"},

      {os_mon,"CPO  CXC 138 46","2.2.14"},

      {mnesia,"MNESIA  CXC 138 12","4.11"},

      {xmerl,"XML parser","1.3.5"},

      {sasl,"SASL  CXC 138 11","2.3.4"},

      {stdlib,"ERTS  CXC 138 10","1.19.4"},

      {kernel,"ERTS  CXC 138 10","2.16.4"}]},

 {os,{unix,linux}},

 {erlang_version,

     "Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:30] [kernel-poll:true]\n"},

 {memory,

     [{total,40659504},

      {connection_readers,339200},

      {connection_writers,0},

      {connection_channels,0},

      {connection_other,79720},

      {queue_procs,2704},

      {queue_slave_procs,0},

      {plugins,354560},

      {other_proc,13826296},

      {mnesia,60648},

      {mgmt_db,80400},

      {msg_index,46784},

      {other_ets,1057432},

      {binary,29600},

      {code,19580581},

      {atom,703377},

      {other_system,4498202}]},

 {alarms,[]},

 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},

 {vm_memory_high_watermark,0.4},

 {vm_memory_limit,3349220556},

 {disk_free_limit,50000000},

 {disk_free,154967289856},

 {file_descriptors,

     [{total_limit,924},{total_used,11},{sockets_limit,829},{sockets_used,9}]},

 {processes,[{limit,1048576},{used,201}]},

 {run_queue,0},

 {uptime,567}]

 

服務均正常運行,查看服務運行的/var目錄:

root@Aloe-Express-22:/etc/sahara# cd /var/lib/rabbitmq/

root@Aloe-Express-22:/var/lib/rabbitmq# ls

mnesia

root@Aloe-Express-22:/var/lib/rabbitmq# cd mnesia/

root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# ls

rabbit@Aloe-Express-20  rabbit@Aloe-Express-20-plugins-expand  rabbit@Aloe-Express-22  rabbit@Aloe-Express-22-plugins-expand

 

由於修改了主機名,導致RabbitMQ消息隊列出現更改,此更改會導致用戶的變化,查看當前環境的用戶:

root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# rabbitmqctl list_users

Listing users ...

guest [administrator]

 

guest用戶為RabbitMQ默認創建的一個用戶,但guest用戶的密碼為隨機密碼。需重新設置密碼:

root@Aloe-Express-22:/var/lib/rabbitmq/mnesia# rabbitmqctl change_password guest password

Changing password for user "guest" ...

 

guest用戶密碼修改以后,發現nova服務日志恢復正常:

2016-03-29 10:35:01.557 1012 INFO oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] Reconnected to AMQP server on ccnode:5672

2016-03-29 10:35:01.558 1012 INFO oslo_messaging._drivers.impl_rabbit [req-9beb2426-1c81-45d8-b340-1fbc7487e221 - - - - -] Connected to AMQP server on ccnode:5672

 

 

結論

當修改RabbitMQ主機的主機名時,需重新進行用戶名密碼創建才能保證外部服務正常使用RabbitMQ服務。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM