如何在 CentOS 7/CentOS 6 上安装 RabbitMQ
本指南将介绍在 CentOS 7/CentOS 6 服务器上安装 RabbitMQ 所需的步骤。我的实验室基于我之前的指南在 Linux 上使用 Vagrant 和 Libvirt。 RabbitMQ是一个实现AMQP(高级消息队列协议)的消息代理软件。
对于 Ubuntu,请检查:如何在 Ubuntu 上安装最新的 RabbitMQ 服务器
安装要求:
- EPEL 存储库
- Erlang 存储库
- RabbitMQ 存储库
我更喜欢使用存储库来安装 Rabbitmq 服务器和 Erlang,而不是使用 rpm 软件包,后者往往会带来软件包依赖性问题并且必须手动更新软件包。
第 1 步:设置系统主机名
您可以从配置服务器的主机名开始。
在 CentOS 6 上设置服务器主机名:
$ sudo vi /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
步骤 2:添加 EPEL 存储库
使用 yum 命令将 epel 存储库添加到您的系统,如下所示:
sudo yum -y install epel-release wget
您可以使用以下命令检查存储库是否已添加并正常运行:
sudo yum repolist
第三步:安装Erlang
添加Erlang官方YUM存储库:
wget https://packages.erlang-solutions.com/erlang-solutions-2.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-2.0-1.noarch.rpm
然后安装Erlang RPM包:
sudo yum install erlang
接受安装提示并导入 GPG 密钥:
...
Transaction Summary
======================================================================================================================================================================================================
Install 1 Package (+91 Dependent packages)
Total download size: 62 M
Installed size: 163 M
Is this ok [y/d/N]: y
....
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 16 MB/s | 62 MB 00:00:03
Retrieving key from file:///etc/pki/rpm-gpg//erlang_solutions.asc
Importing GPG key 0xA14F4FCA:
Userid : "Erlang Solutions Ltd. <[email >"
Fingerprint: 4349 75bd 900c cbe4 f7ee 1b1e d208 507c a14f 4fca
Package : erlang-solutions-2.0-1.noarch (installed)
From : /etc/pki/rpm-gpg//erlang_solutions.asc
Is this ok [y/N]: y
通过检查版本和 CLI 工具访问来确认 Erlang 安装
$ erl
Erlang/OTP 24 [erts-12.0.3] [source] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:1]
Eshell V12.0.3 (abort with ^G)
1>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
(l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
q
第4步:安装RabbitMQ服务器
添加 RabbitMQ 存储库:
运行以下命令将 RabbitMQ YUM 存储库添加到您的
cat << EOF | sudo tee /etc/yum.repos.d/rabbitmq.repo
[rabbitmq_rabbitmq-server]
name=rabbitmq_rabbitmq-server
baseurl=https://packagecloud.io/rabbitmq/rabbitmq-server/el/\$releasever/\$basearch
repo_gpgcheck=1
gpgcheck=0
enabled=1
gpgkey=https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
EOF
更新存储库缓存
sudo yum clean all
sudo yum makecache
列出系统中配置的可用存储库:
$ sudo yum repolist
Failed to set locale, defaulting to C
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.mirror.constant.com
* epel: d2lzkl7pfhq30w.cloudfront.net
* extras: mirror.math.princeton.edu
* updates: mirrors.advancedhosters.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10072
droplet-agent/x86_64 DigitalOcean Droplet Agent 5
epel/x86_64 Extra Packages for Enterprise Linux 7 - x86_64 13665
erlang-solutions/7/x86_64 Centos 7 - x86_64 - Erlang Solutions 5704
extras/7/x86_64 CentOS-7 - Extras 500
rabbitmq_rabbitmq-server/7/x86_64 rabbitmq_rabbitmq-server 78
updates/7/x86_64 CentOS-7 - Updates 2747
repolist: 32771
安装rabbitmq-server 包。
sudo yum -y install rabbitmq-server
启动并启用rabbitmq-server以在启动时启动。
CentOS 7:
sudo systemctl enable --now rabbitmq-server
检查服务状态:
$ systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: active (running) since Mon 2021-09-13 09:19:14 UTC; 48s ago
Main PID: 9636 (beam.smp)
CGroup: /system.slice/rabbitmq-server.service
├─9636 /usr/lib64/erlang/erts-12.0.3/bin/beam.smp -W w -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 -t 5000000 -stbt db -zdbbl 128000 -sbwt none -sbwtdc...
├─9651 erl_child_setup 32768
├─9676 /usr/lib64/erlang/erts-12.0.3/bin/epmd -daemon
├─9699 inet_gethost 4
└─9700 inet_gethost 4
Sep 13 09:19:06 centos rabbitmq-server[9636]: Doc guides: https://rabbitmq.com/documentation.html
Sep 13 09:19:06 centos rabbitmq-server[9636]: Support: https://rabbitmq.com/contact.html
Sep 13 09:19:06 centos rabbitmq-server[9636]: Tutorials: https://rabbitmq.com/getstarted.html
Sep 13 09:19:06 centos rabbitmq-server[9636]: Monitoring: https://rabbitmq.com/monitoring.html
Sep 13 09:19:06 centos rabbitmq-server[9636]: Logs: /var/log/rabbitmq/[email
Sep 13 09:19:06 centos rabbitmq-server[9636]: /var/log/rabbitmq/rabbit@centos_upgrade.log
Sep 13 09:19:06 centos rabbitmq-server[9636]: <stdout>
Sep 13 09:19:06 centos rabbitmq-server[9636]: Config file(s): (none)
Sep 13 09:19:14 centos rabbitmq-server[9636]: Starting broker... completed with 0 plugins.
Sep 13 09:19:14 centos systemd[1]: Started RabbitMQ broker.
CentOS 6:
使用以下命令在 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
授予用户对虚拟主机的权限:
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
第 5 步:启用 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 管理 Web 控制台
从客户端访问“http://server:15672/”:您应该看到一个登录窗口:
使用之前创建的用户名和密码登录:
下一篇要阅读的文章是:
- 如何备份和恢复 RabbitMQ 数据和配置