参考博客:https://www.jianshu.com/p/7e2e3b25fccf
博客:https://blog.csdn.net/qq_22075041/article/details/78855708
在开始之前随便找了一个教程,认为很简单就可以安装完成,结果逗了好大一圈。。。
rabbitmq依赖erlang,依赖关系可以参考网址:https://www.rabbitmq.com/which-erlang.html
1、安装erlang
官网下载地址:https://www.erlang-solutions.com/resources/download.html
wget https://packages.erlang-solutions.com/erlang/esl-erlang/FLAVOUR_1_general/esl-erlang_20.2.2-1~centos~7_amd64.rpm ---官网下载erlang安装包
rpm --import http://packages.erlang-solutions.com/rpm/erlang_solutions.asc ---导入公钥
yum install esl-erlang_20.2.2-1~centos~7_amd64.rpm
erl ---验证是否安装成功
2、安装rabbitmq-server
rabbitmq下载地址:https://dl.bintray.com/rabbitmq/rabbitmq-server-rpm/
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
rpm -ivh --nodeps rabbitmq-server-3.6.6-1.el7.noarch.rpm
systemctl start rabbitmq-server
systemctl status rabbitmq-server
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
第一次安装启动rabbitmq总是失败,报错如下,最终也没有解决,现在猜测可以能是因为与erlang版本有关(当时使用yum源安装的官网最新版本erlang21.1,rabbitmq使用上述版本)。以此记录~~
Error description:
noproc
Log files (may contain more information):
/var/log/rabbitmq/rabbit@localhost.log
/var/log/rabbitmq/rabbit@localhost-sasl.log
Stack trace:
[{gen,do_for_proc,2,[{file,"gen.erl"},{line,228}]},
{gen_event,rpc,2,[{file,"gen_event.erl"},{line,239}]},
{rabbit,ensure_working_log_handlers,0,
[{file,"src/rabbit.erl"},{line,788}]},
{rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,268}]},
{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,403}]},
{init,start_em,1,[]},
{init,do_boot,3,[]}]
=INFO REPORT==== 9-Aug-2018::11:14:43.848127 ===
Error description:
noproc
Log files (may contain more information):
/var/log/rabbitmq/rabbit@localhost.log
/var/log/rabbitmq/rabbit@localhost-sasl.log
Stack trace:
[{gen,do_for_proc,2,[{file,"gen.erl"},{line,228}]},
{gen_event,rpc,2,[{file,"gen_event.erl"},{line,239}]},
{rabbit,ensure_working_log_handlers,0,
[{file,"src/rabbit.erl"},{line,788}]},
{rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,268}]},
{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,403}]},
{init,start_em,1,[]},
{init,do_boot,3,[]}]
{"init terminating in do_boot",noproc}
init terminating in do_boot (noproc)
Crash dump is being written to: erl_crash.dump...done
+++++++++++++++++++++报错汇总++++++++++++++++++++
错1:HTTP access denied: user 'guest' - User can only log in via localhost
解决:rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users为[]。/etc/rabbitmq/rabbitmq.config文件完整内容如下(注意后面的半角句号):
1 |
|
或者:vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.6/ebin/rabbit.app 文件,修改:“{loopback_users, [<<"guest">>]},”为 “ {loopback_users, []} ,”也可。
然后重启rabbitmq:systemctl restart rabbitmq-server.service
错误2:新增用户登录管理界面提示:HTTP access denied: user 'rabbitmq' - Not management user
原因:新建用户设置set_user_tags是admin,默认没有admin这个标签类型,所以没有权限。
解决步骤:
添加用户
rabbitmqctl add_user <username> <password>
设置用户标签
rabbitmqctl set_user_tags <username> <tag> ...
用户标签类型包括:
- management :访问 management plugin;
- policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
- monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
- administrator :一切权限;
- None :无配置
设置用户权限
rabbitmqctl set_permissions [-p <vhost>] <user> <conf> <write> <read>
示例:
rabbitmqctl add_vhost vh rabbitmqctl add_user test test rabbitmqctl set_user_tags test management rabbitmqctl set_permissions -p vh test ".*" ".*" ".*"