O Rabbit Mq não inicia

3

Acabou de instalar o RabitMq em um novo servidor CentOs6.6 (rabbitMq 3.4.1, erlang diz 17) e ele não consegue iniciar.

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

log de inicialização

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}}}}}}}

Deixe-me saber se você precisar de alguma outra informação. Qualquer ajuda seria apreciada, acho que este sever é amaldiçoado. A última vez que recebo um novo servidor no Halloween.

Parece que está em execução status . Eu tenho uma linha para o meu host, há um com o endereço IP, mas removendo isso não ajuda, em 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

Eu também tenho esse processo em execução. Se isso ajudar.

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

também     executando o host -f mostra-me o nome do host correto. Por exemplo

  host4.mysite.com

Em resposta, eu executei os comandos: rabbit não estava em execução e não se conectaria como o app_start.

Aqui estão os resultados de 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

Eu tenho ip_tables, então achei que poderia ser um problema de firewall, mas posso telnet com sucesso para o nome do host que o rabbit está usando com 4369 como porta.

Quando eu corro 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

Qual é a melhor maneira de remover essa coisa, quando eu faço yum remove rabbitmq-server e instalo uma versão mais antiga, digamos 3.3.5 , recebo esta mensagem de erro

Crash dump was written to: erl_crash.dump
Failed to create aux thread
Aborted (core dumped)
    
por ArtisticPhoenix 03.11.2014 / 02:01

1 resposta

2

Para referência futura, resolvi o problema, com alguma ajuda da comunidade RabbitMq, que me apontou nessa direção, por meio de uma simples declaração.

This suggests Erlang VM cannot create a thread. Do you have any resource or security restrictions in place?

Isso foi diretamente em resposta a dois itens.

 Failed to create aux thread

Não sei por que isso não ocorreu antes, porque eu vi isso no erlang dump

 processes: 13064032
 processes_used: 13064032

No entanto, não tenho certeza de como o número de processos erlang é convertido em processo do sistema, mas, independentemente disso, achei que fosse um bug ou uma incompatibilidade de programação. Simplesmente não fazia muito sentido porque a instalação correu bem no meu servidor de desenvolvimento virtual. Bem como o nosso velho servidor 5.1 CentOS. Além disso, como este era um novo, separe com > 3x a velocidade do nosso antigo, pensei que atingir os limites de recursos não era um problema. Eu só precisava de alguém para dizer isso para torná-lo click em minha mente.

De qualquer forma, depois de algumas pesquisas eu executei este comando

#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

O importante aqui é esta parte:

 max user processes              (-u) 100

Verificando minha caixa de desenvolvimento (que tem uma instalação funcional do RabbitMq com o plugin de gerenciamento) Eu vi ainda isso.

 Erlang processes   206

Então, não é preciso ser um gênio para descobrir que 206 é mais que 100 Então, depois de mais algumas pesquisas, descobri que o valor padrão para essa configuração é tipicamente 1024, e que posso alterá-lo em /etc/security/limits.conf Nesse arquivo eu encontrei

 *               hard    nproc           100

Por isso, acrescentei isso à quantidade de 1024 do usuário rabbitmq

 rabbitmq                 hard    nproc           1024

E disparou bem! Depois de iniciá-lo e verificar o status, vejo isso

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

Eu acredito que o limite aqui é todo o sistema? Ainda não tenho certeza de como o processo erlang e esses outros números de processo se relacionam.

Portanto, para concluir, o processo 100 não é suficiente para que o erlang funcione. Esse é um servidor da Web dedicado SSAE 16 hospedado em nuvem, normalmente a empresa de hospedagem os configura para uso em resellers , ou seja. você pode extrair partes do servidor para hospedar seus sites de clientes. Isso é mais provável porque eles definiram um limite padrão tão baixo. Usamos esse tipo de servidor porque fazemos muitas pesquisas de banco de dados e redigimos relatórios, e ele oferece uma boa quantidade de energia para o que pagamos. Portanto, embora o hardware atenda às nossas necessidades, a configuração também não se ajusta ao nosso caso de uso.

Espero que isso possa ajudar alguém no futuro.

    
por 05.11.2014 / 19:10