Centos7 上安装配置 RabbitMQ
一、安装Erlang环境
1、在安装erlang之前先安装下依赖文件(这一步不要忘掉了, 不然后面./configure的时候要报错):
yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto
2、到erlang官网去下载erlang安装包
官网地址:http://www.erlang.org/downloads
选择现在最新版本,右键复制链接地址,用wget进行下载
wget -c http://erlang.org/download/otp_src_22.0.tar.gz
接下来解压:
tar -zxvf otp_src_22.0.tar.gz
cd到otp_src_22.0目录
cd otp_src_22.0/
3、编译安装( 我这里指定编译安装后放在/usr/local/erlang目录里面,这个你们可以改成其他的 ):
./configure --prefix=/usr/local/erlang
make && make install
4、测试安装是否成功:
cd /usr/local/erlang/bin/
./erl
若出现以下界面,则说明我们erlang配置OK了
输入 halt(). 退出控制台, 注意,halt后面有个点哈
5、配置环境变量(ps:这个跟java的环境变量配置是差不多的)
vim /etc/profile
在末尾加入这么一行即可:export PATH=$PATH:/usr/local/erlang/bin
更新配置文件:
source /etc/profile
更新之后在任意地方输入erl能进入命令行, 那么就说明配置成功了。
接下来进入我们的核心部分:配置rabbitmq
二、安装rabbitmq
1、到官网下载最新安装包:https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.16/rabbitmq-server-generic-unix-3.7.16.tar.xz
wget -c https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.16/rabbitmq-server-generic-unix-3.7.16.tar.xz
2.解压:
xz -d rabbitmq-server-generic-unix-3.7.16.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.16.tar
3.将解压后的rabbitmq_server-3.7.16移动到/usr/loca目录下
mv rabbitmq_server-3.7.16/ /usr/local/
4、配置rabbitmq的环境变量(这个跟上面的erlang配置以及java的环境变量差不多)
vim /etc/profile
在末尾加入以下配置:export PATH=$PATH:/usr/local/rabbitmq_server-3.7.16/sbin
更新配置文件:
source /etc/profile
3、rabbitmq的基本操作:
启动方式一:rabbitmq-server start
启动方式二:rabbitmq-server -detached(以守护进程方式启动)
启动方式三:rabbitmqctl start_app
关闭:rabbitmqctl stop
查看状态:rabbitmqctl status
4、启动rabbitmq
rabbitmq-server -detached
出现以下画面,说明启动成功。如果无法正常启动,可能原因请看第三(关于rabbitmq安装后无法正常启动的问题)。
5、安装Web管理界面插件:
依次执行下列指令:
rabbitmqctl start_app #开启rabbitmq rabbitmq-plugins enable rabbitmq_management #开启管理插件
如果上面都顺利,重启rabbitmq服务,则可以打开访问管理页面:http://192.168.?.?:15672(IP地址为linux的ip地址) 端口默认为15672,
若此处若不能打开访问管理页面,可能跟防火墙的设置有关系,具体请见https://www.cnblogs.com/zipxzf/p/11249846.html
6、 配置web远程登录用户
这里我们以创建个rabbitmq帐号,密码123456为例,创建一个账号并支持远程ip访问。
(1).创建账号
rabbitmqctl add_user rabbitmq 123456
(2).设置用户角色
rabbitmqctl set_user_tags rabbitmq administrator
(3).设置用户权限
rabbitmqctl set_permissions -p "/" rabbitmq ".*" ".*" ".*"
(4).设置完成后可以查看当前用户和角色(需要开启服务)
rabbitmqctl list_users
(5)、用创建的用户登录web控制台
7、rabbitmq常用命令
add_user <UserName> <Password>
delete_user <UserName>
change_password <UserName> <NewPassword>
list_users
add_vhost <VHostPath>
delete_vhost <VHostPath>
list_vhostsset_permissions [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>
clear_permissions [-p <VHostPath>] <UserName>
list_permissions [-p <VHostPath>]
list_user_permissions <UserName>
list_queues [-p <VHostPath>] [<QueueInfoItem> ...]
list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]
list_bindings [-p <VHostPath>]
list_connections [<ConnectionInfoItem> ...]
三、关于rabbitmq安装后无法正常启动的问题:
[root@localhost ~]# rabbitmq-server BOOT FAILED =========== Error description: noproc Log files (may contain more information): /usr/local/rabbitmq_server-3.6.15/var/log/rabbitmq/rabbit@localhost.log /usr/local/rabbitmq_server-3.6.15/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,856}]}, {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,288}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,424}]}, {init,start_em,1,[]}, {init,do_boot,3,[]}] =INFO REPORT==== 25-Jul-2019::10:55:13.998594 === Error description: noproc Log files (may contain more information): /usr/local/rabbitmq_server-3.6.15/var/log/rabbitmq/rabbit@localhost.log /usr/local/rabbitmq_server-3.6.15/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,856}]}, {rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,288}]}, {rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,424}]}, {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
出现此问题是因为安装的Erlang版本跟Rabbitmq版本相互不匹配,需找出版本出现问题的Erlang或者Rabbitmq,卸载再安装版本匹配的Erlang或者Rabbitmq。