RabbitMQ指南(一) 安装部署
1.1 准备
1、一台Linux服务器,作为学习,我在VMWare上安装了带有用户界面的CentOS7系统,下载地址:
https://www.centos.org/download/
版本:CentOS-7-x86_64-Everything-1804.iso
2、Erlang安装包,RabbitMQ依赖于Erlang语言,下载地址:
http://www.erlang.org/downloads
版本:otp_src_21.1.tar.gz
3、RabbitMQ安装包,下载地址:
http://www.rabbitmq.com/install-generic-unix.html
版本:rabbitmq-server-generic-unix-3.7.8.tar.xz
4、OpenSSL安装包,下载地址:
https://www.openssl.org/source
版本:openssl-1.1.1.tar.gz
如果使用其他版本,可能会遇到别的问题。我曾使用otp_src_19.3.tar.gz版本的安装包,erlang ssl总是会有问题。
1.2 安装
1.2.1 配置本地yum源
按照经验,在安装过程中,总会出现缺少各种包的情况。所以如果处于离线环境,在安装之前,建议先配置一下本地yum源,将CentOS的安装iso文件上传至Linux服务器上,将其挂载,此处挂载至/mnt/centos7路径下:
[[email protected] mnt]# mount -o loop CentOS-7-x86_64-Everything-1804.iso /mnt/centos7/
进入路径/etc/yum.repo.d下,删除所有文件,新建centos.repo文件,文件内容为:
[centos7]
name=centos repo
baseurl=file:///mnt/centos7
gpgcheck=0
即可使用本地yum源进行安装。
1.2.2 安装OpenSSL
首先需安装OpenSSL,将OpenSSL安装包上传至服务器,解压安装包并安装,其中/usr/local/openssl是安装路径:
[[email protected] ~]# tar -xvf openssl-1.1.1.tar.gz
[[email protected] ~]# cd openssl-1.1.1/
[[email protected] openssl-1.1.1]# ./config --prefix=/usr/local/openssl
[[email protected] openssl-1.1.1]# make && make install
1.2.3 安装Erlang
将Erlang安装包上传至Linux服务器,解压安装包:
[[email protected] ~]# tar -xvf otp_src_21.1.tar.gz
进入解压出来的otp_src_21.1文件夹:
[[email protected] ~]# cd otp_src_21.1
检查配置:
[[email protected] otp_src_21.1]# ./configure --prefix=/usr/local/erlang --with-ssl=/usr/local/openssl
其中,–prefix=/usr/local/erlang指Erlang安装的路径;–with-ssl=/usr/lib64/openssl指明OpenSSL的路径,若无OpenSSL,后续RabbitMQ安装时将报错。
检查时应关注报错信息,从下图可以看到,有一些组件不存在,导致相关功能不启用,不影响后续安装。
检查过程中可能产生报错:
configure: error: No curses library functions found
该报错由于缺少ncurses-devel,安装可解决:
[[email protected] otp_src_21.1]# yum install ncurses-devel
Erlang检查通过,即可进行编译、安装:
[[email protected] otp_src_21.1]# make && make install
安装完成后,进入Erlang安装目录,验证安装正确:
[[email protected] otp_src_21.1]# cd /usr/local/erlang/bin
[[email protected] bin]# ./erl
若出现以下内容,说明Erlang正确安装:
Erlang/OTP 20 [erts-9.2] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V9.2 (abort with ^G)
1>
输入“ssl:versions().”,回车,若无报错,说明erlang ssl正确安装,可继续进行后续的安装。输入“halt().”回车退出。
1.2.4 安装RabbitMQ
将RabbitMQ安装包上传至Linux服务器,解压即可:
[[email protected] ~]# xz -d rabbitmq-server-generic-unix-3.7.8.tar.xz
[[email protected] ~]# tar -xvf rabbitmq-server-generic-unix-3.7.8.tar
解压后得到文件夹rabbitmq_server-3.7.8。进入rabbitmq_server-3.7.8的sbin目录,启动RabbitMQ服务端:
[[email protected] sbin]# ./rabbitmq-server
如果出现了下面这只兔子,就说明RabbitMQ启动成功了。
以这样的方式启动,退出当前的会话,RabbitMQ也将随之关闭,如果想后台运行,使用下面的指令:
[[email protected] sbin]# ./rabbitmq-server -detached
查看RabbitMQ状态:
[[email protected] sbin]# ./rabbitmqctl status
可将sbin路径添加至环境变量,这样在任何位置都可以直接输入rabbitmq-server命令启动RabbitMQ,vi .bash_profile,加入以下内容:
#set rabbitmq environment
export PATH=$PATH:/usr/local/rabbitmq/rabbitmq_server-3.7.8/sbin
1.2.5 RabbitMQ网页管理工具
RabbitMQ提供的管理和监控工具,分rabbitmq-plugins和rabbitmqctl两种类型的工具。rabbitmq-plugins提供HTTP API监控和管理RabbitMQ;rabbitmqctl是命令行工具,适合通过SSH登陆的管理。
进入RabbitMQ的sbin目录,通过以下命令启用rabbitmq-plugins:
[[email protected] sbin]# ./rabbitmq-plugins enable rabbitmq_management
出现以下提示,启动成功:
使用浏览器,登入“http://[rabbitmq-server]:15672”,即可进入管理工具的登录页面:
RabbitMQ默认初始配有用户guest(密码guest),出于安全考虑,guest用户只能在localhost:15672登录。进入RabbitMQ的sbin目录,使用以下命令添加用户:
添加用户,指定用户名、密码
[[email protected] sbin]# ./rabbitmqctl add_user mqtester mqtester
将用户设置为管理员(administrator)才可远程访问
[[email protected] sbin]# ./rabbitmqctl set_user_tags mqtester administrator
设置用户的权限,指定允许访问的vhost以及write/read
[[email protected] sbin]# ./rabbitmqctl set_permissions -p "/" mqtester ".*" ".*" ".*"
查看可访问vhost(/)的用户
[[email protected] sbin]# ./rabbitmqctl list_permissions -p /
创建完成后,即可使用mqtester用户进行远程登录。生产一般会删除guest用户。
如果使用远程登录,注意关闭Linux服务器的防火墙,CentOS中使用以下指令关闭防火墙并禁止开机自动启动:
[[email protected] ~]# systemctl stop firewalld.service
[[email protected] ~]# systemctl disable firewalld.service