一、安装erlang
rabbitmq是erlang语言编写的,安装rabbitmq之前,需要先安装erlang,这里用erlang的源码进行安装,erlang安装包官网下载地址:http://erlang.org/download/
1.安装依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
2.下载
wget http://erlang.org/download/otp_src_22.0.tar.gz
3.解压
tar -zxvf otp_src_22.0.tar.gz
4.移走
mv otp_src_22.0 /usr/local/
5.这里要新建一个erlang文件夹,因为erlang编译安装默认是装在/usr/local下的bin和lib中,这里我们将他统一装到/usr/local/erlang中,方便查找和使用
mkdir -p /usr/local/erlang
6.配置安装路径(确保环境中已经安装了java,erlang的编译需要用到java环境)
/usr/local/otp_src_22.0/configure --prefix=/usr/local/erlang
遇到以下错误不需要管
7.进行编译安装
make && make install
安装后,在/usr/local/erlang中就会出现如下:
8.添加环境变量
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
9.刷新环境变量
source /etc/profile
此时,安装完成,直接输入erl,得到如下图,表明安装成功
在里面输入halt().命令退出来(那个点号别忘记)
二、安装rabbitMQ
安装之前,需要去官网查看一下rabbitmq版本对erlang版本的一个支持情况,官网地址:http://www.rabbitmq.com/which-erlang.html
这里,我erlang 安装的是22.0,所以我选择rabbitMQ 3.7.18。在官网上,直接下载该版本的安装包,为了方便安装,最好直接使用编译好的二进制文件包,即开即用,不用进行复杂的yum配置等。具体可以参考官方文档:http://www.rabbitmq.com/install-generic-unix.html
1.下载源码包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.18/rabbitmq-server-generic-unix-3.7.18.tar.xz
2.解压
tar -xvf rabbitmq-server-generic-unix-3.7.18.tar.xz -C /usr/local/
3.配置环境变量
echo 'export PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin' >> /etc/profile
4.刷新环境变量
source /etc/profile
5.添加web管理插件
rabbitmq-plugins enable rabbitmq_management
默认rabbitmq是没有配置文件的,需要去官方github上,复制一个配置文件模版过来,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原来erlang格式的advanced.config相结合,解决一下key-value形式不好定义的配置。github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs
将配置文件复制到 /usr/local/rabbitmq_server-3.7.18/etc/rabbitmq/ 下
6. 后台启动rabbitmq服务
rabbitmq-server -detached
访问rabbitMQ服务器
使用默认的用户 guest / guest (此也为管理员用户)登陆,会发现无法登陆,报错:User can only log in via localhost。那是因为默认是限制了guest用户只能在本机登陆,也就是只能登陆localhost:15672。可以通过修改配置文件rabbitmq.conf,取消这个限制: loopback_users这个项就是控制访问的,如果只是取消guest用户的话,只需要loopback_users.guest = false 即可。
注意:
{loopback_users, [<<"guest">>]}
这个是erlang格式的原配置,后面是一个列表,可以自定义添加多个用户。是用来定义需要被限制登录的用户。默认是只有guest这一个用户。我们这里只需要设置loopback_users.guest = false 就可以解除guest的限制了。如图:
此时,就能登陆到web控制界面
常用命令:
服务启动停止:
启动: rabbitmq-server -detached
停止: rabbitmqctl stop
插件管理:
插件列表: rabbitmq-plugins list
启动插件: rabbitmq-plugins enable XXX (XXX为插件名)
停用插件: rabbitmq-plugins disable XXX
用户管理:
添加用户: rabbitmqctl add_user username password
删除用户: rabbitmqctl delete_user username
修改密码: rabbitmqctl change_password username newpassword
设置用户角色: rabbitmqctl set_user_tags username tag
user 有5种 tags :
management :访问 management plugin;
policymaker :访问 management plugin 和管理自己 vhosts 的策略和参数;
monitoring :访问 management plugin 和查看所有配置和通道以及节点信息;
administrator :一切权限;
None :无配置
如:rabbitmqctl set_user_tags zhaobl administrato
列出用户: rabbitmqctl list_users
权限管理:
列出所有用户权限: rabbitmqctl list_permissions
查看制定用户权限: rabbitmqctl list_user_permissions username
清除用户权限: rabbitmqctl clear_permissions [-p vhostpath] username
设置用户权限: rabbitmqctl set_permissions [-p vhostpath] username conf write read
conf: 一个正则匹配哪些资源能被该用户访问
write:一个正则匹配哪些资源能被该用户写入
read:一个正则匹配哪些资源能被该用户读取
如:rabbitmqctl set_permissions -p "/" zhaobl ".*" ".*" ".*"