Не удается запустить сервер RabbitMQ в CentOS 6.5

Я собирался установить Sensu с помощью Chef, но RabbitMQ, похоже, не работает. Служба rabbitmq-server не запускается, хотя установка erlang и RabbitMQ прошла успешно.

Ошибка rabbitMQ говорит

Error: unable to connect to node rabbit@localhost: nodedown

а также

rabbitmq service has already started

Итак, я проверил процесс rabbitmq с помощью команды ps.

ps aux |grep rabbitmq

наверняка один процесс работает с пользователем rabbitmq

/usr/lib64/erlang/erts-6.1/bin/epmd -daemon

Я убил этот процесс и перезапустил службу rabbitmq-server. Однако не удалось запустить rabbitmq-сервер, и в том же журнале было показано одно и то же, и произошло то же самое.

Однажды я удалил erlang и rabbitmq и переустановил их, но результат был тот же.

Ниже приведены детали.

Сервер

OS: CentOS 6.5

Related installed packages
erlang.x86_64       17.1-1.1.el6
rabbitmq-server.noarch      3.1.5-1.el6

Исходный журнал

# /etc/init.d/rabbitmq-server status


Status of node rabbit@localhost ...
Error: unable to connect to node rabbit@localhost: nodedown

DIAGNOSTICS
===========

nodes in question: [rabbit@localhost]

hosts, their running nodes and ports:
- localhost: [{rabbitmqctl23036,37270}]

current node details:
- node name: rabbitmqctl23036@localhost
- home dir: /var/lib/rabbitmq
- cookie hash: Tghu0ucbQ4pq3Sc0JJBbAg==



# tail /var/log/rabbitmq/rabbit\@localhost.log



=INFO REPORT==== 6-Aug-2014::14:59:15 ===
Starting RabbitMQ 3.1.5 on Erlang 17
Copyright (C) 2007-2013 GoPivotal, Inc.
Licensed under the MPL.  See http://www.rabbitmq.com/

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
node           : rabbit@localhost
home dir       : /var/lib/rabbitmq
cookie hash    : 9qNy1Q7BP12PVVcbSnZwRw==
log            : /var/log/rabbitmq/[email protected]
sasl log       : /var/log/rabbitmq/[email protected]
database dir   : /var/lib/rabbitmq/mnesia/rabbit@localhost

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
Limiting to approx 924 file handles (829 sockets)

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
Memory limit set to 802MB of 2006MB total.

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
Disk free limit set to 1000MB

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
msg_store_transient: using rabbit_msg_store_ets_index to provide index

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
msg_store_persistent: using rabbit_msg_store_ets_index to provide index

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
started TCP Listener on [::]:5672

=INFO REPORT==== 6-Aug-2014::14:59:15 ===
Error description:
   {case_clause,{error,{already_started,<0.193.0>}}}

Log files (may contain more information):
   /var/log/rabbitmq/[email protected]
   /var/log/rabbitmq/[email protected]

Stack trace:
   [{rabbit_networking,start_listener0,4,[]},
    {rabbit_networking,'-start_listener/4-lc$^0/1-0-',4,[]},
    {rabbit_networking,start_listener,4,[]},
    {rabbit_networking,'-boot_ssl/0-lc$^0/1-0-',1,[]},
    {rabbit_networking,boot_ssl,0,[]},
    {rabbit_networking,boot,0,[]},
    {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]},
    {rabbit,run_boot_step,1,[]}]


=INFO REPORT==== 6-Aug-2014::14:59:16 ===
stopped TCP Listener on [::]:5672

=INFO REPORT==== 6-Aug-2014::14:59:16 ===
Error description:
   {could_not_start,rabbit,
       {bad_return,
           {{rabbit,start,[normal,[]]},
            {'EXIT',
                {rabbit,failure_during_boot,
                    {case_clause,{error,{already_started,<0.193.0>}}}}}}}}

Log files (may contain more information):
   /var/log/rabbitmq/[email protected]
   /var/log/rabbitmq/[email protected]

person sakajunquality    schedule 06.08.2014    source источник
comment
Порт 5672 уже занят? Может быть, вы можете использовать lsof для проверки?   -  person Anthony Kong    schedule 08.08.2014
comment
вы используете одного и того же пользователя для запуска rabbitmq и для связи с ним позже? Программы Erlang должны использовать один и тот же файл .erlang.cookie, чтобы иметь возможность связываться друг с другом.   -  person old_sound    schedule 11.08.2014
comment
В моем случае я настроил ssl_listeners в rabbitmq.config, но не tcp_listeners; когда я добавил в конфиг tcp_listeners (с другим портом), сервис снова заработал.   -  person Janaka Bandara    schedule 19.03.2018


Ответы (1)


Похоже, порт, который использует RabbitMQ (точнее, 5672), уже занят. Или в вашем случае это может быть все еще принято. Если вы убиваете приложение, которое открыло сокет на каком-то порту, вы не даете ему времени правильно закрыть это соединение. В конечном итоге система заметит это и освободит ресурс, но это может занять некоторое время. Так что вы можете немного подождать или изменить конфигурацию RabbitMQ.

Надеюсь, это поможет с некоторыми из ваших проблем.

person mpm    schedule 11.08.2014