虚拟机CentOS 7安装RabbitMQ
1、安装erlang环境
RabbitMQ是基于erlang语言开发,因此要先安装erlang。
- 安装erlang环境依赖
yum -y install gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel
- 在线下载erlang安装包,可进入官网地址选择安装版本后再进行下载;
wget http://erlang.org/download/otp_src_22.0.tar.gz
- 下载后,在当前目录下就会有安装包。解压并移至
/usr/local
目录下
ta -zxvf otp_src_22.0.tar.gz -C /usr/local
- 创建安装目录;
mkdir /usr/local/erlang
- 进入解压目录,配置安装路径(如果出现WARNING,可以忽视);
cd /usr/local/otp_src_22.0/
./configure --prefix=/usr/local/erlang
- 安装;
make install
- 添加环境变量,并刷新环境配置;
echo 'export PATH=$PATH:/usr/local/erlang/bin' >> /etc/profile
source /etc/profile
- erlang环境安装成功测试
erl
# 进入以下界面即安装成功
Erlang/OTP 22 [erts-10.4] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]
Eshell V10.4 (abort with ^G)
1>
# 输入 halt(). 退出此界面
2、安装RabbitMQ
在下载安装包之前,需要了解erlang版本与rabbitMQ版本的兼容性https://www.rabbitmq.com/which-erlang.html,再进行下载安装包
在线下载RabbitMQ安装包,由于RabbitMQ放在GitHub上,大家可在https://github.com/rabbitmq/rabbitmq-server/releases找到相应的发行版本,使用下述类似命令在线安装:
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.25/rabbitmq-server-generic-unix-3.7.25.tar.xz
由于我的网络原因,没办法下载不了,只能选择离线安装方式,还要各种搜索找源码包,真的烦,在这提供下载链接,找到对应的版本下载,下载好了通过Xftp文件传输到CentOS7系统中。我这里下载的是3.7.13版本。
现在开始安装
- xz命令解压。没有该命令的通过
yum -y insatll xz
进行安装;再使用tar命令第二次解压,并移动到/usr/local
目录下;
/bin/xz -d rabbitmq-server-generic-unix-3.7.13.tar.xz
tar -xvf rabbitmq-server-generic-unix-3.7.13.tar -C /usr/local/
- 将解压后的目录重命名为rabbitmq;
mv ./rabbitmq_server-3.7.13 rabbitmq
- 配置、刷新环境变量;
echo 'export PATH=$PATH:/usr/local/rabbitmq/sbin' >> /etc/profile
source /etc/profile
- 安装WEB管理插件
rabbitmq-plugins enable rabbitmq_management
- 以守护进程在后台运行的方式启动RabbitMQ;
rabbitmq-server -detached
如果出现下述警告,可以忽视。官方解释使用此方式运行rabbitMQ会导致此警告。
Warning: PID file not written; -detached was passed.
其他命令
rabbitmqctl stop # 停止RabbitMQ
rabbitmqctl status # 查看RabbitMQ状态
3、防火墙设置
如果启用了防火墙,请开放端口,RabbitMQ默认端口为5672和15672
# 查看端口开放状态
firewall-cmd --zone=public --list-ports
# 开放端口
firewall-cmd --zone=public --add-port=5672/tcp --permanent
firewall-cmd --zone=public --add-port=15672/tcp --permanent
# 重启防火墙服务
firewall-cmd --reload
4、用户管理
RabbitMQ提供了默认账户密码guest,用于访问网页管理。但使用宿主机是不能使用该账户访问虚拟机的RabbitMQ管理网页的。
配置新的用户
- 查看所有用户;
rabbitmqctl list_users
# Listing users ...
# user tags
# guest [administrator]
- 添加用户密码;
rabbitmqctl add_user chan 123456
- 配置用户权限;
rabbitmqctl set_permissions -p "/" chan ".*" ".*" ".*"
- 查看用户权限;
rabbitmqctl list_user_permissions chan
# Listing permissions for user "chan" ...
# vhost configure write read
# / .* .* .*
- 设置用户身份;
rabbitmqctl set_user_tags chan administrator
- 删除用户;
rabbitmqctl delete_user guest
配置好后,就可以在宿主机使用新用户进行远程访问了。访问网址为http://虚拟机IP:15672
。如果是程序内调用,使用http://虚拟机IP:5672
。
5、开机自启动
- 创建启动脚本
vim /etc/init.d/rabbitmq
- 脚本内容
#!/bin/bash
#
# chkconfig: 2345 80 05
# description: rabbitmq
# processname: rabbitmq
#RabbitMQ安装目录
RABBITMQ_HOME=/usr/local/rabbitmq
export RABBITMQ_HOME
case "$1" in
start)
echo "Starting RabbitMQ ..."
cd $RABBITMQ_HOME/sbin
rabbitmq-server -detached
;;
stop)
echo "Stopping RabbitMQ ..."
cd $RABBITMQ_HOME/sbin
rabbitmqctl stop
;;
status)
echo "Status RabbitMQ ..."
cd $RABBITMQ_HOME/sbin
rabbitmqctl status
;;
restart)
echo "Restarting RabbitMQ ..."
cd $RABBITMQ_HOME/sbin
rabbitmq-server
;;
*)
echo "Usage: $prog {start|stop|status|restart}"
;;
esac
- 修改脚本权限并设置自启动
chkconfig --add /etc/init.d/rabbitmq
chkconfig rabbitmq on
至此,RabbitMQ安装完成。