目录
一、概述
RabbitMQ是一个免费的开源企业消息代理软件。 它是用Erlang编写的,并实现了高级消息队列协议(AMQP)。 它提供所有主要编程语言的客户端库。 它支持多种消息传递协议,消息队列,传送确认,灵活的路由到队列,多种交换类型。 它还提供易于使用的HTTP-API,命令行工具和用于管理RabbitMQ的Web UI。
那麽如何在CentOS 7上安装RabbitMQ服务器呢?
二、机器准备
服务器ip | 主机名 | 系统版本 |
---|---|---|
192.168.2.55 | myhost | Centos7.2 |
三、系统环境
[root@myhost ~]# cat /etc/redhat-release
CentOS Linux release 7.2.1511 (Core)
[root@myhost ~]# firewall-cmd --state #查看防火墙的状态
running
[root@myhost ~]# firewall-cmd --list-ports #查看防火墙已经开放的端口
[root@myhost ~]# firewall-cmd --list-services #查看防火墙开放的服务
dhcpv6-client ssh
#httpd服务默认的端口是80,防火墙允许80/tcp端口访问
[root@myhost ~]# firewall-cmd --zone=public --permanent --add-port=80/tcp
success
[root@myhost ~]# firewall-cmd --reload #重新加载防火墙配置
success
[root@myhost ~]# setenforce 0 && getenforce
Permissive
[root@myhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/sysconfig/selinux
四、安装RabbitMQ所需要的依赖软件
RabbitMQ是用Erlang语言编写的,在安装RabbitMQ 服务器之前需要安装 erlang软件。 erlang软件在默认的yum存储库中不可用,因此需要先安装epel存储库以及更新基本系统。
另外,安装RabbitMQ版本不同,需要erlang 依赖软件版本也不同。直接用yum install -y erlang命令安装的erlang可能版本比较低,不能够支持安装RabbitMQ。因此,我们可以下载高版本erlang软件的rpm包进行安装。
4.1 第一种方法:直接用 yum命令安装erlang
[root@myhost ~]# yum -y install epel-release && yum -y update
更新系统后,进一步安装 erlang和socat软件。
[root@myhost ~]# yum -y install erlang socat
安装成功之后,查看erlang软件版本。
[root@myhost ~]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 5.10.4
要切换到Erlang shell,可以键入以下命令:
[root@myhost ~]# erl
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]
Eshell V5.10.4 (abort with ^G)
1>
可以通过按ctrl + C两次退出Erlang shell。
4.2 第二种方法:下载rpm包来安装erlang
因为上面yum安装过erlang软件,再次用rpm包安装会报错,所以先卸载原来用yum命令安装的erlang软件。
[root@myhost tools]# rpm -qa |grep erlang
...
...
...
[root@myhost tools]# rpm -qa |grep erlang |xargs rpm -e
[root@myhost tools]# rpm -qa |grep erlang
现在,可以通过rpm包安来装erlang软件了。
[root@myhost ~]# cd /home/tools/
[root@myhost tools]# ll
总用量 0
[root@myhost tools]# wget --content-disposition https://packagecloud.io/rabbitmq/erlang/packages/el/7/erlang-21.3.8.21-1.el7.x86_64.rpm/download.rpm
[root@myhost tools]# ll
总用量 18576
-rw-r--r--. 1 root root 19017740 2月 21 01:54 erlang-21.3.8.21-1.el7.x86_64.rpm
[root@myhost tools]#
[root@myhost tools]# rpm -ivh erlang-21.3.8.21-1.el7.x86_64.rpm
警告:erlang-21.3.8.21-1.el7.x86_64.rpm: 头V4 RSA/SHA1 Signature, 密钥 ID 6026dfca: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:erlang-21.3.8.21-1.el7 ################################# [100%]
[root@myhost tools]# rpm -qa |grep erlang
erlang-21.3.8.21-1.el7.x86_64
[root@myhost tools]# erl -version
Erlang (SMP,ASYNC_THREADS,HIPE) (BEAM) emulator version 10.3.5.16
Erlang现在以及安装在系统上,现在可以继续安装RabbitMQ。
五、安装RabbitMQ软件
RabbitMQ为预编译并可以直接安装的企业Linux系统提供RPM软件包。
5.1 下载RabbitMQ软件需要版本的rpm包
[root@myhost tools]# wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.0/rabbitmq-server-3.8.0-1.el7.noarch.rpm
[root@myhost tools]# ll
总用量 30356
-rw-r--r--. 1 root root 19017740 2月 21 01:54 erlang-21.3.8.21-1.el7.x86_64.rpm
-rw-r--r--. 1 root root 12061353 10月 1 2019 rabbitmq-server-3.8.0-1.el7.noarch.rpm
5.2 将rpm包安装需要的Key 导入
rpm --import https://www.rabbitmq.com/rabbitmq-release-signing-key.asc
5.3 安装RabbitMQ
[root@myhost tools]# yum localinstall -y rabbitmq-server-3.8.0-1.el7.noarch.rpm
[root@myhost tools]# rpm -qa |grep rabbitmq
rabbitmq-server-3.8.0-1.el7.noarch
5.4 加入开机自启动
systemctl enable rabbitmq-server
5.5 启动/停止/重启/并查看运行状态
systemctl start rabbitmq-server
systemctl stop rabbitmq-server
systemctl restart rabbitmq-server
systemctl status rabbitmq-server
5.6 RabbitMQ 防火墙配置
RabbitMQ 的运行需要一系列的端口。因此你需要配置你的防火墙将下面的端口打开。Centos7一般使用的是 firewalld,那么请依次执行下面的命令。
firewall-cmd --zone=public --permanent --add-port=4369/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=25672/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=5671-5672/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=15672/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=61613-61614/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=1883/tcp && firewall-cmd --reload
firewall-cmd --zone=public --permanent --add-port=8883/tcp && firewall-cmd --reload && firewall-cmd --list-ports
注意: 如果服务器启用了 SELinux,还需要执行下面的命令来让RabbitMQ 服务器能够接收发送网络数据。
setsebool -P nis_enabled 1
5.7 启用RabbitMQ 的Web管理界面
在默认的情况下 RabbitMQ 的 Web 管理控制台是没有启用的,需要先安装 Web 管理界面的插件。
[root@myhost tools]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@myhost:
rabbitmq_management
The following plugins have been configured:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
Applying plugin configuration to rabbit@myhost...
The following plugins have been enabled:
rabbitmq_management
rabbitmq_management_agent
rabbitmq_web_dispatch
started 3 plugins.
5.8 提供 RabbitMQ 用户和对用户使用的权限进行赋权
[root@myhost tools]# chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
5.8 创建一个 web管理端用户admin,密码为admin 且用户标签备注为administrator
[root@myhost tools]# rabbitmqctl add_user admin admin
Adding user "admin" ...
[root@myhost tools]# rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
5.9 针对刚刚创建的 admin 用户进行赋权
[root@myhost tools]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
5.10 重启RabbitMQ并访问RabbitMQ 的Web管理界面
[root@myhost tools]# systemctl restart rabbitmq-server
RabbitMQ 的Web管理界面使用的http端口是 15672,浏览器访问地址:http://192.168.2.55:15672/,如果一切正常,你应该能够看到下面的登录界面:
输入前面创建的admin用户,密码为admin(可以在web页面再进行修改),登录后,将看到管理信息中心。
可以在仪表板的“ 管理”标签中找到用户列表,虚拟主机和策略。 您应该删除访客用户的安全注意事项。
可以在“ 队列”选项卡中找到消息队列列表。
可以通过此界面创建新队列或删除现有队列。
可以在“ 连接”选项卡上找到当前连接的列表。
同样,可以在各自的选项卡上找到渠道和交换。
可以轻松地在进程,服务器和客户端之间安装RabbitMQ进行消息排队。
要了解有关RabbitMQ的更多信息,可以浏览RabbitMQ站点。
5.11 修改管理员密码
[root@myhost tools]# rabbitmqctl add_user admin 新密码
Changing password for user "admin" ...