Linux普通用户安装RabbitMQ

注意:erlang-24.x已经不支持 CentOS7

rpm 安装

安装 RabbitMQ需要安装Erlang

Erlanghttps://github.com/rabbitmq/erlang-rpm/releases
RabbitMQhttps://github.com/rabbitmq/rabbitmq-server/releases

RabbitMQErlang版本对应关系 https://www.rabbitmq.com/which-erlang.html

我这里下载了

root 授权

1
sudo echo 'rabbitmq ALL=(ALL) NOPASSWD:rpm' >> /etc/sudoers

开放防火墙

1
2
firewall-cmd --zone=public --add-port=45672/tcp --add-port=45673/tcp  --permanent
firewall-cmd --reload

普通用户安装erlang

1
2
3
4
5
6
7
8
sudo rpm -ivh openssl-libs-1.0.2k-25.el7_9.x86_64.rpm --force
# 安装环境
sudo rpm -ivh erlang-23.3.4.11-1.el7.x86_64.rpm
# 验证erlang 是否安装成功
erl -version
# 安装 RabbitMQ
tar -xf rabbitmq-server-generic-unix-3.9.21.tar.xz
mv rabbitmq_server-3.9.21 rabbitmq-server

配置启动

安装web管理界面

1
2
3
~/rabbitmq-server/sbin/rabbitmq-plugins enable rabbitmq_management
# 查看所有的插件
~/rabbitmq-server/sbin/rabbitmq-plugins list

配置

1
2
3
cp rabbitmq.conf.example ~/rabbitmq-server/etc/rabbitmq/rabbitmq.conf
sed -i 's?# listeners.tcp.default = 5672?listeners.tcp.default = 45672?' ~/rabbitmq-server/etc/rabbitmq/rabbitmq.conf
sed -i 's?# management.tcp.port = 15672?management.tcp.port = 45673?' ~/rabbitmq-server/etc/rabbitmq/rabbitmq.conf

启动

1
2
3
4
# 后台启动
~/rabbitmq-server/sbin/rabbitmq-server -detached
# 停机
~/rabbitmq-server/sbin/rabbitmqctl shutdown

参考

其它管理

用户管理

1
2
3
4
5
6
7
8
9
10
11
12
# 修改guest的密码
~/rabbitmq-server/sbin/rabbitmqctl list_users
~/rabbitmq-server/sbin/rabbitmqctl change_password guest guest

# 创建其他管理员账号比如test/test:
~/rabbitmq-server/sbin/rabbitmqctl add_user maxzhao maxzhao
#
~/rabbitmq-server/sbin/rabbitmqctl set_user_tags maxzhao administrator
# /是 vhost的目录 Configure regexp Write regexp Read regexp
~/rabbitmq-server/sbin/rabbitmqctl set_permissions -p / maxzhao ".*" ".*" ".*"
# Sets user topic permissions for an exchange,默认使用 AMQP default 的exchange
# sudo rabbitmqctl set_topic_permissions

添加vhost

1
2
3
4
5
6
7
8
9
10
11
# 查看帮助
~/rabbitmq-server/sbin/rabbitmqctl --help
# 查看创建 vhost 的帮助
~/rabbitmq-server/sbin/rabbitmqctl add_vhost --help
# 创建
~/rabbitmq-server/sbin/rabbitmqctl add_vhost maxzhao_vhost
# 查看
~/rabbitmq-server/sbin/rabbitmqctl list_vhosts
# 赋权 注意 /maxzhao_vhost 与 maxzhao_vhost 不一样
~/rabbitmq-server/sbin/rabbitmqctl set_permissions -p /maxzhao_vhost maxzhao ".*" ".*" ".*"

删除 vhost

1
2
~/rabbitmq-server/sbin/rabbitmqctl add_vhost maxzhaoTest
~/rabbitmq-server/sbin/rabbitmqctl delete_vhost maxzhaoTest

日志目录

1
~/rabbitmq-server/var/log/rabbitmq

错误:address (cannot connect to host/port)

1
echo 'NODENAME=rabbitmq@192.168.14.103' >> ~/rabbitmq-server/etc/rabbitmq/rabbitmq-env.conf

主要配置

~/rabbitmq-server/etc/rabbitmq/rabbitmq.conf

1
2
listeners.tcp.default = 45672
management.tcp.port = 45673

~/rabbitmq-server/etc/rabbitmq/rabbitmq-env.conf

1
NODENAME=rabbitmq@localhost

用户 tags 一般授权 monitoring

用户角色tags可分为五类:

先启用:management plugin

  • 超级管理员(administrator) 管理all。
  • 监控者(monitoring) 查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
  • 策略制定者(policymaker) 对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。
  • 普通管理者(management) 仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。
  • none 无法登陆管理控制台,生产者和消费者。

本文地址: https://github.com/maxzhao-it/blog/post/21590923/