一、CentOS7环境中安装RabbitMQ
本文以安装rabbitmq-server-3.6.5为例
1.软件准备
yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel
2. 下载RabbitMQ所需软件包
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
3. 安装服务命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
4. 修改用户登录与连接心跳检测,注意修改
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
修改点1:loopback_users 中的 <<"guest">>,只保留guest (用于用户登录)
修改点2:heartbeat 为10(用于心跳连接)
5. 安装管理插件
(1) 首先启动服务(后面包含了停止、查看状态以及重启的命令)
/etc/init.d/rabbitmq-server start | stop | status | restart
(2)查看服务(5672是Rabbit的默认端口)
lsof -i:5672
(3)启动浏览器,管理RabbitMQ功能,目的是浏览器访问RabbitMQ,进行后台管理
rabbitmq-plugins enable rabbitmq_management
(4)查看管理端口有没有启动
lsof -i:15672 或者 netstat -tnlp | grep 15672
6.测试
访问地址( http://你的ip地址:15672/),输入用户名密码均为 guest
二、RabbitMQ登录过程中的问题解决和RabbitMQ指令说明
1.刚安装完rabbitmq,登录的时候出现login failed的问题
现象:
原因:
查看rabbitmq的文档,发现在3.3.1以后的版中,处于安全的考虑,guest这个默认的用户只能通过localhost来登录,其他的IP无法直接使用这个账号。
解决:
方法1:编写配置文件:/etc/rabbitmq/rabbitmq.config,并在其中添加以下内容:
[{rabbit, [{loopback_users, []}]}].
方法2:创建新用户,将其身份改为管理者
修改完成后记得重启服务
2.用户相关操作指令
(1)主要指令
rabbitmqctl add_user <Username> <Password> 添加用户
rabbitmqctl set_permissions -p "/" <Username> ".*" ".*" ".*" 权限设置
rabbitmqctl set_user_tags <Username> administrator 设计角色
rabbitmqctl set_user_tags <Username> monitoring policymaker 设计多个角色
rabbitmqctl clear_permissions [-p <VHostPath>] <Username> 删除角色
rabbitmqctl list_user_permissions <Username> 查看指定用户权限
(2)其他指令
rabbitmqctl add_user <Username> <Password> 添加用户
rabbitmqctl delete_user <Username> 删除用户
rabbitmqctl change_password <Username> <NewPassword> 修改密码
rabbitmqctl list_users 查看已有用户
3.用户角色及其权限
(1) 超级管理员(administrator)
可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2) 监控者(monitoring)
可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
(3) 策略制定者(policymaker)
可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
(4) 普通管理者(management)
仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5) 其他
无法登陆管理控制台,通常就是普通的生产者和消费者。