上一篇章介绍如何安装RabbitMQ并设置为windows的服务,有兴趣的可以点击此处查看,安装好的RabbitMQ提供了一个默认的guest账户,单独这一个账户是无法满足日常的管理需求,所以用户管理就显得非常有必要了。
一、RabbitMQ的角色
管理RabbitMQ之前,需要先了解一下它的角色:
RabbitMQ用户角色分为Administrator、Monitoring、Policymaker、Management、Impersonator、None共六种角色。
(1) Administrator
超级管理员,可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
(2)Monitoring
监控者,可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)。
(3)Policymaker
策略制定者,可登陆管理控制台(启用management plugin的情况下),同时可以对policy进行管理。但无法查看节点的相关信息。
(4)Management
普通管理者,仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
(5)Impersonator
模拟者,无法登录管理控制台。
(6)None
其他用户,无法登陆管理控制台,通常就是普通的生产者和消费者。
二、通过命令行管理用户
1、查询用户
进入RabbitMQ安装目录的sbin目录下,打开DOS窗口,输入以下命令查看当前的用户信息:
rabbitmqctl.bat list_users
正常情况下会显示当前已创建的用户和该用户的角色信息:
Listing users ...
user tags
guest [administrator]
2、创建用户
目前系统中有一个guest账户并且是administrator角色。我们通过rabbitmqctl.bat add_user username password命令添加一个用户
rabbitmqctl.bat add_user zhangsan 123
Adding user "zhangsan" ...
Done. Don't forget to grant the user permissions to some virtual hosts! See 'rab
bitmqctl help set_permissions' to learn more.
成功创建zhangsan用户,并且RabbitMQ给出的贴心提示信息,不要忘了授权,接下来给张三授权administrator :
rabbitmqctl.bat set_user_tags zhangsan administrator
Setting tags for user "zhangsan" to [administrator] ...
设置成功并再次执行rabbitmqctl.bat list_users查看用户信息:
rabbitmqctl.bat list_users
Listing users ...
user tags
guest [administrator]
zhangsan [administrator]
当然,除了上面的administrator 还有 monitoring、policymaker、management等等,也可以给一个用户指定多个角色,rabbitmqctl.bat set_user_tags username tag1 tag2 ...
3、修改密码
修改密码通过rabbitmqctl change_password userName newPassword:
rabbitmqctl change_password zhangsan 456
Changing password for user "zhangsan" ...
4、删除用户
删除用户通过rabbitmqctl.bat delete_user username:
rabbitmqctl.bat delete_user zhangsan
Deleting user "zhangsan" ...
再次执行查看用户命令:
rabbitmqctl.bat list_users
Listing users ...
user tags
guest [administrator]
可以看到新建的zhangsan用户已经没有了。
三、图形界面管理用户
我们使用guest账号本地登录http://localhost:15672,然后点击Admin标签。通过Admin标签可以管理用户名密码,添加自己的管理员账户。
页面下方的Add a user 可以添加用户。点击用户列表中的Name,可以修改用户的信息。
四、问题处理
在执行rabbitmqctl.bat list_users命令时,出现了一下问题:
Error: unable to perform an operation on node 'rabbit@iZq1xjfetkzsflZ'. Please s
ee diagnostics information and suggestions below.
Most common reasons for this are:
* Target node is unreachable (e.g. due to hostname resolution, TCP connection o
r firewall issues)
* CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang
cookie not matching that of the server)
* Target node is not running
In addition to the diagnostics info below:
* See the CLI, clustering and networking guides on https://rabbitmq.com/documen
tation.html to learn more
* Consult server logs on node rabbit@iZq1xjfetkzsflZ
* If target node is configured to use long node names, don't forget to use --lo
ngnames with CLI tools
DIAGNOSTICS
===========
attempted to contact: [rabbit@iZq1xjfetkzsflZ]
rabbit@iZq1xjfetkzsflZ:
* connected to epmd (port 4369) on iZq1xjfetkzsflZ
* epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traff
ic
* TCP connection succeeded but Erlang distribution failed
* suggestion: check if the Erlang cookie is identical for all server nodes and
CLI tools
* suggestion: check if all server nodes and CLI tools use consistent hostnames
when addressing each other
* suggestion: check if inter-node connections may be configured to use TLS. If
so, all nodes and CLI tools must do that
* suggestion: see the CLI, clustering and networking guides on https://rabbit
mq.com/documentation.html to learn more
Current node details:
* node name: 'rabbitmqcli-647-rabbit@iZq1xjfetkzsflZ'
* effective user's home directory: c:/Users/Administrator
* Erlang cookie hash: sLFfFVWlPbDnWtQQPa5KUg==
解决方案是将C:\Windows\system32\config\systemprofile中的.erlang.cookie文件,复制一份到错误提示中的地址,地址在上面错误信息的倒数第二行effective user's home directory,我这里是“ c:/Users/Administrator”,该路径下已经有了一个同名文件,覆盖就好了。
版权归原作者 Apple_羊先森 所有, 如有侵权,请联系我们删除。