CentOS7安装RabbitMQ
准备
在安装之前,需要先准备号安装包,可以在官网:https://www.rabbitmq.com/download.html获取,然后将软件上传到系统,在这里我上传的是这三个软件安装包:
erlang-18.3-1.el7.centos.x86_64.rpm(rabbitmq是erlang语言开发的,需要erlang编译环境)
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.6.5-1.noarch.rpm
安装erlang
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
安装依赖环境socat
[root@VM_0_12_centos rabbitmq]# rpm -ivh socat-1.7.3.2-1.1.el7.x86_64.rpm
warning: socat-1.7.3.2-1.1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key ID 87e360b8: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:socat-1.7.3.2-1.1.el7 ################################# [100%]
安装RabbitMQ
[root@VM_0_12_centos rabbitmq]# rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
warning: rabbitmq-server-3.6.5-1.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 6026dfca: NOKEY
Preparing... ################################# [100%]
Updating / installing...
1:rabbitmq-server-3.6.5-1 ################################# [100%]
开启管理界面及配置
开启管理插件:
[root@VM_0_12_centos rabbitmq]# cd /usr/lib/rabbitmq/
[root@VM_0_12_centos rabbitmq]# rabbitmq-plugins enable rabbitmq_management
Plugin configuration unchanged.
Applying plugin configuration to rabbit@VM_0_12_centos... failed.
* Could not contact node rabbit@VM_0_12_centos.
Changes will take effect at broker restart.
* Options: --online - fail if broker cannot be contacted.
--offline - do not try to contact broker.
修改默认配置信息(这里是为了添加默认的管理用户,如果不愿意后面有别的方式,这里就直接跳过):
[root@VM_0_12_centos rabbitmq]# cd /usr/lib/rabbitmq/
[root@VM_0_12_centos rabbitmq]# ls
bin lib
[root@VM_0_12_centos rabbitmq]# vim lib/rabbitmq_server-3.6.5/ebin/rabbit.app
将loopback_users 中的 <<“guest”>>只保留guest。
启动
service rabbitmq-server start # 启动服务
service rabbitmq-server stop # 停止服务
service rabbitmq-server restart # 重启服务
[root@VM_0_12_centos rabbitmq]# service rabbitmq-server start
Starting rabbitmq-server (via systemctl): [ OK ]
这样就说明启动成功了。
打开服务器对应的15672端口,在浏览器输入自己的服务器的ip:15672,就可以进入RabbitMQ的可视化界面,账号密码就是自己刚才改的guest:
如果不愿意,把之前的配置改回去(没有改当我没说),然后使用下面的命令:
#添加用户,后面两个参数分别是用户名和密码
[root@VM_0_12_centos rabbitmq]# rabbitmqctl add_user linkai 密码
Creating user "linkai" ...
#添加权限
[root@VM_0_12_centos rabbitmq]# rabbitmqctl set_permissions -p / linkai ".*" ".*" ".*"
Setting permissions for user "linkai" in vhost "/" ...
#修改用户角色
[root@VM_0_12_centos rabbitmq]# rabbitmqctl set_user_tags linkai administrator
Setting tags for user "linkai" to [administrator] ...
按道理之前记得不用再改配置文件了,但是失败了,只能再改一下配置文件:
为了保险我又把guest用户删除了……
然后重启生效:
[root@VM_0_12_centos rabbitmq]# service rabbitmq-server restart
Restarting rabbitmq-server (via systemctl): [ OK ]
用户管理命令汇总:
新建用户:rabbitmqctl add_user username passwd
删除用户:rabbitmqctl delete_user username
改密码: rabbimqctl change_password {username} {newpassword}
设置用户角色:rabbitmqctl set_user_tags {username} {tag ...}
查看用户列表:rabbitmqctl list_users
权限说明
rabbitmqctl set_permissions [-pvhostpath] {user} {conf} {write} {read}
Vhostpath:虚拟主机,表示该用户可以访问那台虚拟主机;
user:用户名。
Conf:一个正则表达式match哪些配置资源能够被该用户访问。
Write:一个正则表达式match哪些配置资源能够被该用户设置。
Read:一个正则表达式match哪些配置资源能够被该用户访问。
角色说明
- 超级管理员(administrator):可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操 作。
- 监控者(monitoring):可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用 情况,磁盘使用情况等)
- 策略制定者(policymaker):可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上 图红框标识的部分)。
- 普通管理者(management):仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
- 其他:无法登陆管理控制台,通常就是普通的生产者和消费者。
Virtual Hosts
像MySQL拥有数据库的概念并且可以指定用户对库和表等操作的权限一样,RabbitMQ也有类似的权限管理;在RabbitMQ中可以虚拟消息服务器Virtual Host,每个Virtual Hosts相当于一个相对独立的RabbitMQ服务器,每个Virtual Host之间是相互隔离的。exchange、queue、message不能互通。 相当于MySQL的db。Virtual Name一般以/
开头。
OK,这就安装完成了!