在Ubuntu 20.04| 18.04 LTS上安装最新的rabbitmq服务器

时间:2020-02-23 14:44:42  来源:igfitidea点击:

RabbitMQ是一个开源消息代理软件,它通过插件实现高级消息排队协议(AMQP)和传输文本面向邮件传递协议,消息排队遥测传输和其他协议。

消息传递代理的工作是从发布者(发布它们的应用程序)接收消息并将其路由到消费者(处理它们的应用程序)。
AMQP是一种消息传递协议,使客户端应用程序能够与符合符合消息传递中间件代理进行通信。

按照以下步骤在Ubuntu 20.04| 18.04 LTS上安装RabbitMQ服务器

第1步:安装Erlang/OTP

RabbitMQ需要先在运行之前先安装Erlang。
使用我们的上一稿将Erlang安装在Ubuntu 18.04系统上:

如何在Ubuntu上安装最新的Erlang

一旦安装了Erlang,就继续执行步骤2.

第2步:将RabbitMQ存储库添加到Ubuntu

导入rabbitmq:

sudo apt update && sudo apt install wget -y
sudo apt install apt-transport-https -y
wget -O- https://dl.bintray.com/rabbitmq/Keys/rabbitmq-release-signing-key.asc | sudo apt-key add 
wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add 

现在将RabbitMQ存储库添加到Ubuntu 20.04 | 18.04:

--- Ubuntu 20.04 --
echo "deb https://dl.bintray.com/rabbitmq-erlang/debian focal erlang-22.x" | sudo tee /etc/apt/sources.list.d/rabbitmq.list
--- Ubuntu 18.04 --
echo "deb https://dl.bintray.com/rabbitmq-erlang/debian bionic erlang-22.x" | sudo tee /etc/apt/sources.list.d/rabbitmq.list

第2步:在Ubuntu 20.04 | 18.04 LTS 安装RabbitMQ Server

要安装RabbitMQ Server Ubuntu 18.04,请更新APT列表,然后安装 rabbitmq-server软件包:

sudo apt update
sudo apt install rabbitmq-server

点击y键以开始安装。

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  socat
The following NEW packages will be installed:
  rabbitmq-server soca
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.
Need to get 12.3 MB of archives.
After this operation, 15.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

安装后,启动RabbitMQ服务并启用以启动启动。
要检查状态,请运行:

$systemctl status  rabbitmq-server.service 
● rabbitmq-server.service - RabbitMQ broker
     Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2017-05-17 22:00:58 EAT; 6s ago
   Main PID: 18023 (beam.smp)
     Status: "Initialized"
      Tasks: 85 (limit: 2344)
     Memory: 74.6M
     CGroup: /system.slice/rabbitmq-server.service
             ├─18023 /usr/lib/erlang/erts-10.7.1/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs 512 -MHlmbcs 512 -MMmcs 30 -P 1048576 ->
             ├─18134 /usr/lib/erlang/erts-10.7.1/bin/epmd -daemon
             ├─18277 erl_child_setup 32768
             ├─18302 inet_gethost 4
             └─18303 inet_gethost 4
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Doc guides: https://rabbitmq.com/documentation.html
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Support:    https://rabbitmq.com/contact.html
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Tutorials:  https://rabbitmq.com/getstarted.html
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Monitoring: https://rabbitmq.com/monitoring.html
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Logs: /var/log/rabbitmq/Hyman@theitroad
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:         /var/log/rabbitmq/Hyman@theitroad_upgrade.log
Jan 17 22:00:57 ubuntu20 rabbitmq-server[18023]:   Config file(s): (none)
Jan 17 22:00:58 ubuntu20 rabbitmq-server[18023]:   Starting broker...systemd unit for activation check: "rabbitmq-server.service"
Jan 17 22:00:58 ubuntu20 systemd[1]: Started RabbitMQ broker.
Jan 17 22:00:58 ubuntu20 rabbitmq-server[18023]:  completed with 0 plugins.

我们可以确认服务是否配置为使用该命令启动启动:

$systemctl is-enabled rabbitmq-server.service 
<strong>enabled</strong>

如果禁用返回,请通过运行启用它:

sudo systemctl enable rabbitmq-server

第3步:启用RabbitMQ管理仪表板(可选)

我们可以选择启用RabbitMQ管理Web仪表板以便于管理。

sudo rabbitmq-plugins enable rabbitmq_management

Web服务应该在TCP端口侦听 15672

# ss -tunelp | grep 15672
tcp   LISTEN  0       128                    0.0.0.0:15672        0.0.0.0:*      users:(("beam.smp",pid=9525,fd=71)) uid:111 ino:39934 sk:9 <->

如果我们有一个Active UFW防火墙,请打开端口5672和15672:

sudo ufw allow proto tcp from any to any port 5672,15672

通过打开URL访问它 http://[server IP|Hostname]:15672

默认情况下,访客用户存在,只能从中连接 localhost
我们可以使用密码"guest"本地登录此用户

为了能够在网络上登录,创建如下所示的管理员用户:

rabbitmqctl add_user admin StrongPassword
rabbitmqctl set_user_tags admin administrator

使用此管理员用户名登录和分配的密码。

第4步:设置RabbitMQ群集(可选)

如果我们需要实现高可用性和更高的吞吐量,请考虑按照以下教程在Ubuntu 18.04服务器上配置RabbitMQ群集:

如何在Ubuntu 18.04 LTS上配置RabbitMQ群集

RabbitMQ用户管理命令

删除用户:

rabbitmqctl delete_user user

更改用户密码:

rabbitmqctl change_password user strongpassword

创建新的VirtualHost:

rabbitmqctl add_vhost /my_vhost

列表可用VirtualHosts:

rabbitmqctl list_vhosts

删除VirtualHost:

rabbitmqctl delete_vhost /myvhost

授予VHost的用户权限:

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

列出vhost权限:

rabbitmqctl list_permissions -p /myvhost

要列出用户权限:

rabbitmqctl list_user_permissions user

删除用户权限:

rabbitmqctl clear_permissions -p /myvhost user