刚刚在全新的CentOs6.6服务器(rabbitMq 3.4.1,erlang说17)上安装了RabitMq,并且无法启动。
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
也运行主机名-f显示正确的主机名。 例如
host4.mysite.com
在答复我跑了这些命令:兔子没有运行,并不会连接为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不能创build一个线程。 你有没有资源或安全限制?
这是直接回应2项。
Failed to create aux thread
不知道为什么之前没有发生过,因为我在erlang转储中看到了这个
processes: 13064032 processes_used: 13064032
但是我不确定erlang进程的数量是如何转换成系统进程的,但是不pipe我认为这是一个错误还是编程不兼容。 这只是没有太多的意义,因为我的虚拟开发服务器安装顺利。 以及我们的老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
检查我的开发盒(其中有pipe理插件functionRabbitMq安装)我进一步看到了这一点。
Erlang processes 206
所以真的不需要一个天才, 206是超过100所以经过一些更多的研究,我发现这个设置的默认值通常是1024,我可以改变它在/etc/security/limits.conf在那个文件中,我发现
* hard nproc 100
所以我刚刚把这个提升到rabbitmq用户的1024数量
rabbitmq hard nproc 1024
它就开始了! 启动并检查状态后,我看到了这一点
{processes,[{limit,1048576},{used,147}]},
我相信这里的限制是系统范围的? 仍然不确定erlang过程和其他过程数量之间的关系。
所以总之,100个过程对于erlang来说是不够的。 这是一个云托pipeSSAE 16专用networking服务器,通常托pipe公司设置这些用于resellers ,即。 您可以将服务器的某些部分用于托pipe您的客户端网站。 这很可能是他们将默认限制设置得如此之低的原因。 我们使用这种types的服务器,因为我们做了大量的数据库查询和报告编写工作,并且为我们所支付的费用提供了相当的权力。 所以当硬件满足我们的需求时,configuration也不适合我们的用例。
希望这可以帮助未来的人。