Centos7安装RabbitMQ
RabbitMQ centos7安装
rabbitmq需要依赖erlang,下面为版本之间的关系
rabbitmq版本
erlang最低版本
erlang最高版本
3.9.0 - 3.9.14
23.2
24.x
3.8.16 - 3.8.28
23.2
24.x
3.8.9 - 3.8.15
22.3
23.x
3.8.4 - 3.8.8
21.3
23.x
3.8.0 - 3.8.7
21.3
22.x
如果安装erlang23.3版本,那么可以使用3.8.4-3.9.14的所有版本(有待验证
)
Erlang安装
1、依赖安装
yum -y install make gcc gcc-c++ build-essential openssl openssl-devel unixODBC unixODBC-devel kernel-devel m4 ncurses-devel xmlto perl wget gtk2-devel binutils-devel
2、下载rabbitmq提供的特殊版erlang
网址:零依赖Eralng
#下载后即可直接安装
rpm -ivh erlang-23.3.4.10-1.el7.x86_64.rpm
安装后的位置是在/usr/lib64/erlang
3、测试
erl
#将会出现以下结果
[root@centos ~]# erl
Erlang/OTP 23 [erts-11.2.2.9] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]
Eshell V11.2.2.9 (abort with ^G)
1> halt().
[root@centos ~]#
4、ERLANG_HOME环境配置
vim /etc/profile
ERLANG_HOME=/usr/lib64/erlang
export PATH=$ERLANG_HOME/bin:$PATH
# 刷新
source /etc/profile
RabbitMQ的安装
1、依赖安装
yum install socat logrotate -y
2、下载rpm安装包
此方法安装后,可直接提供开机自启的脚本,推荐这种方式
# 可以加入key,也可以忽略
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
#下载后即可直接安装
rpm -ivh rabbitmq-server-3.8.28-1.el7.noarch.rpm
通过该方式安装后会直接创建好/lib/systemd/system/rabbitmq-server.service
服务文件
3、安装后加入开机自启
# 刷新
systemctl daemon-reload
#加入开机自启
systemctl enable rabbitmq-server.service
#启动
systemctl start rabbitmq-server.service
#查看状态
systemctl status rabbitmq-server.service
4、开启远程管理界面插件
#开启web管理界面插件
rabbitmq-plugins enable rabbitmq_management
5、创建远程用户
本身是有一个用户的guest guest
,但是只能localhost
访问
#创建账号
rabbitmqctl add_user admin 123
#设置用户角色
rabbitmqctl set_user_tags admin administrator
#设置用户权限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
#用户 user_admin 具有/vhost1 这个 virtual host 中所有资源的配置、写、读权限
#当前用户和角色
rabbitmqctl list_users
6、常用命令
# 添加用户
sudo rabbitmqctl add_user <username> <password>
# 删除用户
sudo rabbitmqctl delete_user <username>
# 修改用户密码
sudo rabbitmqctl change_password <username> <newpassword>
# 清除用户密码(该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证)
sudo rabbitmqctl clear_password <username>
# 设置用户tags(相当于角色,包含administrator,monitoring,policymaker,management)
sudo rabbitmqctl set_user_tags <username> <tag>
# 列出所有用户
sudo rabbitmqctl list_users
# 创建一个vhosts
sudo rabbitmqctl add_vhost <vhostpath>
# 删除一个vhosts
sudo rabbitmqctl delete_vhost <vhostpath>
# 列出vhosts
sudo rabbitmqctl list_vhosts [<vhostinfoitem> ...]
# 针对一个vhosts给用户赋予相关权限;
sudo rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
# 清除一个用户对vhosts的权限;
sudo rabbitmqctl clear_permissions [-p <vhostpath>] <username>
# 列出哪些用户可以访问该vhosts;
sudo rabbitmqctl list_permissions [-p <vhostpath>]
# 列出用户访问权限;
sudo rabbitmqctl list_user_permissions <username>
#重置
rm -rf var/lib/rabbitmq/mnesia/
这个目录,为rabbitmq数据库,有时异常情况出现时,可删除该目录,重新对rabbitmq进行设置即可
7、卸载
#查看安装
rpm -qa |grep rabbit
#进行卸载
rpm -e --nodeps rabbitmq-server-3.8.8-1.el6.noarch
#查找相关文件及目录,进行删除
find / -name rabbit*
rm -rf 依次删除
8、启动脚本(使用解压方式安装才会用到,上述安装方式用不到)
vim /etc/init.d/rabbitmq
#!/bin/sh
#
# chkconfig: 2345 80 05
# description: rabbitmq
# processname: rabbitmq
#RabbitMQ安装目录
#export HOME=/opt/rabbitmq-3.7.9
export PATH=$PATH:/opt/erlang/bin
export HOME=/opt/rabbitmq-3.7.9
#RABBITMQ_HOME=/opt/rabbitmq-3.7.9
#export RABBITMQ_HOME
#export PATH=$PATH:/opt/rabbitmq-3.7.9/sbin
case "$1" in
start)
echo "Starting RabbitMQ ..."
cd $HOME/sbin
./rabbitmq-server -detached
;;
stop)
echo "Stopping RabbitMQ ..."
cd $HOME/sbin/
#/opt/rabbitmq-3.7.9/sbin/rabbitmqctl stop
./rabbitmqctl stop
;;
status)
echo "Status RabbitMQ ..."
cd $HOME/sbin/
./rabbitmqctl status
;;
restart)
echo "Restarting RabbitMQ ..."
$0 stop
$0 start
#cd $HOME/
#sbin/rabbitmq-server -detached
;;
*)
echo "Usage: $prog {start|stop|status|restart}"
;;
esac
exit 0