RabbitMQ学习之Linux下安装(一)

来源:互联网 发布:数据透视表页字段在哪 编辑:程序博客网 时间:2024/06/05 06:05

CentOS 6.2 64bit 安装erlang及RabbitMQ Server

1、操作系统环境(CentOS 6.2 64bit)

[root@leekwen ~]# cat /etc/issueCentOS release 6.2 (Final)Kernel \r on an \m[root@leekwen ~]# cat /proc/cpuinfo |grep "clflush size"clflush size    : 64clflush size    : 64clflush size    : 64clflush size    : 64clflush size    : 64clflush size    : 64clflush size    : 64clflush size    : 64
2、安装erlang依赖的基本环境
[root@leekwen ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel
3、导入erlang源,并安装erlang
[root@leekwen ~]# rpm --import http://binaries.erlang-solutions.com/debian/erlang_solutions.asc[root@leekwen ~]# wget -O /etc/yum.repos.d/erlang_solutions.repo  http://binaries.erlang-solutions.com/rpm/centos/erlang_solutions.repo--2014-04-09 22:29:49--  http://binaries.erlang-solutions.com/rpm/centos/erlang_solutions.repoResolving binaries.erlang-solutions.com... 46.235.224.136Connecting to binaries.erlang-solutions.com|46.235.224.136|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: http://packages.erlang-solutions.com//rpm/centos/erlang_solutions.repo [following]--2014-04-09 22:29:56--  http://packages.erlang-solutions.com//rpm/centos/erlang_solutions.repoResolving packages.erlang-solutions.com... 31.172.186.53Connecting to packages.erlang-solutions.com|31.172.186.53|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 245Saving to: /etc/yum.repos.d/erlang_solutions.repo100%[=================================================================================>] 245         --.-K/s   in 0s2014-04-09 22:30:09 (34.0 MB/s) - /etc/yum.repos.d/erlang_solutions.repo[root@leekwen ~]# wget http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmResolving tree.repoforge.org... 78.46.17.228Connecting to tree.repoforge.org|78.46.17.228|:80... connected.HTTP request sent, awaiting response... 301 Moved PermanentlyLocation: http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm [following]--2014-04-09 22:30:54--  http://apt.sw.be/redhat/el6/en/x86_64/rpmforge/RPMS/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpmResolving apt.sw.be... 193.1.193.67Connecting to apt.sw.be|193.1.193.67|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 12700 (12K) [application/x-redhat-package-manager]Saving to: rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm100%[=================================================================================>] 12,700      4.80K/s   in 2.6s2014-04-09 22:31:07 (4.80 KB/s) - rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm[root@leekwen ~]# rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt[root@leekwen ~]# rpm -i rpmforge-release-0.5.2-2.el6.rf.*.rpm[root@leekwen ~]# yum update[root@leekwen ~]# yum update --skip-broken[root@leekwen ~]# yum install erlang
4、测试erlang环境
[root@leekwen ~]# erlErlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:8:8] [async-threads:10] [kernel-poll:false]Eshell V5.10.4  (abort with ^G)1> A=12.122> A.123>BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded       (v)ersion (k)ill (D)b-tables (d)istribution^C[root@leekwen ~]#
5、下载并安装rabbitmq-server  
[root@leekwen ~]# wget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.0/rabbitmq-server-3.3.0-1.noarch.rpm--2014-04-10 16:44:24--  http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.0/rabbitmq-server-3.3.0-1.noarch.rpmResolving www.rabbitmq.com... 192.240.153.117Connecting to www.rabbitmq.com|192.240.153.117|:80... connected.HTTP request sent, awaiting response... 200 OKLength: 3869384 (3.7M) [application/x-redhat-package-manager]Saving to: “rabbitmq-server-3.3.0-1.noarch.rpm”100%[======================================>] 3,869,384   11.9K/s   in 5m 37s2014-04-10 16:50:10 (11.2 KB/s) - “rabbitmq-server-3.3.0-1.noarch.rpm” saved [3869384/3869384][root@leekwen ~]#  yum install rabbitmq-server-3.3.0-1.noarch.rpmLoaded plugins: fastestmirror, securityLoading mirror speeds from cached hostfile * base: centos.ustc.edu.cn * extras: centos.ustc.edu.cn * rpmforge: ftp.riken.jp * updates: centos.ustc.edu.cnSetting up Install ProcessExamining rabbitmq-server-3.3.0-1.noarch.rpm: rabbitmq-server-3.3.0-1.noarchMarking rabbitmq-server-3.3.0-1.noarch.rpm to be installedResolving Dependencies--> Running transaction check---> Package rabbitmq-server.noarch 0:3.3.0-1 will be installed--> Finished Dependency ResolutionDependencies Resolved================================================================================ Package           Arch     Version     Repository                         Size================================================================================Installing: rabbitmq-server   noarch   3.3.0-1     /rabbitmq-server-3.3.0-1.noarch   4.3 MTransaction Summary================================================================================Install       1 Package(s)Total size: 4.3 MInstalled size: 4.3 MIs this ok [y/N]: yDownloading Packages:Running rpm_check_debugRunning Transaction TestTransaction Test SucceededRunning Transaction  Installing : rabbitmq-server-3.3.0-1.noarch                               1/1Installed:  rabbitmq-server.noarch 0:3.3.0-1Complete!
6、启动rabbitmq-server
[root@leekwen ~]# /etc/init.d/rabbitmq-server startStarting rabbitmq-server:FAILED - check /var/log/rabbitmq/startup_{log, _err}rabbitmq-server.[root@leekwen ~]# cat /var/log/rabbitmq/startup_err[root@leekwen ~]# cat /var/log/rabbitmq/startup_logERROR: epmd error for host leekwen: address (cannot connect to host/port)[root@leekwen ~]# hostnameleekwen[root@leekwen ~]# vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=leekwen[root@leekwen ~]# cat /etc/hosts127.0.0.1       localhost127.0.0.1       leekwen::1             localhost
7、以上操作排除了因为主机名不同导致RabbitMQ-Server启动报错的问题,请修改主机名(参见上述步骤),再次启动RabbitMQ-Server
[root@leekwen ~]# /etc/init.d/rabbitmq-server restartRestarting rabbitmq-server: RabbitMQ is not runningFAILED - check /var/log/rabbitmq/startup_{log, _err}rabbitmq-server.
8、结果同样报错,查看错误的日志:
[root@leekwen ~]# cat /var/log/rabbitmq/startup_log              RabbitMQ 3.3.0. Copyright (C) 2007-2013 GoPivotal, Inc.  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/  ##  ##  ##########  Logs: /var/log/rabbitmq/rabbit@leekwen.log  ######  ##        /var/log/rabbitmq/rabbit@leekwen-sasl.log  ##########              Starting broker...BOOT FAILED===========Error description:   {case_clause,       {error,           {{shutdown,                {failed_to_start_child,tcp_listener,                    {cannot_listen,{0,0,0,0,0,0,0,0},5672,eaddrinuse}}},            {child,undefined,'rabbit_tcp_listener_sup_:::5672',                {tcp_listener_sup,start_link,                    [{0,0,0,0,0,0,0,0},                     5672,                     [inet6,binary,                      {packet,raw},                      {reuseaddr,true},                      {backlog,128},                      {nodelay,true},                      {linger,{true,0}},                      {exit_on_close,false}],                     {rabbit_networking,tcp_listener_started,[amqp]},                     {rabbit_networking,tcp_listener_stopped,[amqp]},                     {rabbit_networking,start_client,[]},                     "TCP Listener"]},                transient,infinity,supervisor,                [tcp_listener_sup]}}}}Log files (may contain more information):   /var/log/rabbitmq/rabbit@leekwen.log   /var/log/rabbitmq/rabbit@leekwen-sasl.logStack trace:   [{rabbit_networking,start_listener0,4,[]},    {rabbit_networking,'-start_listener/4-lc$^0/1-0-',4,[]},    {rabbit_networking,start_listener,4,[]},    {rabbit_networking,'-boot_tcp/0-lc$^0/1-0-',1,[]},    {rabbit_networking,boot_tcp,0,[]},    {rabbit_networking,boot,0,[]},    {rabbit,'-run_boot_step/1-lc$^1/1-1-',1,[]},    {rabbit,run_boot_step,1,[]}]BOOT FAILED===========Error description:   {could_not_start,rabbit,    {bad_return,     {{rabbit,start,[normal,[]]},      {'EXIT',       {rabbit,failure_during_boot,        {case_clause,         {error,          {{shutdown,            {failed_to_start_child,tcp_listener,             {cannot_listen,{0,0,0,0,0,0,0,0},5672,eaddrinuse}}},           {child,undefined,'rabbit_tcp_listener_sup_:::5672',            {tcp_listener_sup,start_link,             [{0,0,0,0,0,0,0,0},              5672,              [inet6,binary,               {packet,raw},               {reuseaddr,true},               {backlog,128},               {nodelay,true},               {linger,{true,0}},               {exit_on_close,false}],              {rabbit_networking,tcp_listener_started,[amqp]},              {rabbit_networking,tcp_listener_stopped,[amqp]},              {rabbit_networking,start_client,[]},              "TCP Listener"]},            transient,infinity,supervisor,            [tcp_listener_sup]}}}}}}}}}Log files (may contain more information):   /var/log/rabbitmq/rabbit@leekwen.log   /var/log/rabbitmq/rabbit@leekwen-sasl.log{"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabb                                                                                        use,{error,{{shutdown,{failed_to_start_child,tcp_listener,{cannot_listen,{0,0,0,                                                                                        stener_sup,start_link,[{0,0,0,0,0,0,0,0},5672,[inet6,binary,{packet,raw},{reusea                                                                                        networking,tcp_listener_started,[amqp]},{rabbit_networking,tcp_listener_stopped,                                                                                        or,[tcp_listener_sup]}}}}}}}}}}}tail: /var/log/rabbitmq/startup_log: file truncated        [FAILED][root@leekwen ~]# cat /var/log/rabbitmq/startup_errCrash dump was written to: erl_crash.dumpinit terminating in do_boot ()
9、出现如上的错误,可能是因为5672端口已经被占用的原因。
查看5672端口的情况,如果有进程占用此端口,请将它关闭后,重新启动RabbitMQ-Server;
[root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN[root@leekwen ~]# lsof -i:5672COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAMEqpidd   1901 qpidd   10u  IPv4  13941      0t0  TCP *:amqp (LISTEN)[root@leekwen ~]# chkconfig qpidd off[root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 0.0.0.0:5672                0.0.0.0:*                   LISTEN[root@leekwen ~]# chkconfig qpidd --listqpidd           0:off   1:off   2:off   3:off   4:off   5:off   6:off[root@leekwen ~]# /etc/init.d/qpidd stopStopping Qpid AMQP daemon:                                 [  OK  ][root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 127.0.0.1:25672             127.0.0.1:60925             TIME_WAIT[root@leekwen ~]# lsof -i:5672[root@leekwen ~]# /etc/init.d/rabbitmq-server startStarting rabbitmq-server: SUCCESSrabbitmq-server.
10、查看RabbitMQ服务启动的状态,并开启RabbitMQ的相应管理插件:
[root@leekwen ~]# rabbitmqctl statusStatus of node rabbit@leekwen ...[{pid,716}, {running_applications,[{rabbit,"RabbitMQ","3.3.0"},                        {os_mon,"CPO  CXC 138 46","2.2.14"},                        {mnesia,"MNESIA  CXC 138 12","4.11"},                        {xmerl,"XML parser","1.3.5"},                        {sasl,"SASL  CXC 138 11","2.3.4"},                        {stdlib,"ERTS  CXC 138 10","1.19.4"},                        {kernel,"ERTS  CXC 138 10","2.16.4"}]}, {os,{unix,linux}}, {erlang_version,"Erlang R16B03 (erts-5.10.4) [source] [64-bit] [smp:8:8] [async-threads:30] [kernel-poll:true]\n"}, {memory,[{total,36436456},          {connection_procs,2704},          {queue_procs,5408},          {plugins,0},          {other_proc,13704576},          {mnesia,60240},          {mgmt_db,0},          {msg_index,24368},          {other_ets,789624},          {binary,13672},          {code,16399491},          {atom,594537},          {other_system,4841836}]}, {alarms,[]}, {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]}, {vm_memory_high_watermark,0.4}, {vm_memory_limit,6690450636}, {disk_free_limit,50000000}, {disk_free,47402364928}, {file_descriptors,[{total_limit,924},                    {total_used,3},                    {sockets_limit,829},                    {sockets_used,1}]}, {processes,[{limit,1048576},{used,131}]}, {run_queue,0}, {uptime,83}]...done.[root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 0.0.0.0:25672               0.0.0.0:*                   LISTENtcp        0      0 :::5672                     :::*                        LISTEN[root@leekwen ~]# lsof -i:5672COMMAND  PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAMEbeam.smp 716 rabbitmq   15u  IPv6 1948888      0t0  TCP *:amqp (LISTEN)[root@leekwen ~]# rabbitmq-plugins list[ ] amqp_client                       3.3.0[ ] cowboy                            0.5.0-rmq3.3.0-git4b93c2d[ ] eldap                             3.3.0-gite309de4[ ] mochiweb                          2.7.0-rmq3.3.0-git680dba8[ ] rabbitmq_amqp1_0                  3.3.0[ ] rabbitmq_auth_backend_ldap        3.3.0[ ] rabbitmq_auth_mechanism_ssl       3.3.0[ ] rabbitmq_consistent_hash_exchange 3.3.0[ ] rabbitmq_federation               3.3.0[ ] rabbitmq_federation_management    3.3.0[ ] rabbitmq_management               3.3.0[ ] rabbitmq_management_agent         3.3.0[ ] rabbitmq_management_visualiser    3.3.0[ ] rabbitmq_mqtt                     3.3.0[ ] rabbitmq_shovel                   3.3.0[ ] rabbitmq_shovel_management        3.3.0[ ] rabbitmq_stomp                    3.3.0[ ] rabbitmq_tracing                  3.3.0[ ] rabbitmq_web_dispatch             3.3.0[ ] rabbitmq_web_stomp                3.3.0[ ] rabbitmq_web_stomp_examples       3.3.0[ ] sockjs                            0.3.4-rmq3.3.0-git3132eb9[ ] webmachine                        1.10.3-rmq3.3.0-gite9359c7[root@leekwen ~]# rabbitmq-plugins enable rabbitmq_managementThe following plugins have been enabled:  mochiweb  webmachine  rabbitmq_web_dispatch  amqp_client  rabbitmq_management_agent  rabbitmq_managementPlugin configuration has changed. Restart RabbitMQ for changes to take effect.[root@leekwen ~]# rabbitmq-plugins enable mochiweb webmachine rabbitmq_web_dispatch amqp_client rabbitmq_m                                                             anagement_agent rabbitmq_managementPlugin configuration unchanged.[root@leekwen ~]# rabbitmq-plugins list[E] amqp_client                       3.3.0[ ] cowboy                            0.5.0-rmq3.3.0-git4b93c2d[ ] eldap                             3.3.0-gite309de4[E] mochiweb                          2.7.0-rmq3.3.0-git680dba8[ ] rabbitmq_amqp1_0                  3.3.0[ ] rabbitmq_auth_backend_ldap        3.3.0[ ] rabbitmq_auth_mechanism_ssl       3.3.0[ ] rabbitmq_consistent_hash_exchange 3.3.0[ ] rabbitmq_federation               3.3.0[ ] rabbitmq_federation_management    3.3.0[E] rabbitmq_management               3.3.0[E] rabbitmq_management_agent         3.3.0[ ] rabbitmq_management_visualiser    3.3.0[ ] rabbitmq_mqtt                     3.3.0[ ] rabbitmq_shovel                   3.3.0[ ] rabbitmq_shovel_management        3.3.0[ ] rabbitmq_stomp                    3.3.0[ ] rabbitmq_tracing                  3.3.0[E] rabbitmq_web_dispatch             3.3.0[ ] rabbitmq_web_stomp                3.3.0[ ] rabbitmq_web_stomp_examples       3.3.0[ ] sockjs                            0.3.4-rmq3.3.0-git3132eb9[E] webmachine                        1.10.3-rmq3.3.0-gite9359c7[root@leekwen ~]# rabbitmq-plugins list[E] amqp_client                       3.3.0[ ] cowboy                            0.5.0-rmq3.3.0-git4b93c2d[ ] eldap                             3.3.0-gite309de4[E] mochiweb                          2.7.0-rmq3.3.0-git680dba8[ ] rabbitmq_amqp1_0                  3.3.0[ ] rabbitmq_auth_backend_ldap        3.3.0[ ] rabbitmq_auth_mechanism_ssl       3.3.0[ ] rabbitmq_consistent_hash_exchange 3.3.0[ ] rabbitmq_federation               3.3.0[ ] rabbitmq_federation_management    3.3.0[E] rabbitmq_management               3.3.0[E] rabbitmq_management_agent         3.3.0[ ] rabbitmq_management_visualiser    3.3.0[ ] rabbitmq_mqtt                     3.3.0[ ] rabbitmq_shovel                   3.3.0[ ] rabbitmq_shovel_management        3.3.0[ ] rabbitmq_stomp                    3.3.0[ ] rabbitmq_tracing                  3.3.0[E] rabbitmq_web_dispatch             3.3.0[ ] rabbitmq_web_stomp                3.3.0[ ] rabbitmq_web_stomp_examples       3.3.0[ ] sockjs                            0.3.4-rmq3.3.0-git3132eb9[E] webmachine                        1.10.3-rmq3.3.0-gite9359c7[root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 0.0.0.0:25672               0.0.0.0:*                   LISTENtcp        0      0 :::5672                     :::*                        LISTEN[root@leekwen ~]# netstat -atn |grep 15672[root@leekwen ~]# netstat -atn |grep 55672[root@leekwen ~]# /etc/init.d/rabbitmq-server restartRestarting rabbitmq-server: SUCCESSrabbitmq-server.[root@leekwen ~]# netstat -atn |grep 55672[root@leekwen ~]# netstat -atn |grep 5672tcp        0      0 0.0.0.0:15672               0.0.0.0:*                   LISTENtcp        0      0 0.0.0.0:25672               0.0.0.0:*                   LISTENtcp        0      0 127.0.0.1:54463             127.0.0.1:25672             TIME_WAITtcp        0      0 127.0.0.1:60321             127.0.0.1:25672             TIME_WAITtcp        0      0 127.0.0.1:25672             127.0.0.1:56750             TIME_WAITtcp        0      0 :::5672                     :::*                        LISTEN就可以用guest,guest登陆http://192.168.1.101:15672端口了。

注意:如果此时你从端口15672或55672登陆不了,请关闭CentOS6.2的防火墙,再次登陆,

如果仍然出现无法登陆的想象,查看日志后,显示:

=ERROR REPORT==== 20-Apr-2014::00:55:15 ===webmachine error: path="api/whoami""Unauthorized"
那么请运行如下的命令,增加用户admin,密码admin即可。  
[root@leekwen ~]# rabbitmqctl add_user admin adminCreating user "admin" ......done.[root@leekwen ~]# rabbitmqctl list_usersListing users ...admin   []guest   [administrator]...done.[root@leekwen ~]# rabbitmqctl set_user_tags admin administratorSetting tags for user "admin" to [administrator] ......done.
设置用户的权限,此处很重要
[root@leekwen ~]# rabbitmqctl  set_permissions  -p  VHostPath【虚拟主机路径  ‘/’】  User【用户名字】  ConfP  WriteP  ReadP
如果上述方式不行,可以设置为如下方式,然后重启rabbitMQ
[root@leekwen ~]# rabbitmqctl  set_permissions  -p  VHostPath【虚拟主机路径  ‘/’】  User【用户名字】  ".*" ".*" ".*"
[root@leekwen ~]# rabbitmqctl list_users
Listing users ...admin [administrator]guest [administrator]...done.
到此,配置完成。 

上述内容是我网上找到的比较好并且很完善的安装帖子,我稍稍加工了一下,如果环境没有出现问题的话,基本上还是会比较顺利的安装成功。
原贴路径:http://www.2cto.com/os/201404/292351.html

-------------------------------------------------------------------------------------------------------
刚刚开始安装必然会经历一个很艰难的过程,特别是和我一样Linux也是菜鸟的童鞋们。首先是选择安装的帖子,
因为官方的太官方,很少贴出来问题。事实上这个安装还是有可能会出现很多问题,和Linux环境、安装者Linux水平、
选择erlang和rabbitmq的版本都有可能导致一些莫名的问题。
我出现的问题:

R14B03缺少或者不匹配,事实上后面安装的时候应该是R16B03
上述问题应该是我的版本有问题

最终几经周折很多问题是解决了,但是总是感觉有问题,原谅我是一个追求完美的程序员。
我和我们的运维商量之后还是觉得重装Linux,然后更新一下依赖 yum install gcc-c++  
按照上述的步骤,果然人品大爆发,一个小时不到全部弄好。最终rabbitMQ的安装告一段落。






0 0
原创粉丝点击