• RabbitMQ用户管理


    目录

    一、RabbitMQ的角色

    二、通过命令行管理用户

    1、查询用户

    2、创建用户

    3、修改密码

    4、删除用户

    三、图形界面管理用户

    四、问题处理


     

    上一篇章介绍如何安装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

    正常情况下会显示当前已创建的用户和该用户的角色信息: 

    1. Listing users ...
    2. user tags
    3. guest [administrator]

    2、创建用户

    目前系统中有一个guest账户并且是administrator角色。我们通过rabbitmqctl.bat add_user username password命令添加一个用户

    1. rabbitmqctl.bat add_user zhangsan 123
    2. Adding user "zhangsan" ...
    3. Done. Don't forget to grant the user permissions to some virtual hosts! See 'rab
    4. bitmqctl help set_permissions' to learn more.

    成功创建zhangsan用户,并且RabbitMQ给出的贴心提示信息,不要忘了授权,接下来给张三授权administrator :

    1. rabbitmqctl.bat set_user_tags zhangsan administrator
    2. Setting tags for user "zhangsan" to [administrator] ...

    设置成功并再次执行rabbitmqctl.bat list_users查看用户信息:

    1. rabbitmqctl.bat list_users
    2. Listing users ...
    3. user tags
    4. guest [administrator]
    5. zhangsan [administrator]

    当然,除了上面的administrator 还有 monitoring、policymaker、management等等,也可以给一个用户指定多个角色,rabbitmqctl.bat set_user_tags username tag1 tag2 ...

    3、修改密码

    修改密码通过rabbitmqctl change_password userName newPassword:

    1. rabbitmqctl change_password zhangsan 456
    2. Changing password for user "zhangsan" ...

    4、删除用户

    删除用户通过rabbitmqctl.bat delete_user username:

    1. rabbitmqctl.bat delete_user zhangsan
    2. Deleting user "zhangsan" ...

    再次执行查看用户命令:

    1. rabbitmqctl.bat list_users
    2. Listing users ...
    3. user tags
    4. guest [administrator]

    可以看到新建的zhangsan用户已经没有了。

    三、图形界面管理用户

    我们使用guest账号本地登录http://localhost:15672,然后点击Admin标签。通过Admin标签可以管理用户名密码,添加自己的管理员账户。

    页面下方的Add a user 可以添加用户。点击用户列表中的Name,可以修改用户的信息。

    四、问题处理

    在执行rabbitmqctl.bat list_users命令时,出现了一下问题:

    1. Error: unable to perform an operation on node 'rabbit@iZq1xjfetkzsflZ'. Please s
    2. ee diagnostics information and suggestions below.
    3. Most common reasons for this are:
    4. * Target node is unreachable (e.g. due to hostname resolution, TCP connection o
    5. r firewall issues)
    6. * CLI tool fails to authenticate with the server (e.g. due to CLI tool's Erlang
    7. cookie not matching that of the server)
    8. * Target node is not running
    9. In addition to the diagnostics info below:
    10. * See the CLI, clustering and networking guides on https://rabbitmq.com/documen
    11. tation.html to learn more
    12. * Consult server logs on node rabbit@iZq1xjfetkzsflZ
    13. * If target node is configured to use long node names, don't forget to use --lo
    14. ngnames with CLI tools
    15. DIAGNOSTICS
    16. ===========
    17. attempted to contact: [rabbit@iZq1xjfetkzsflZ]
    18. rabbit@iZq1xjfetkzsflZ:
    19. * connected to epmd (port 4369) on iZq1xjfetkzsflZ
    20. * epmd reports node 'rabbit' uses port 25672 for inter-node and CLI tool traff
    21. ic
    22. * TCP connection succeeded but Erlang distribution failed
    23. * suggestion: check if the Erlang cookie is identical for all server nodes and
    24. CLI tools
    25. * suggestion: check if all server nodes and CLI tools use consistent hostnames
    26. when addressing each other
    27. * suggestion: check if inter-node connections may be configured to use TLS. If
    28. so, all nodes and CLI tools must do that
    29. * suggestion: see the CLI, clustering and networking guides on https://rabbit
    30. mq.com/documentation.html to learn more
    31. Current node details:
    32. * node name: 'rabbitmqcli-647-rabbit@iZq1xjfetkzsflZ'
    33. * effective user's home directory: c:/Users/Administrator
    34. * Erlang cookie hash: sLFfFVWlPbDnWtQQPa5KUg==

    解决方案是将C:\Windows\system32\config\systemprofile中的.erlang.cookie文件,复制一份到错误提示中的地址,地址在上面错误信息的倒数第二行effective user's home directory,我这里是“ c:/Users/Administrator”,该路径下已经有了一个同名文件,覆盖就好了。

  • 相关阅读:
    C++(CMake)视觉OpenCV-Raspberry Pi图像处理-3D图像重建-面部界标检测-卷积神经网络车牌自动识别-深度神经网络面部检测和识别
    Qt加Opencv实现 梯度矫正 功能
    CMM—软件企业走向世界的通行证
    主流开发环境都有哪些?主流开发语言都有什么?
    亚马逊美国站灯具UL认证灯串UL588认证办理
    IIC协议及其工程【FPGA】
    Windows C++ 启动子进程并绑定子进程,主进程结束关闭后自动结束关闭子进程
    Ubuntu本地安装MySQL8.0以及常见问题设置方法
    C++中的cout.setf(ios::fixed)是什么意思?
    小满Vue3第三十六章(Vue如何开发移动端)
  • 原文地址:https://blog.csdn.net/caicaimaomao/article/details/126091145