RabbitMQ安装

发布时间 2024-01-08 18:55:57作者: 雨中遐想

通过软件包安装

下载rabbitmq安装包

Releases · rabbitmq/rabbitmq-server · GitHub

下载Erlang安装包

Releases · rabbitmq/erlang-rpm · GitHub

rabbitmq和erlang对应关系

上传至服务器

安装命令

rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
yum install socat logrotate -y
rpm -ivh rabbitmq-server-3.9.13-1.el7.noarch.rpm

安装web管理界面

rabbitmq-plugins enable rabbitmq_management

启动、停止MQ

service status rabbit-server
service start rabbit-server
service stop rabbit-server

通过Docker安装

确保系统已经docker

目录及配置文件准备

准备目录

# rabbitmq文件配置目录
mkdir -p /data/rabbitmq/conf
# 持久化文件存放目录
mkdir -p /data/rabbitmq/data

准备enabled_plugins配置文件

新建enabled_plugins文件,配置需要启动的插件,放在/data/rabbitmq/conf目录下

# 进入目录下
cd /data/rabbitmq/conf
# 创建enabled_plugins文件
touch enabled_plugins

enabled_plugins文件内容

rabbitmq_prometheus,原始镜像里默认开启了,我修改为了如下内容,添加了开启管理界面插件

[abbitmq_management,rabbitmq_prometheus].

拉取镜像

docker pull rabbitmq

开通防火墙

# 开通5672端口(AMQP)
sudo firewall-cmd --add-port=5672/tcp --permanent
sudo firewall-cmd --add-port=15672/tcp --permanent
sudo firewall-cmd --reload

编写run脚本

通过脚本创建并启动docker容器

docker run -d \
--name=rabbitmq \
--hostname=Rabbit \
--restart=always \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=123456 \
-p 5672:5672 \
-p 15672:15672 \
-v /data/rabbitmq/conf/enabled_plugins:/etc/rabbitmq/enabled_plugins \
rabbitmq:latest

-d :后台方式启动

--name: 指定容器名称

--hostname: 指定容器主机名称

--restart: 设置开机自启

-i:以交互模式运行容器,通常与 -t 同时使用;

-t:为容器重新分配一个伪输入终端,通常与 -i 同时使用;

-p: 指定端口映射

RABBITMQ_DEFAULT_USERRABBITMQ_DEFAULT_PASS登录rabbitmq管理界面的用户名和密码

5672: RabbitMQ 默认端口

15672: RabbitMQ 管理插件的 Web 界面端口

常用命令

# 查看容器状态
docker ps -a
# 停止容器
docker stop rabbitmq
# 启动容器
docker start rabbitmq
# 重启容器,相当于停止后再启动
docker restart rabbitmq
# 删除容器,请先停止后再删除。删除后需要再次通过run脚本进行创建启动。
docker rm rabbitmq

验证rabbit正常

访问rabbit管理页面:http://192.168.234.121:15672/ ,用户名是run脚本设置的admin,密码是123456。如果脚本没有设置用户名和密码,默认用户名和密码都是guest

如果有问题,可以通过docker logs rabbitmq命令查看是否有日志报错。

容器内部操作

rabbit默认的配置

# 容器内部
cat /etc/rabbitmq/enabled_plugins
[rabbitmq_prometheus].

查看已经启动的插件

rabbitmq-plugins list
root@Rabbit:/etc/rabbitmq# rabbitmq-plugins list
Listing plugins with pattern ".*" ...
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status: * = running on rabbit@Rabbit
 |/
[  ] rabbitmq_amqp1_0                  3.12.12
[  ] rabbitmq_auth_backend_cache       3.12.12
[  ] rabbitmq_auth_backend_http        3.12.12
[  ] rabbitmq_auth_backend_ldap        3.12.12
[  ] rabbitmq_auth_backend_oauth2      3.12.12
[  ] rabbitmq_auth_mechanism_ssl       3.12.12
[  ] rabbitmq_consistent_hash_exchange 3.12.12
[  ] rabbitmq_event_exchange           3.12.12
[  ] rabbitmq_federation               3.12.12
[  ] rabbitmq_federation_management    3.12.12
[  ] rabbitmq_jms_topic_exchange       3.12.12
[  ] rabbitmq_management               3.12.12
[e*] rabbitmq_management_agent         3.12.12
[  ] rabbitmq_mqtt                     3.12.12
[  ] rabbitmq_peer_discovery_aws       3.12.12
[  ] rabbitmq_peer_discovery_common    3.12.12
[  ] rabbitmq_peer_discovery_consul    3.12.12
[  ] rabbitmq_peer_discovery_etcd      3.12.12
[  ] rabbitmq_peer_discovery_k8s       3.12.12
[E*] rabbitmq_prometheus               3.12.12
[  ] rabbitmq_random_exchange          3.12.12
[  ] rabbitmq_recent_history_exchange  3.12.12
[  ] rabbitmq_sharding                 3.12.12
[  ] rabbitmq_shovel                   3.12.12
[  ] rabbitmq_shovel_management        3.12.12
[  ] rabbitmq_stomp                    3.12.12
[  ] rabbitmq_stream                   3.12.12
[  ] rabbitmq_stream_management        3.12.12
[  ] rabbitmq_top                      3.12.12
[  ] rabbitmq_tracing                  3.12.12
[  ] rabbitmq_trust_store              3.12.12
[e*] rabbitmq_web_dispatch             3.12.12
[  ] rabbitmq_web_mqtt                 3.12.12
[  ] rabbitmq_web_mqtt_examples        3.12.12
[  ] rabbitmq_web_stomp                3.12.12
[  ] rabbitmq_web_stomp_examples       3.12.12

管理界面Connections点击报错

如果在RabbitMQ的管理页面点击Connections页面出现了Stats in management UI are disabled on this node提示。需要做如下配置

修改management_agent.disable_metrics_collector = false

# 进入容器内部
docker exec -it rabbitmq /bin/bash

# 进入配置文件所在目录
cd /etc/rabbitmq/conf.d/

# 修改配置文件
echo management_agent.disable_metrics_collector = false > 20-management_agent.disable_metrics_collector.conf

# 退出后重启容器
exit
docker rastart rabbmitmq

我现在测试的时候使用的是3.12.12版本,后面官网不知道会不会修复这个问题。