赞
踩
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz
因为RabbitMQ是用Erlang语言开发的,所以在安装RabbitMQ之前我们先要安装这个语言
RabbitMQ与Erlang的兼容关系详见:https://www.rabbitmq.com/which-erlang.html
所用资源包地址:资源文件
erlang-18.3-1.el7.centos.x86_64.rpm
socat-1.7.3.2-5.el7.lux.x86_64.rpm
rabbitmq-server-3.6.5-1.noarch.rpm
更高版本下载地址 :
erlang-23.0.2-1.el7.x86_64.rpm下载地址:
https://github.com/rabbitmq/erlang-rpm/releases/download/v23.0.2/erlang-23.0.2-1.el7.x86_64.rpm
rabbitmq-server-3.8.4-1.el7.noarch.rpm下载地址:
注:这个版本如果觉得老的话,可以去官网下载,切记不同RabbitMQ会依赖更高的erlang,官网上有详细的介绍。RabbitMQ需要的依赖:socat和logrotate,logrotate操作系统中已经存在了,只需要安装socat就可以了。socat也可以使用yum install socat进行下载。
# 安装
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
如果出现如下错误
说明gblic 版本太低。我们可以查看当前机器的gblic 版本
strings /lib64/libc.so.6 | grep GLIBC
当前最高版本2.12,需要2.15.所以需要升级glibc
sudo yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make -y
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-utils-2.17-55.el6.x86_64.rpm
sudo rpm -Uvh *-2.17-55.el6.x86_64.rpm --force --nodeps
strings /lib64/libc.so.6 | grep GLIBC
# 安装
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm(推荐使用yum进行安装)# 安装
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
安装rpm出现warning: socat-1.7.3.2-1.1.el7.x86_64.rpm: Header V4 RSA/SHA1 Signature, key I
在rpm 语句后面加上 --force --nodeps 即原本为 rpm -ivh *.rpm 现在改成 rpm -ivh *.rpm --force --nodeps就可以了。 nodeps的意思是忽视依赖关系。因为各个软件之间会有多多少少的联系。有了这两个设置选项就忽略了这些依赖关系,强制安装或者卸载。参考文章
# 开启管理界面
rabbitmq-plugins enable rabbitmq_management
# 修改默认配置信息
vim /usr/lib/rabbitmq/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 # 重启服务或者下列方式启动
systemctl start rabbitmq-server
rabbitmq-server
rabbitmq-server -detached # 后台启动
注意:新安装的rabbitmq的用户名和密码都是guest并且,默认只允许localhost登录,因此我们需要添加一个新用户。
- # 添加用户
- rabbitmqctl add_user root 123456
-
- # 给用户添加权限,给root用户在虚拟主机"/"上的配置、写、读的权限
- rabbitmqctl set_permissions root -p / ".*" ".*" ".*"
-
- # 给用户设置标签
- rabbitmqctl set_user_tags root administrator
用户的标签和权限:
Tag | Capabilities |
(None) | 没有访问management插件的权限 |
management | 可以使用消息协议做任何操作的权限,加上:
|
policymaker | 所有management标签可以做的,加上: 在它们能通过AMQP协议登录的虚拟主机上,查看、创建和删除策略以及虚拟主机参数的权限 |
monitoring | 所有management能做的,加上:
|
administrator | 所有policymaker和monitoring能做的,加上:
|
设置配置文件
cd /usr/share/doc/rabbitmq-server-3.6.5/
cp rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
注意:
RabbitMQ常用操作命令
- # 前台启动Erlang VM和RabbitMQ
- rabbitmq-server
-
- # 后台启动
- rabbitmq-server -detached
-
- # 停止RabbitMQ和Erlang VM
- rabbitmqctl stop
-
- # 查看所有队列
- rabbitmqctl list_queues
-
- # 查看所有虚拟主机
- rabbitmqctl list_vhosts
-
- # 在Erlang VM运行的情况下启动RabbitMQ应用
- rabbitmqctl start_app
- rabbitmqctl stop_app
-
- # 查看节点状态
- rabbitmqctl status
-
- # 查看所有可用的插件
- rabbitmq-plugins list
-
- # 启用插件
- rabbitmq-plugins enable <plugin-name>
-
- # 停用插件
- rabbitmq-plugins disable <plugin-name>
-
- # 添加用户
- rabbitmqctl add_user username password
-
- # 列出所有用户:
- rabbitmqctl list_users
-
- # 删除用户:
- rabbitmqctl delete_user username
-
- # 清除用户权限:
- rabbitmqctl clear_permissions -p vhostpath username
-
- # 列出用户权限:
- rabbitmqctl list_user_permissions username
-
- # 修改密码:
- rabbitmqctl change_password username newpassword
-
- # 设置用户权限:
- rabbitmqctl set_permissions -p vhostpath username ".*" ".*" ".*"
-
- # 创建虚拟主机:
- rabbitmqctl add_vhost vhostpath
-
- # 列出所以虚拟主机:
- rabbitmqctl list_vhosts
-
- # 列出虚拟主机上的所有权限:
- rabbitmqctl list_permissions -p vhostpath
-
- # 删除虚拟主机:
- rabbitmqctl delete_vhost vhost vhostpath
-
- # 移除所有数据,要在 rabbitmqctl stop_app 之后使用:
- rabbitmqctl reset
-
- # 通用参数
- General Options
-
- The following options are accepted by most or all commands.
-
- short | long | description
- -----------------|---------------|--------------------------------
- -? | --help | displays command help
- -n <node> | --node <node> | connect to node <node>
- -l | --longnames | use long host names
- -t | --timeout <n> | for commands that support it, operation timeout in seconds
- -q | --quiet | suppress informational messages
- -s | --silent | suppress informational messages
- | and table header row
- -p | --vhost | for commands that are scoped to a virtual host,
- | | virtual host to use
- | --formatter | alternative result formatter to use
- | if supported: json, pretty_table, table, csv, erlang
- not all commands support all (or any) alternative formatters.
RabbitMQ在安装好后,可以访问`http://ip地址:15672;其自带了guest/guest的用户名和密码;如果需要创建自定义用户;那么也可以登录管理界面后,如下操作:
角色说明:
1、 超级管理员(administrator)
可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。
2、 监控者(monitoring)
可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
3、 策略制定者(policymaker)
可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
4、 普通管理者(management)
仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
5、 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
像mysql拥有数据库的概念并且可以指定用户对库和表等操作的权限。RabbitMQ也有类似的权限管理;在RabbitMQ中可以虚拟消息服务器Virtual Host,每个Virtual Hosts相当于一个相对独立的RabbitMQ服务器,每个VirtualHost之间是相互隔离的。exchange、queue、message不能互通。 相当于mysql的db。Virtual Name一般以/开头。
6.2.1. 创建Virtual Hosts
6.2.2. 设置Virtual Hosts权限
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。