服务介绍
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
服务安装
RPM包安装方式
mq版本:3.8.16,Elang:23.2.7
RabbitMQ官网: https://www.rabbitmq.com
安装elang
yum localinstall -y erlang-23.2.7-1.el7.x86_64.rpm
查看Elang版本
erl -v
安装rabbitmq
yum localinstall -y rabbitmq-server-3.8.16-1.el7.noarch.rpm
查看RabbitMQ版本
rabbitmqctl status|grep RabbitMQ
配置文件位置 : /etc/rabbitmq(默认安装没有配置文件如有需要需自行创建)
rabbitmq.conf 主配置文件
enabled_plugins 加载模块配置文件
rabbitmq-env.conf 环境变量配置文件
编写主配置文件
Vim /etc/rabbitmq/rabbitmq.conf
#禁止来宾访问
loopback_users.guest = false
#监听端口
listeners.tcp.default = 5672
#默认用户名和密码
default_pass = admin
default_user = admin
#WEB管理端端口
management.tcp.port = 15672
management.tcp.ip = 0.0.0.0
#WEB默认访问路径(建议不配置)
management.path_prefix=mq
#日志级别控制(info/debug/warning/error)默认info
log.file.level=info
安装优化
设置服务开机自启动
systemctl enable rabbitmq-server
修改日志和数据存储位置
默认数据存储位置: /var/lib/rabbitmq
默认日志存储位置: /var/log/rabbitmq
vim /etc/rabbitmq/rabbitmq-env.conf
#添加如下两行内容
RABBITMQ_MNESIA_BASE=/data/rabbitmq/data
RABBITMQ_LOG_BASE=/data/rabbitmq/logs
#设置节点名称
RABBITMQ_NODENAME=rabbit@node1
重启服务加载配置
重启如果报错提示权限问题需给数据目录授权
chown -R rabbitmq:rabbitmq /data/rabbitmq
systemctl restart rabbitmq-server
开启WEB管理端(配置文件默认会加载如果不生效再执行)
rabbitmq-plugins enable rabbitmq_management
#添加管理用户并授权
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
加载业务所需模块
rabbitmq-plugins enable rabbitmq_random_exchange rabbitmq_recent_history_exchange rabbitmq_recent_history_exchange rabbitmq_sharding rabbitmq_shovel rabbitmq_shovel_management rabbitmq_top rabbitmq_tracing rabbitmq_trust_store rabbitmq_web_mqtt rabbitmq_web_mqtt_examples rabbitmq_web_stomp rabbitmq_web_stomp_examples rabbitmq_prometheus rabbitmq_jms_topic_exchange rabbitmq_consistent_hash_exchange rabbitmq_event_exchange
查看模块列表
rabbitmq-plugins list
修改默认端口
修改MQ默认端口(5672)
vim /etc/rabbitmq.conf
#默认端口5672,允许远程访问
listeners.tcp.default = 5673
修改默认管理端口(15672)
vim /etc/rabbitmq.conf
#web管理,默认15672
management.tcp.port = 15673
修改Elang服务端口(25672)
vim /etc/rabbitmq-env.conf
#Erlang分发服务器端口,默认25672
DIST_PORT=25673
修改EPMD端口(4369)
vim /etc/rabbitmq-env.conf
#EPMD端口,默认4369
export ERL_EPMD_PORT=4368
Rabbitmq接入prometheus
从3.8.0开始,RabbitMQ提供内置的Prometheus和Grafana支持。
rabbitmq_prometheus插件中提供了对Prometheus指标收集的支持。该插件以Prometheus文本格式在专用的TCP端口(默认端口15692)上公开所有RabbitMQ指标。
rabbitmq_prometheus插件是RabbitMQ指标的核心导出器,由RabbitMQ核心团队开发。这是一个干净的设计,用于替换kbudde/rabbitmq_exporter,kbudde/rabbitmq_exporter由Prometheus开发用于RabbitMQ指标收集。
开启rabbitmq_prometheus插件
rabbitmq-plugins enable rabbitmq_prometheus
查看监控端口
netstat -anptl | grep 15692
查看是否输出监控数据
curl http://127.0.0.1:15692/metrics
输出如下指标则正常
编辑prometheus配置文件添加如下内容
vim prometheus.yml
- job_name: 'RabbitMQ'
scrape_interval: 5s
metrics_path: '/metrics'
static_configs:
- targets: [''MQ地址':15692']
重载prometheus配置
curl -X POST "prometheusIP":9090/-/reload
查看是否接入成功(http:“prometheusIP”:9090/targets)
指标显示正常则接入成功
或者prometheus搜索MQ任意指标
导入grafana监控视图
11362
常用命令
服务状态控制
启动rabbitmq
systemctl start rabbitmq-server
停止rabbitmq
systemctl stop rabbitmq-server
重启rabbitmq
systemctl restart rabbitmq-server
查看rabbitmq服务状态
systemctl status rabbitmq-server
设置rabbitmq服务开机自启动
systemctl enable rabbitmq-server
插件控制
加载RabbitMQ-Web管理界面插件
rabbitmq-plugins enable rabbitmq_management
加载rabbitmq所需插件
rabbitmq-plugins enable rabbitmq_random_exchange rabbitmq_recent_history_exchange rabbitmq_recent_history_exchange rabbitmq_sharding rabbitmq_shovel rabbitmq_shovel_management rabbitmq_top rabbitmq_tracing rabbitmq_trust_store rabbitmq_web_mqtt rabbitmq_web_mqtt_examples rabbitmq_web_stomp rabbitmq_web_stomp_examples rabbitmq_prometheus rabbitmq_jms_topic_exchange rabbitmq_consistent_hash_exchange rabbitmq_event_exchange
查看rabbitmq插件列表
rabbitmq-plugins list
查看状态版本
查看rabbitmq版本
rabbitmqctl status|grep RabbitMQ
查看rabbitmq状态
rabbitmqctl status
用户管理
添加用户
rabbitmqctl add_user 用户名 密码
查看用户清单
rabbitmqctl list_users
修改密码
rabbitmqctl change_ password 用户名 新密码
删除用户
rabbitmqctl delete_user 用户名
用户授权
设置用户角色,分配操作权限
rabbitmqctl set_user_tags 用户名 角色
角色权限
administrator:可以登录控制台、查看所有信息、并对rabbitmq进行管理
monToring:监控者;登录控制台,查看所有信息
policymaker:策略制定者;登录控制台指定策略
managment:普通管理员;登录控制
给用户授权admin
rabbitmqctl set_user_tags 用户 administrator
为用户添加资源权限(授予访问虚拟机根节点的所有权限)
rabbitmqctl set_permissions -p / 用户名 ".*" ".*" ".*"
vhos操作
添加Vhost
rabbitmqctl add_vhost 名称
删除vhost
rabbitmqctl delete_vhost 名称
查看vhost列表
rabbitmqctl list_vhosts