如何在CentOS 7/CentOS 6上安装RabbitMQ

时间:2020-02-23 14:31:21  来源:igfitidea点击:

本指南将介绍在CentOS 7/CentOS 6服务器上安装RabbitMQ所需的步骤。
我的实验室基于我以前的指南,在Linux上将Vagrant与Libvirt一起使用。
RabbitMQ是实现AMQP(高级消息队列协议)的消息代理软件。

安装要求:

我更喜欢使用存储库来安装Rabbitmq服务器和Erlang,而不是使用rpm软件包,这往往会带来软件包依赖性问题并不得不手动更新软件包。

设置主机名

我们可以从配置服务器的主机名开始。

在CentOS 6上设置服务器主机名:

$cat /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=mq-01.example.com

进行更改后,重新启动网络服务。

sudo /etc/init.d/network restart

然后确认当前的主机名设置:

$hostname 
mq-01.example.com

要临时设置当前shell会话的主机名,请使用:

sudo hostname mq-01.example.com

在CentOS 7上设置服务器主机名:

对于CentOS 7服务器,我们可以使用hostnamectl命令轻松设置服务器主机名。

sudo hostnamectl set-hostname mq-01.example.com --static

添加EPEL存储库:

使用yum命令将epel存储库添加到系统,如下所示:

sudo yum -y install epel-release

添加Erlang存储库并安装Erlang。

wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
sudo yum install erlang

添加RabbitMQ存储库:

对于CentOS 7:

cat << EOF | sudo tee /etc/yum.repos.d/rabbitmq.repo
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/7/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

对于CentOS 6:

cat << EOF | sudo tee /etc/yum.repos.d/rabbitmq.repo
[bintray-rabbitmq-server]
name=bintray-rabbitmq-rpm
baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.8.x/el/6/
gpgcheck=0
repo_gpgcheck=0
enabled=1
EOF

安装rabbitmq-server软件包。

sudo yum -y install rabbitmq-server

启动并启用rabbitmq-server在启动时启动。
CentOS7:

sudo systemctl enable --now rabbitmq-server

CentOS 6:

sudo chkconfig rabbitmq-server on
sudo chkconfig --list | grep rabbitmq
sudo service rabbitmq-server start

要使用RabbitMQ,请首先添加用户。
默认情况下,只有来宾用户存在,并且他可以从本地主机连接。

$rabbitmqctl add_user admin NUaiMe0k
Adding user "admin" ...
$rabbitmqctl set_user_tags admin administrator
$rabbitmqctl list_users
Listing users ...
admin [administrator]
guest [administrator]

其他Rabbitmqctl管理命令是:

删除用户:

rabbitmqctl delete_user user

更改用户密码:

rabbitmqctl change_password user strongpassword

添加虚拟主机:

rabbitmqctl add_vhost /my_vhost

列出虚拟主机:

rabbitmqctl list_vhosts

删除虚拟主机:

rabbitmqctl delete_vhost /my_vhost

授予用户对vhost的权限:

rabbitmqctl set_permissions -p /my_vhost user ".*" ".*" ".*"

列出虚拟主机权限:

rabbitmqctl list_permissions -p /my_vhost

列出用户权限:

rabbitmqctl list_user_permissions user

删除用户权限:

rabbitmqctl clear_permissions -p /my_vhost user

启用RabbitMQ UI

我们可以启用管理插件以使用基于Web的界面来管理RabbitMQ。

--- For CentOS 7 --
$sudo rabbitmq-plugins enable rabbitmq_management
$sudo systemctl restart rabbitmq-server
--- For CentOS 6 --
$sudo service rabbitmq-server restart

配置防火墙

打开防火墙上的端口:

sudo firewall-cmd --add-port={4369/tcp,25672}/tcp --permanent

使用Iptables:

sudo iptables -A INPUT -p tcp -m tcp --dport 4369 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp --dport 25672 -j ACCEPT

访问RabbitMQ Admin Web控制台

从客户端访问" http://server:15672 /":我们将获得一个登录窗口,

使用用户名和之前创建的密码登录。