环境:
- centos8 (CentOS Linux release 8.2.2004 (Core)) 最小化安装
- ErLang23.0
- rabbitmq3.8.8
- xshell5
- winscp5.7.4
参照:
- 优秀博文:《CentOS7安装RabbitMQ》
说明:
rebbitmq是由erlang语言开发,所以需要先安装erlang环境,参照:《linux下安装ErLang环境》
一、下载rabbitmq
- github下载:https://github.com/rabbitmq/rabbitmq-server/releases
- 网盘下载
链接:https://pan.baidu.com/s/16EcOWmoCKz6W4KWIIPgIkA?pwd=xzu1
提取码:xzu1
下载后如下:
二、安装
使用winscp将安装包拷贝到linux目录/usr/local/
:
解压安装包:
先切换到/usr/local
目录下:
cd /usr/local
解压:
tar -xf rabbitmq-server-generic-unix-3.8.8.tar.xz
修改解压后的文件夹名称:
mv rabbitmq_server-3.8.8 rabbitmq
配置环境变量:
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
刷新环境变量:
source /etc/profile
三、测试rabbitmq功能
启动rabbitmq:
rabbitmq-server -detached
查看rabbit进程:
[root@localhost local]# ps aux|grep rabbit
root 66331 1.9 4.3 2394336 79640 ? Sl 17:41 0:03 /usr/local/erlang/lib/erlang/erts-11.0/bin/beam.smp -W w -K true -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -B i -- -root /usr/local/erlang/lib/erlang -progname erl -- -home /root -- -pa -noshell -noinput -s rabbit boot -boot start_sasl -lager crash_log false -lager handlers [] -noshell -noinput
root 66579 0.0 0.0 221896 968 pts/0 S+ 17:44 0:00 grep --color=auto rabbit
[root@localhost local]#
查看rabbitmq的状态命令:
rabbitmqctl status
现在,虽然开启了rabbitmq,但是,我们并不能在浏览器上访问rabbitmq,因为我们需要启用插件rabbitmq_management
:
rabbitmq-plugins enable rabbitmq_management
下面要使用ip地址访问rabbitmq的网页,所以需要你先关闭防火墙,参照:《linux关闭防火墙》
我们查看管理员页面如下:http://192.168.150.128:15672
注意:默认安装后rabbitmq只有一个guest用户,并且仅允许localhost登录,所以我们输入guest/guest会提示如下:
四、配置rabbitmq允许远程访问
参照:《RabbitMQ添加新用户并支持远程访问》
先查看rabbitmq下有哪些用户:
[root@localhost local]# rabbitmqctl list_users
Listing users ...
user tags
guest [administrator]
[root@localhost local]#
可以看到,只有一个默认的guest用户(密码为guest)并且为管理员身份。
下一步,创建一个用户[mq]:
rabbitmqctl add_user mq 123456
设置用户[mq]为管理员:
rabbitmqctl set_user_tags mq administrator
此时再来查看用户列表:
[root@localhost local]# rabbitmqctl list_users
Listing users ...
user tags
mq [administrator]
guest [administrator]
可以看到,已经成功的创建了用户[mq]并将其设置为管理员。
设置 mq 用户的权限,指定其对vhost(/
)具有配置和读写的权限:
rabbitmqctl set_permissions -p "/" mq ".*" ".*" ".*"
查看vhost(/)允许哪些用户访问:
[root@localhost local]# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user configure write read
mq .* .* .*
guest .* .* .*
[root@localhost local]#
最后,让我们使用用户mq远程登录:
可以看到,我们已经登录上来了。
五、附:常用命令
5.1 启动rabbitmq
rabbitmq-server -detached
5.2 关闭rabbitmq
rabbitmqctl stop
5.3 查看rabbitmq状态
rabbitmqctl status
5.4 用户管理
5.4.1 列举出rabbitmq上的所有用户
rabbitmqctl list_users
5.4.2 添加用户
添加一个用户 zhaobl
密码为 123456
rabbitmqctl add_user zhaobl 123456
5.4.3 设置用户权限
设置用户zhaobl
对vhost/
具有配置、读和写的权限
rabbitmqctl set_permissions -p "/" zhaobl ".*" ".*" ".*"
5.4.5 查看用户权限
rabbitmqctl list_user_permissions zhaobl
5.4.6 给用户设置tag
给用户zhaobl
设置管理员身份
rabbitmqctl set_user_tags zhaobl administrator
5.4.7 修改用户密码
修改用户zhaobl
的面为654321
rabbitmqctl change_password zhaobl 654321
5.4.8 删除用户
删除用户(安全起见,删除默认用户)
rabbitmqctl delete_user guest
5.5 vhost篇
5.5.1 查看rabbit上所有的vhost
[root@localhost local]# rabbitmqctl list_vhosts
Listing vhosts ...
name
/
[root@localhost local]#
5.5.2 创建一个vhost
rabbitmqctl add_vhost "/testvhost"
5.5.3 删除一个vhost
rabbitmqctl delete_vhost "/testvhost"
5.5.4 针对一个vhost给用户赋予相关权限
语法:set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
示例:
rabbitmqctl set_permissions -p "/" zhaobl ".*" ".*" ".*"
5.5.5 清除一个用户对vhosts的权限
语法:clear_permissions [-p <vhostpath>] <username>
示例:
rabbitmqctl clear_permissions -p / zhaobl
5.5.6 列出哪些用户可以访问该vhost
语法:list_permissions [-p <vhostpath>]
示例:
[root@localhost local]# rabbitmqctl list_permissions -p /
Listing permissions for vhost "/" ...
user configure write read
guest .* .* .*
[root@localhost local]#