RabbitMQ теряет конфигурацию после обновления - PullRequest
0 голосов
/ 03 декабря 2018

После обновления кластера с двумя узлами с RabbitMQ 3.6.15 до 3.7.9 (в документации это поддерживается напрямую - без обновления промежуточной версии), наряду с обновлением Erlang с 18.7.3 до последней 21.10.1.1, rabbitmq-server не запускается на узле «обновления»:

systemctl start rabbitmq-server.service
Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.

journalctl -xe говорит

attempted to contact: ['rabbit@upd-web']
rabbit@upd-web:
  * connected to epmd (port 4369) on upd-web
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on upd-web
  * suggestion: start the node
Current node details:
 * node name: 'rabbitmqcli-3561-rabbit@upd-web'
 * effective user's home directory: /var/lib/rabbitmq
 * Erlang cookie hash: iGIHB+jl59ul7YFrqAFIZQ==

Проблема в том, что после обновления кролик пытается подключиться к другому локальному узлуотличается от того, который был настроен ранее.До обновления имени узла (кролик работает): rabbit@376e265c649945fe87014f56bf054fe7.После обновления имя узла: rabbit@upd-web.Имя узла определяется в / etc / hosts и остается неизменным.Имя хоста также такое же, как и раньше: rabbit@upd-web.Поэтому я не знаю, почему он пытается подключиться к другому имени узла (имени хоста).Из того, что я вижу, он не может разрешить имя нового узла (очевидно).

Теперь файл конфигурации остался таким же, как и до обновления.Старый формат все еще поддерживается, согласно документации.

До / после обновления конфигурации:

[ { kernel, [ { inet_dist_listen_min, 6150 }, { inet_dist_listen_max, 6150 } ] }, { rabbit, [ {tcp_listeners, [{'0.0.0.0', 5672},{'::1', 5672}]}, { cluster_nodes, { [ 'rabbit@f681cc63b892eecff1fa91a9f1ddbb9b','rabbit@376e265c649945fe87014f56bf054fe7' ], disc } } , { cluster_partition_handling, autoheal } ] } ].

файл хостов (без изменений, так как до попытки обновления кролика):

127.0.0.1       localhost
127.0.1.1       upd-web

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
192.168.56.104 376e265c649945fe87014f56bf054fe7
127.0.0.1       376e265c649945fe87014f56bf054fe7

Недавно созданный файл конфигурации сообщает следующее:

 node           : rabbit@upd-web
 home dir       : /var/lib/rabbitmq
 config file(s) : /etc/rabbitmq/rabbitmq.config
 cookie hash    : iGIHB+jl59ul7YFrqAFIZQ==
 log(s)         : /var/log/rabbitmq/rabbit@upd-web.log
                : /var/log/rabbitmq/rabbit@upd-web_upgrade.log
 database dir   : /var/lib/rabbitmq/mnesia/rabbit@upd-web

... в то время как старый ссылался на старое (и правильное) имя узла:

node           : rabbit@376e265c649945fe87014f56bf054fe7
home dir       : /var/lib/rabbitmq
config file(s) : /etc/rabbitmq/rabbitmq.config
cookie hash    : iGIHB+jl59ul7YFrqAFIZQ==
log            : /var/log/rabbitmq/rabbit@376e265c649945fe87014f56bf054fe7.log
sasl log       : /var/log/rabbitmq/rabbit@376e265c649945fe87014f56bf054fe7-sasl.log
database dir   : /var/lib/rabbitmq/mnesia/rabbit@376e265c649945fe87014f56bf054fe7

Как заставить RabbitMQ ссылаться на правильное имя узла / базу данных?

1 Ответ

0 голосов
/ 04 декабря 2018

Найдена проблема, мне нужно было изменить rabbitmq-env (она была настроена перед обновлением).В частности:

RABBITMQ_NAME_TYPE=-sname
[ "x" = "x$HOSTNAME" ] && HOSTNAME=`env hostname`

Я изменил env hostname замену команды другой, которая помещает строку, присвоенную localhost, из моего /etc/hosts.

...