А теперь давайте поговорим за RabbitMQ
Jun. 9th, 2021 06:55 pm.. и его проблемы.
Снова решил пописать про работу. На сей раз, проблема возника с RabbitMQ.
Имеется кролик с неработающими очередями. При этом всё поднято, но если заглянуть в логи, то можно увидеть в первую очередь нечто такое:
Если же зайти в админку кролика, то мы видим сообщение вида:
Virtual host / experienced an error on node rabbit@somehost and may be inaccessible
После раскуривания некоторого количества логов, выяснилось, что проблема в Mnesia. По какой-то причине корраптятся сообщения в msg_stores. Если повнимательнее поискать, то можно заметить такое:
Дальше останавливаем корлика, затем идём по указанному пути и грохаем целиком /var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/. После этого запускаем демона заново. Всё должно запуститься без проблем.
Некоторые люди зачем-то удаляют mnesia целиком, но если у вас, как и у меня, тонны очередей, эксчейнджей и пользователей, то потом это порой будет проблематично восстаналивать даже при наличии любой системы управления конфигурациями.
Снова решил пописать про работу. На сей раз, проблема возника с RabbitMQ.
Имеется кролик с неработающими очередями. При этом всё поднято, но если заглянуть в логи, то можно увидеть в первую очередь нечто такое:
2021-06-09 10:02:38.030 [error] <0.19004.32> Error on AMQP connection <0.19004.32> (192.168.0.1:42538 -> 192.168.0.3:5672, vhost: 'none', user: 'updater', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'XXX': vhost '/' is down",
'connection.open'}}
2021-06-09 10:02:38.030 [info] <0.19004.32> closing AMQP connection <0.19004.32> (192.168.0.1:42538 -> 192.168.0.3:5672, vhost: 'none', user: 'updat
er')
2021-06-09 10:02:38.031 [info] <0.19001.32> accepting AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672)
2021-06-09 10:02:38.032 [info] <0.19020.32> accepting AMQP connection <0.19020.32> (192.168.0.1:42540 -> 192.168.0.3:5672)
2021-06-09 10:02:38.033 [error] <0.19001.32> Error on AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672, vhost: 'none', user: 'smsc', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'YYY': vhost '/' is down",
'connection.open'}}
2021-06-09 10:02:38.034 [info] <0.19001.32> closing AMQP connection <0.19001.32> (192.168.0.2:14580 -> 192.168.0.3:5672, vhost: 'none', user: 'smsc')
2021-06-09 10:02:38.035 [error] <0.19020.32> Error on AMQP connection <0.19020.32> (192.168.0.1:42540 -> 192.168.0.3:5672, vhost: 'none', user: 'updater', state: opening), channel 0:
{handshake_error,opening,
{amqp_error,internal_error,
"access to vhost '/' refused for user 'XXX': vhost '/' is down",
'connection.open'}}
Если же зайти в админку кролика, то мы видим сообщение вида:
Virtual host / experienced an error on node rabbit@somehost and may be inaccessible
После раскуривания некоторого количества логов, выяснилось, что проблема в Mnesia. По какой-то причине корраптятся сообщения в msg_stores. Если повнимательнее поискать, то можно заметить такое:
CRASH REPORT Process
<0.430.0> with 0 neighbours crashed with reason: no match of right hand value {error,{not_a_dets_file,”/var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/recovery.d ets”}} in rabbit_recovery_terms:open_table/1 line 197
Дальше останавливаем корлика, затем идём по указанному пути и грохаем целиком /var/lib/rabbitmq/mnesia/rabbit@hostname_1/msg_stores/vhosts/628WB79CIFDYO9LJI6DKMI09L/. После этого запускаем демона заново. Всё должно запуститься без проблем.
Некоторые люди зачем-то удаляют mnesia целиком, но если у вас, как и у меня, тонны очередей, эксчейнджей и пользователей, то потом это порой будет проблематично восстаналивать даже при наличии любой системы управления конфигурациями.