通过软件包安装
下载rabbitmq安装包
Releases · rabbitmq/rabbitmq-server · GitHub
下载Erlang安装包
Releases · rabbitmq/erlang-rpm · GitHub
上传至服务器
安装命令
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_USER
、RABBITMQ_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版本,后面官网不知道会不会修复这个问题。