在CentOS 7中安装RabbitMQ服务器
关于 RabbitMQ
RabbitMQ 是一种开源消息代理软件,有时也称为面向消息的中间件,它实现了高级消息队列协议 (AMQP)。它非常易于使用,几乎可以在所有现代操作系统上运行。它建立在用于集群和故障转移的开放电信平台框架之上。 RabbitMQ 采用 Erlang 编程语言编写,由 Rabbit Technologies Ltd 积极开发。
在本教程中,我们将了解如何在 CentOS 7 最小服务器中安装 RabbitMQ 服务器。
先决条件
RabbitMQ 是使用 Erlang 编程语言编写的。所以,在安装RabbitMQ之前必须先安装Erlang。
要在 CentOS 7 服务器中安装和配置 Erlang,请参阅以下链接。
- 在 CentOS 7 中安装 Erlang 和 Elixir
安装 RabbitMQ
安装 Erlang 后,前往 RabbitMQ 下载页面获取基于 RPM 的安装程序,并使用命令下载最新版本:
wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.1/rabbitmq-server-3.6.1-1.noarch.rpm
然后,以root用户身份运行以下命令来添加rabbitmq签名密钥:
rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc
最后,使用命令安装 RabbitMQ 服务器:
yum install rabbitmq-server-3.6.1-1.noarch.rpm
示例输出:
Loaded plugins: fastestmirror
Examining rabbitmq-server-3.6.1-1.noarch.rpm: rabbitmq-server-3.6.1-1.noarch
Marking rabbitmq-server-3.6.1-1.noarch.rpm to be installed
Resolving Dependencies
--> Running transaction check
---> Package rabbitmq-server.noarch 0:3.6.1-1 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
rabbitmq-server noarch 3.6.1-1 /rabbitmq-server-3.6.1-1.noarch 5.5 M
Transaction Summary
================================================================================
Install 1 Package
Total size: 5.5 M
Installed size: 5.5 M
Is this ok [y/d/N]: y
就是这样。我们已经安装了 RabbitMQ。
SELinux 和防火墙配置
我们必须通过 SELinux 和防火墙允许以下端口,以便从远程系统访问 RabbitMQ 远程管理控制台。
确保以下端口可以打开:
- 4369(epmd)、25672(Erlang 发行版)
- 5672、5671(不带和带 TLS 的 AMQP 0-9-1)
- 15672(如果启用了管理插件)
- 61613、61614(如果启用了 STOMP)
- 1883、8883(如果启用了 MQTT)
要在防火墙中允许上述端口,请一一运行以下命令:
firewall-cmd --permanent --add-port=4369/tcp
firewall-cmd --permanent --add-port=25672/tcp
firewall-cmd --permanent --add-port=5671-5672/tcp
firewall-cmd --permanent --add-port=15672/tcp
firewall-cmd --permanent --add-port=61613-61614/tcp
firewall-cmd --permanent --add-port=8883/tcp
重启防火墙服务:
firewall-cmd --reload
然后,运行以下命令以允许 SELinux 启用 RabbitMQ 服务:
setsebool -P nis_enabled 1
运行以下命令启动并启用 RabbitMQ 服务:
systemctl start rabbitmq-server
systemctl enable rabbitmq-server
现在,使用以下命令检查 RabbitMQ 服务器的状态:
rabbitmqctl status
示例输出:
Status of node rabbit@server1 ...
[{pid,26591},
{running_applications,
[{rabbitmq_management,"RabbitMQ Management Console","3.6.1"},
{rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.1"},
{webmachine,"webmachine","1.10.3"},
{mochiweb,"MochiMedia Web Server","2.13.0"},
{ssl,"Erlang/OTP SSL application","7.3"},
{rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.1"},
{rabbit,"RabbitMQ","3.6.1"},
{mnesia,"MNESIA CXC 138 12","4.13.3"},
{amqp_client,"RabbitMQ AMQP Client","3.6.1"},
{compiler,"ERTS CXC 138 10","6.0.3"},
{os_mon,"CPO CXC 138 46","2.4"},
{syntax_tools,"Syntax tools","1.7"},
{inets,"INETS CXC 138 49","6.2"},
{rabbit_common,[],"3.6.1"},
{public_key,"Public key infrastructure","1.1.1"},
{asn1,"The Erlang ASN1 compiler version 4.0.2","4.0.2"},
{ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
{crypto,"CRYPTO","3.6.3"},
{xmerl,"XML parser","1.3.10"},
{sasl,"SASL CXC 138 11","2.7"},
{stdlib,"ERTS CXC 138 10","2.8"},
{kernel,"ERTS CXC 138 10","4.2"}]},
{os,{unix,linux}},
{erlang_version,
"Erlang/OTP 18 [erts-7.3] [source-d2a6d81] [64-bit] [async-threads:64] [hipe] [kernel-poll:true]\n"},
{memory,
[{total,54224944},
{connection_readers,0},
{connection_writers,0},
{connection_channels,0},
{connection_other,2680},
{queue_procs,2680},
{queue_slave_procs,0},
{plugins,424296},
{other_proc,19559456},
{mnesia,58312},
{mgmt_db,111720},
{msg_index,32856},
{other_ets,1358408},
{binary,36944},
{code,27354680},
{atom,992409},
{other_system,4290503}]},
{alarms,[]},
{listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
{vm_memory_high_watermark,0.4},
{vm_memory_limit,258528051},
{disk_free_limit,50000000},
{disk_free,12428034048},
{file_descriptors,
[{total_limit,924},{total_used,2},{sockets_limit,829},{sockets_used,0}]},
{processes,[{limit,1048576},{used,197}]},
{run_queue,0},
{uptime,55},
{kernel,{net_ticktime,60}}]
访问RabbitMQ管理控制台
RabbitMQ 管理控制台将允许您通过 Web 浏览器监控服务器进程。
要启用 RabbitMQ 管理控制台,请运行以下命令:
rabbitmq-plugins enable rabbitmq_management
chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
现在。打开 Web 浏览器并导航到以下 URL 以访问 RabbitMQ 服务器管理控制台。
- http://ip-address:15672/
RabbitMQ管理控制台默认的用户名和密码为‘guest’和‘guest’。
不过,您可以根据需要创建新的管理员用户。
为此,请运行:
rabbitmqctl add_user mqadmin mqadmin
rabbitmqctl set_user_tags mqadmin administrator
rabbitmqctl set_permissions -p / mqadmin ".*" ".*" ".*"
输入用户名和密码以访问 RabbitMQ Web 控制台:
恭喜!这是我的 RabbitMQ Web 仪表板的样子。
目前为止就这样了。开始使用您的 RabbitMQ 服务器。
有关更多详细信息,请查看本指南末尾给出的链接。
干杯!
参考链接:
- RabbitMQ网站
- RabbitMQ配置