RabbitMQ:在Ubuntu14.04下的安装笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sharetop/article/details/50523081

rn 虽然我们的服务器大多为CentOS,但是有少量Ubuntu的机器,也一并做个交接。
在CentOS的安装,见我另一篇博文,那是相当的方便。
http://blog.csdn.net/sharetop/article/details/49716897

安装

有两种办法,一是直接从官网下载最新的deb文件,但是在你dpkg -i 时,因为缺少erlang的依赖,只能再通过apt-get install -f 安装erlang,最终也能成功,但是会有一些不舒服的错误提示。

建议使用另一个官网上提供的安装办法(有洁僻的使用)。

首先,修改 /etc/apt/sources.list文件,最后一行加上:

deb http://www.rabbitmq.com/debian/ testing main

然后,命令行先后执行以下两句加rabbitmq的公钥为可信,以免稍后的安全提示(可选,建议弄一下,仅洁僻罢了)。

wget https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
sudo apt-key add rabbitmq-signing-key-public.asc

现在,可以先update,然后安装了。

apt-get update
sudo apt-get install rabbitmq-server

用此步骤安装,屏幕上会一路很爽地刷到最后,你见到如下信息,说明OK了。。。

Setting up rabbitmq-server (3.6.0-1) ...
Adding group `rabbitmq' (GID 114) ...
Done.
Adding system user `rabbitmq' (UID 106) ...
Adding new user `rabbitmq' (UID 106) with group `rabbitmq' ...
Not creating home directory `/var/lib/rabbitmq'.
 * Starting message broker rabbitmq-server                           [ OK ]
Processing triggers for libc-bin (2.19-0ubuntu6.6) ...
Processing triggers for ureadahead (0.100.0-16) ...

然后,我们可以 ps -ef|grep rabbit 看看情况:

rabbitmq  2102     1  0 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/epmd -daemon
rabbitmq  2124     1  0 10:44 ?        00:00:00 /bin/sh -e /usr/lib/rabbitmq/bin/rabbitmq-server
rabbitmq  2386  2124  2 10:44 ?        00:00:00 /usr/lib/erlang/erts-5.10.4/bin/beam -W w -A 64 -P 1048576 -K true -B
i -- -root /usr/lib/erlang -progname erl -- -home /var/lib/rabbitmq -- -pa /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/ebin -noshell
-noinput -s rabbit boot -sname rabbit@two -boot start_sasl -kernel inet_default_connect_options [{nodelay,true}] -sasl
errlog_type error -sasl sasl_error_logger false -rabbit error_logger {file,"/var/log/rabbitmq/rabbit@two.log"} -rabbit sasl_error_logger {file,"/var/log/rabbitmq/rabbit@two-sasl.log"} -rabbit enabled_plugins_file "/etc/rabbitmq/enabled_plugins" -rabbit plugins_dir "/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.0/plugins" -rabbit plugins_expand_dir "/var/lib/rabbitmq/mnesia/rabbit@two-plugins-expand"
-os_mon start_cpu_sup false -os_mon start_disksup false -os_mon start_memsup false -mnesia dir "/var/lib/rabbitmq/mnesia/rabbit@two"
-kernel
inet_dist_listen_min 25672 -kernel inet_dist_listen_max 25672
rabbitmq  2469  2386  0 10:44 ?        00:00:00 inet_gethost 4
rabbitmq  2470  2469  0 10:44 ?        00:00:00 inet_gethost 4

看上去没什么问题。我们进入安装目录看看状态。

cd /usr/lib/rabbitmq/bin/
yancheng@two:/usr/lib/rabbitmq/bin$ sudo ./rabbitmqctl status
Status of node rabbit@two ...
Error: unable to connect to node rabbit@two: nodedown

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

attempted to contact: [rabbit@two]

rabbit@two:
  * connected to epmd (port 4369) on two
  * epmd reports node 'rabbit' running on port 25672
  * TCP connection succeeded but Erlang distribution failed
  * suggestion: hostname mismatch?
  * suggestion: is the cookie set correctly?
  * suggestion: is the Erlang distribution using TLS?

current node details:
- node name: 'rabbitmq-cli-2507@two'
- home dir: /home/yancheng
- cookie hash: LzLUNZfZaIrZKLsr1kLeAg==

必然会报错,其实用两种方法安装都会有这个问题。在这个bin目录下有一个rabbitmq-server,你使用它停止服务也停不了,感觉上好象就没安装成功。。。所以,我们需要做一些配置的工作。

配置

现在我们来修改一些东西,首先,还是官网上提供的命令,停止服务:

invoke-rc.d rabbitmq-server stop

这回真的能停止掉,所以从此命令来看,应该还有一个rabbitmq-server脚本才对,的确,我们可以在 /etc/init.d/ 目录下找到真正起作用的(开机自启动的)rabbitmq-server脚本。感兴趣的可以自己打开此文件看看内容。

我要说的是,在安装成功的提示中,说新建了一个rabbitmq用户,的确,自启动的服务是用这个用户启动的,所以当前你登录的帐号是没办法查询状态,也就是上面你看不到状态的原因。我们可以这样:

invoke-rc.d rabbitmq-server status

这也是可以的(前提你要先启动服务,invoke-rc.d rabbitmq-server start)

于是我们做的配置就是让当前用户,比如我一直使用的是yancheng账户,能够执行某些脚本。我需要手工修改一下/usr/lib/rabbitmq/bin目录下的两个脚本,让它可用。

rabbitmqctl 用于添加用户和查看信息等,以及rabbitmq-plugins,用于添加插件。修改方法基本一样,就是添加一个HOME,指到 /var/lib/rabbitmq ,也就是要与启动的rabbitmq服务中使用的HOME一致,因为当前登录的HOME是/home/yancheng,大概如下:

RABBITMQ_USE_LONGNAME=${RABBITMQ_USE_LONGNAME} \
HOME=/var/lib/rabbitmq \
exec ${ERL_DIR}erl \
    -pa "${RABBITMQ_HOME}/ebin" \
    ...

现在,我们可以查看状态 sudo ./rabbitmqctl status 了。应该是成功了。

添加用户并加入管理员:

sudo ./rabbitmqctl add_user admin admin123 
sudo ./rabbitmqctl set_user_tags admin administrator 

启用WEB管理台:

 sudo ./rabbitmq-plugins enable rabbitmq_management 

一切都跟以前一样了。

展开阅读全文

没有更多推荐了,返回首页