RabbitMQ Broker管理

1. RabbitMQ Plugins使用

RabbitMQ自带插件管理系统,可以使用工具[rabbitmq-plugins]进行管理和使用。
查看当前插件状态
[tRabbitMQ@iZ250x18mnzZ ~]$ rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status:   [failed to contact rabbit@iZ250x18mnzZ - status not shown]
 |/
[e ] amqp_client                       3.6.0
[  ] cowboy                            1.0.3
[  ] cowlib                            1.0.1
[e ] mochiweb                          2.13.0
[  ] rabbitmq_amqp1_0                  3.6.0
[  ] rabbitmq_auth_backend_ldap        3.6.0
[  ] rabbitmq_auth_mechanism_ssl       3.6.0
[  ] rabbitmq_consistent_hash_exchange 3.6.0
[  ] rabbitmq_event_exchange           3.6.0
[  ] rabbitmq_federation               3.6.0
[  ] rabbitmq_federation_management    3.6.0
[E ] rabbitmq_management               3.6.0
[e ] rabbitmq_management_agent         3.6.0
[  ] rabbitmq_management_visualiser    3.6.0
[  ] rabbitmq_mqtt                     3.6.0
[  ] rabbitmq_recent_history_exchange  1.2.1
[  ] rabbitmq_sharding                 0.1.0
[  ] rabbitmq_shovel                   3.6.0
[  ] rabbitmq_shovel_management        3.6.0
[  ] rabbitmq_stomp                    3.6.0
[  ] rabbitmq_tracing                  3.6.0
[e ] rabbitmq_web_dispatch             3.6.0
[  ] rabbitmq_web_stomp                3.6.0
[  ] rabbitmq_web_stomp_examples       3.6.0
[  ] sockjs                            0.3.4
[e ] webmachine                        git

启用插件

[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@iZ250x18mnzZ... started 6 plugins.

停用插件

[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmq-plugins disable rabbitmq_management
The following plugins have been disabled:
  mochiweb
  webmachine
  rabbitmq_web_dispatch
  amqp_client
  rabbitmq_management_agent
  rabbitmq_management

Applying plugin configuration to rabbit@iZ250x18mnzZ... stopped 6 plugins.
具体的命令使用参考官网资料: https://www.rabbitmq.com/man/rabbitmq-plugins.1.man.html
除系统安装自带的插件,RabbtiMQ还提供了一些其他插件可下载使用:https://www.rabbitmq.com/community-plugins.html
不再对其他的插件相关内容做分析,大家有兴趣的可以点击以下链接到官网学习

2. Management Plugin

管理插件在安装RabbtiMQ时就已经同步安装,只需使用上面的启动命令启动插件即可。
管理插件提供了一套对RabbitMQ服务的管理及监控的HTTP API,以及基于浏览器服的用户界面、命令行工具以及rabbitmqadmin(工具)。
主要有以下功能:
1、 声明、查询、删除交换机、队列、bindings、用户、虚拟机以及权限
2、 监控队列、通道、数据连接等信息
3、 发送和接收消息
4、 监控Erlang进程、内存使用、文件描述符
5、 导入或导出json对象
6、 强制关闭连接,清理队列
按照上述方式启动之后。
1、web访问地址:http://server-name:15672/   端口可自定义配置
2、http api访问地址:http://server-name:15672/api/  也可以参考官网:https://raw.githack.com/rabbitmq/rabbitmq-management/rabbitmq_v3_6_1/priv/www/api/index.html
3、下载工具rabbitmqadmin:http://server-name:15672/cli/ 关于客户端使用方法:https://www.rabbitmq.com/management-cli.html
其他相关使用方法,参考官网:https://www.rabbitmq.com/management.html
安装RabbitMQ自带的用户guest,只能在本地使用,所以公网中用户guest无法登录management提供的插件,下面是新建用户并增加。

3. 用户及权限管理

3.1.用户管理

创建用户
[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmqctl add_user rabbitmq rabbitmq
Creating user "rabbitmq" ...
删除用户
[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmqctl delete_user rabbitmq
Deleting user "rabbitmq" ...
查看用户
[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmqctl list_users
Listing users ...
rabbitmq        []
guest   [administrator]
修改用户密码
[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmqctl change_password rabbitmq rabbitmq
Changing password for user "rabbitmq" ...
[tRabbitMQ@iZ250x18mnzZ ~]$ 

命令参考资料:http://www.rabbitmq.com/man/rabbitmqctl.1.man.html

3.2. 用户角色管理

创建用户之后,还需要给用户添加权限,在插件management中基于RabbitMQ权限模型进行了封装与扩展,对用户指定类似标签的方式决定用户的权限,提供以下几类标签:
 
标签功能
(None) No access to the management plugin
management Anything the user could do via AMQP plus:
  • List virtual hosts to which they can log in via AMQP
  • View all queues, exchanges and bindings in "their" virtual hosts
  • View and close their own channels and connections
  • View "global" statistics covering all their virtual hosts, including activity by other users within them
policymaker Everything "management" can plus:
  • View, create and delete policies and parameters for virtual hosts to which they can log in via AMQP
monitoring Everything "management" can plus:
  • List all virtual hosts, including ones they could not log in to via AMQP
  • View other users's connections and channels
  • View node-level data such as memory use and clustering
  • View truly global statistics for all virtual hosts
administrator Everything "policymaker" and "monitoring" can plus:
  • Create and delete virtual hosts
  • View, create and delete users
  • View, create and delete permissions
  • Close other users's connections
给用户设置标签
[tRabbitMQ@iZ250x18mnzZ ~]$ sudo rabbitmqctl set_user_tags rabbitmq administrator
Setting tags for user "rabbitmq" to [administrator] ...
[tRabbitMQ@iZ250x18mnzZ ~]$ 
也可以给用户设置多个角色,除上述系统内置角色外,还可以自定义角色,具体可参考官网给出的命令
管理工具角色参考官网:http://www.rabbitmq.com/management.html

3.3. 权限管理

权限大致分为两个级别:
1. 访问权限
决定是否可以连接上相应的服务
2. 操作权限
操作权限又分为两类,配置权限和读写权限,只要针对资源(queue、exchange)
配置权限影响资源的创建和删除。
读写权限影响消息的读取和写入,例如发送消息要有可写权限,接收消息要有可读权限。
 
具体说明可见官网资料,而给用户设置相应的权限,使用rabbitmqctl执行即可,下面也有提供具体的手机用方法。
RabbitMQ权限模型说明参考资料:http://www.rabbitmq.com/access-control.html
 
按照前两步的方法,创建用户,给用户设置用户角色,我就可以登录到web
posted @ 2021-02-25 14:23  YoungDeng  阅读(563)  评论(0编辑  收藏  举报