Назад | Перейти на главную страницу

Rabbit Mq не запускается

Только что установил RabitMq на новый сервер CentOs6.6 (rabbitMq 3.4.1, erlang говорит 17), и он не запускается.

Starting rabbitmq-server: FAILED - check /var/log/rabbitmq/startup_{log, _err}
rabbitmq-server.

журнал запуска

Stack trace:
[{inet_gethost_native,ensure_started,0,
                     [{file,"inet_gethost_native.erl"},{line,548}]},
{inet_gethost_native,getit,2,
                     [{file,"inet_gethost_native.erl"},{line,487}]},
{inet,gethostbyname_tm_native,4,[{file,"inet.erl"},{line,1094}]},
{inet,gethostbyname,3,[{file,"inet.erl"},{line,459}]},
{erl_epmd,port_please1,3,[{file,"erl_epmd.erl"},{line,81}]},
{rabbit_networking,record_distribution_listener,0,[]},
{rabbit_networking,boot,0,[]},
{rabbit,'-run_step/3-lc$^1/1-1-',2,[]}]

BOOT FAILED
===========

Error description:
{could_not_start,rabbit,
   {bad_return,
       {{rabbit,start,[normal,[]]},
        {'EXIT',
            {rabbit,failure_during_boot,
                {boot_step,networking,
                    {could_not_start_server,inet_gethost_native}}}}}}}

Дайте мне знать, если вам понадобится дополнительная информация. Любая помощь будет оценена, я думаю, что этот раздел проклят. В прошлый раз я получил новый сервер к Хэллоуину.

Похоже, он работает status. У меня есть строка для моего хоста, есть одна с IP-адресом, но удаление этого не помогло в etc / hosts.

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

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

attempted to contact: [rabbit@host4]

rabbit@host4:
  * connected to epmd (port 4369) on host4
  * epmd reports: node 'rabbit' not running at all
                  no other nodes on host4
  * suggestion: start the node

current node details:
- node name: 'rabbitmqctl-29678@host4'
- home dir: /var/lib/rabbitmq

У меня тоже работает этот процесс. Если это поможет.

root@host4 [981 19:09:47 ~]# ps aux|grep rabbit
rabbitmq 16068  0.0  0.0  10828   528 ?        S    16:13   0:00 /usr/lib64/erlang/erts-6.2/bin/epmd -daemon

также запуск hostname -f показывает мне правильное имя хоста. Например

  host4.mysite.com

В ответ я выполнил эти команды: rabbit не работал и не подключался как app_start.

Вот результаты rpm -qa --queryformat '%{NAME}\n' |grep erlang

erlang-mnesia
erlang-otp_mibs
erlang-reltool
erlang-snmp
erlang-erl_docgen
erlang-examples
erlang-erts
erlang-cosEvent
erlang-ic
erlang-debugger
erlang-stdlib
erlang-cosProperty
erlang-jinterface
erlang-typer
erlang-compiler
erlang-asn1
erlang-cosNotification
erlang-cosFileTransfer
erlang-parsetools
erlang-wx
erlang-dialyzer
erlang
erlang-solutions
erlang-hipe
erlang-ssl
erlang-ssh
erlang-percept
erlang-odbc
erlang-webtool
erlang-megaco
erlang-syntax_tools
erlang-public_key
erlang-edoc
erlang-cosTransactions
erlang-erl_interface
erlang-observer
erlang-common_test
erlang-kernel
erlang-runtime_tools
erlang-orber
erlang-eldap
erlang-sasl
erlang-os_mon
erlang-inets
erlang-diameter
erlang-tools
erlang-crypto
erlang-cosTime
erlang-eunit
erlang-test_server
erlang-gs
erlang-ose
erlang-xmerl
erlang-cosEventDomain
erlang-et

У меня есть ip_tables, поэтому я подумал, что это может быть проблема с брандмауэром, но я могу успешно telnet к имени хоста, которое кролик использует с 4369 как порт.

Когда я бегу nmap -p 5672

Starting Nmap 5.51 ( http://nmap.org ) at 2014-11-03 20:30 CST
Nmap scan report for host4 (127.0.0.1)
Host is up (0.000049s latency).
Other addresses for host4 (not scanned): xxx.xxx.xxx.xxx
rDNS record for 127.0.0.1: localhost.localdomain
PORT     STATE  SERVICE
5672/tcp closed amqp

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds

Как лучше всего убрать эту штуку, когда я это сделаю yum remove rabbitmq-server и установите более старую версию, скажем 3.3.5 Я получаю это сообщение об ошибке

Crash dump was written to: erl_crash.dump
Failed to create aux thread
Aborted (core dumped)

Для справки в будущем я решил проблему с некоторой помощью сообщества RabbitMq, которое указало мне в этом направлении, простым заявлением.

Это говорит о том, что Erlang VM не может создать поток. Есть ли у вас какие-либо ограничения ресурсов или безопасности?

Это был прямой ответ на 2 пункта.

 Failed to create aux thread

Не уверен, почему мне этого не приходило в голову раньше, потому что я видел это в дампе erlang

 processes: 13064032
 processes_used: 13064032

Однако я не уверен, как количество процессов erlang преобразуется в системный процесс, но, несмотря на это, я думал, что это ошибка или несовместимость программирования. Это просто не имело большого смысла, потому что установка на моем виртуальном сервере разработки прошла гладко. А также наш старый сервер CentOs 5.1. Кроме того, поскольку это был новый сервер с более чем в 3 раза большей скоростью, чем у нашего старого, я подумал, что ограничение ресурсов не является проблемой. Мне просто нужно было, чтобы кто-то сказал это, чтобы это сделать click в моей голове.

В любом случае, после некоторого исследования я запустил эту команду

#su rabbitmq
bash-4.1$ ulimit -a
=============================
core file size          (blocks, -c) 0
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 128218
max locked memory       (kbytes, -l) 64
max memory size         (kbytes, -m) 131072
open files                      (-n) 4096
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 8192
cpu time               (seconds, -t) unlimited
max user processes              (-u) 100
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

Здесь важна эта часть:

 max user processes              (-u) 100

Установив флажок в моем окне разработки (в котором есть функциональная установка RabbitMq с плагином управления), я также увидел это.

 Erlang processes   206

Так что не нужно быть гением, чтобы понять, что 206 больше, чем 100 поэтому после некоторых дополнительных исследований я обнаружил, что значение по умолчанию для этого параметра обычно составляет 1024, и я могу изменить его в /etc/security/limits.conf В этом файле я нашел

 *               hard    nproc           100

Так что я просто увеличил это до 1024 сумма для пользователя rabbitmq

 rabbitmq                 hard    nproc           1024

И он загорелся! После запуска и проверки статуса вижу это

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

Я считаю, что ограничение здесь для всей системы? Все еще не совсем уверен, как связаны процесс erlang и другие номера процессов.

Итак, в заключение 100 процесса недостаточно для работы erlang. Это выделенный веб-сервер SSAE 16, размещенный в облаке, обычно хостинговая компания настраивает их для использования resellers, т.е. вы можете отдать часть сервера на сервер для размещения веб-сайтов ваших клиентов. Скорее всего, поэтому они установили такой низкий лимит по умолчанию. Мы используем этот тип сервера, потому что мы делаем много запросов к базе данных и написания отчетов, и он предлагает изрядную мощность за то, что мы платим. Таким образом, хотя оборудование соответствует нашим потребностям, конфигурация также не подходит для нашего варианта использования.

Надеюсь, это поможет кому-то в будущем.