CentOS7.5 RabbitMQ安装
1、下载
或直接用命令下载
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.13-1.el7.noarch.rpm
2、安装
rpm -ivh rabbitmq-server-3.6.13-1.el7.noarch.rpm
报错:
缺少erlang和socat依赖,解决:
yum install erlang
yum install socat
然后顺利安装完成。
3、管理
1.用户管理
1.新增用户
rabbitmqctl add_user {username} {password}
2.删除用户
rabbitmqctl delete_user {username}
3.修改密码
rabbitmqctl change_password {username} {newpassword}
4.查看用户列表
rabbitmqctl list_users
2.角色管理
- 语法:rabbitmqctl set_user_tags {username} {tag}
1.超级管理员
超级管理员(administrator):可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
rabbitmqctl set_user_tags admin administrator
2. 监控者
监控者(monitoring):可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等) 。
rabbitmqctl set_user_tags admin monitoring
3.策略制定者
策略制定者(policymaker) :可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。
rabbitmqctl set_user_tags admin policymaker
4.普通管理者
普通管理者(management) :仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
rabbitmqctl set_user_tags admin management
5.其他
无法登陆管理控制台,通常就是普通的生产者和消费者。
rabbitmqctl set_user_tags admin haha
设置多个角色:
rabbitmqctl set_user_tags admin administrator monitoring policymaker management
3.权限管理
1.设置用户权限
rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
conf:一个正则表达式match哪些配置资源能够被该用户访问。
write:一个正则表达式match哪些配置资源能够被该用户读。
read:一个正则表达式match哪些配置资源能够被该用户访问。
2.查看(指定vhost)所有用户的权限信息
rabbitmqctl list_permissions [-p vhostPath]
3.查看指定用户的权限信息
rabbitmqctl list_user_permissions {username}
4.清除用户的权限信息
rabbitmqctl clear_permissions [-p vhostPath] {username}
举例:
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
4.服务器启动和关闭
1.启动
rabbitmq-server start -detached
或
systemctl start rabbitmq-server
2.关闭
rabbitmqctl stop
或
systemctl stop rabbitmq-server
若单机有多个实例,则在rabbitmqctl h后加–n 指定名称
3.服务器状态
rabbitmqctl status
4.服务器环境
rabbitmqctl environment
5.插件管理
1.开启插件
rabbitmq-plugins enable {pluginname}
2.关闭插件
rabbitmq-plugins disable {pluginname}
注意:重启后生效。
6.virtual_host管理
1.新增
rabbitmqctl add_vhost {name}
2.删除
rabbitmqctl delete_vhost {name}
7.其他
1.队列信息
rabbitmqctl list_queues [-p vhostpath] [queueinfoitem …]
queueinfoitem可选: name, durable, auto_delete, arguments, messages_ready, messages_unacknowled, messages, consumers, memory等。
2.Exchange信息
rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem …]
exchangeinfoitem可选:name, type, durable, auto_delete, internal, arguments等。
3.Binding信息
rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem …]
bindinginfoitem可选:source_name, source_kind, destination_name, destination_kind, routing_key, arguments等 。
4.connection信息
rabbitmqctl list_connections [connectioninfoitem …]
connectioninfoitem可选:recv_oct,recv_cnt,send_oct,send_cnt,send_pend等。
5.channel信息
rabbitmqctl list_channels [channelinfoitem …]
channelinfoitem可选:consumer_count,messages_unacknowledged,messages_uncommitted,acks_uncommitted,messages_unconfirmed,prefetch_count,client_flow_blocked等。
4、远程连接管理界面
- 开启管理界面
rabbitmq-plugins enable rabbitmq_management
- 添加防火墙端口
-A INPUT -p tcp -m state --state NEW -m tcp --dport 5672 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 15672 -j ACCEPT
- 启动rabbitmq
systemctl start rabbitmq-server
访问http://服务器ip:15672,默认用户名和密码 guest
默认情况下,guest账户只能通过localhost登录。guest账户登录问题解决如下:
# 查找rabbit.app文件
find / -name rabbit.app
/usr/lib/rabbitmq/lib/rabbitmq_server-3.6.13/ebin/rabbit.app
# 编辑rabbit.app文件
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.13/ebin/rabbit.app
# 找到 {loopback_users, [<<"guest">>]} 改为
{loopback_users, []}
登录成功