zoukankan      html  css  js  c++  java
  • CentOS7安装RabbitMQ

    1. 安装步骤

    # rpm --import https://packagecloud.io/rabbitmq/rabbitmq-server/gpgkey
    # rpm --import https://github.com/rabbitmq/signing-keys/releases/download/2.0/rabbitmq-release-signing-key.asc
    
    # vim /etc/yum.repos.d/rabbitmq.repo
    [bintray-rabbitmq-server]
    name=bintray-rabbitmq-rpm
    baseurl=https://dl.bintray.com/rabbitmq/rpm/rabbitmq-server/v3.7.x/el/7/
    gpgcheck=0
    repo_gpgcheck=0
    enabled=1
    
    # wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server-3.7.17-1.el7.noarch.rpm
    # yum install rabbitmq-server-3.7.17-1.el7.noarch.rpm 
    
    注意:rabbitmq-server对erlang版本有要求,可以先安装rabbitmq,若无法安装,可以查看提示中要求的erlang版本信息进行下载,然后先安装erlang,再安装rabbitmq
    
    下载erlang地址:https://www.erlang-solutions.com/resources/download.html
    # wget https://packages.erlang-solutions.com/erlang/rpm/centos/7/x86_64/esl-erlang_22.0.7-1~centos~7_amd64.rpm
    # yum install esl-erlang_22.0.7-1~centos~7_amd64.rpm
    
    
    systemctl start rabbitmq-server.service
    systemctl status rabbitmq-server.service
    systemctl stop rabbitmq-server.service
    chkconfig rabbitmq-server on
    
    安装web管理插件,使用15672端口
    rabbitmq-plugins enable rabbitmq_management
    

    rabbitmq从3.3.0开始禁止使用guest/guest权限通过除localhost外的访问。
    如果想使用guest/guest通过远程机器访问,需要在rabbitmq配置文件中(/etc/rabbitmq/rabbitmq.config)中设置loopback_users为[]。

    # vim /etc/rabbitmq/rabbitmq.config
    [{rabbit, [{loopback_users, []}]}].
    

    若修改主机hosts文件,导致rabbitmq-server无法启动等,报错信息如下:rabbitmq-server: ERROR: epmd error for host mqserver: timeout (timed out),此时删除目录的所有文件,再次启动就可以了。目录:/var/lib/rabbitmq/mnesia

    若不想使用guest用户登陆的话,可以添加新用户进行操作:

    # rabbitmqctl add_user mq 123456
    # rabbitmqctl set_user_tags mq administrator
    # rabbitmqctl set_permissions -p "/" mq ".*" ".*" ".*"
    # cat /etc/rabbitmq/rabbitmq.config
    [{rabbit,[{tcp_listeners,[5672]},{loopback_users,["mq"]}]}].
    

    2. 设置RabbitMQ远程ip登录

    由于账号guest具有所有的操作权限,并且又是默认账号,出于安全因素的考虑,guest用户只能通过localhost登陆使用,并建议修改guest用户的密码以及新建其他账号管理使用rabbitmq。
    这里我们以创建个test帐号,密码123456为例,创建一个账号并支持远程ip访问。

    创建账号

    rabbitmqctl add_user test 123456

    设置用户角色

    rabbitmqctl set_user_tags test administrator

    设置用户权限

    rabbitmqctl set_permissions -p "/" test ".*" ".*" ".*"

    设置完成后可以查看当前用户和角色(需要开启服务)

    rabbitmqctl list_users

    这时你就可以通过其他主机的访问RabbitMQ的Web管理界面了,访问方式,浏览器输入:serverip:15672。其中serverip是RabbitMQ-Server所在主机的ip。

    2.1 RabbitMQ常用操作

    1、用户管理
    用户管理包括增加用户,删除用户,查看用户列表,修改用户密码。
    (1) 新增一个用户
    rabbitmqctl add_user Username Password

    (2) 删除一个用户
    rabbitmqctl delete_user Username

    (3) 修改用户的密码
    rabbitmqctl change_password Username Newpassword

    (4) 查看当前用户列表
    rabbitmqctl list_users

    2.2 用户角色

    按照个人理解,用户角色可分为五类,超级管理员, 监控者, 策略制定者, 普通管理者以及其他。
    (1) 超级管理员(administrator)
    可登陆管理控制台(启用management plugin的情况下),可查看所有的信息,并且可以对用户,策略(policy)进行操作。
    (2) 监控者(monitoring)
    可登陆管理控制台(启用management plugin的情况下),同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)
    (3) 策略制定者(policymaker)
    可登陆管理控制台(启用management plugin的情况下), 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。与administrator的对比,administrator能看到这些内容。
    (4) 普通管理者(management)
    仅可登陆管理控制台(启用management plugin的情况下),无法看到节点信息,也无法对策略进行管理。
    (5) 其他
    无法登陆管理控制台,通常就是普通的生产者和消费者。

    设置用户角色的命令为:
    rabbitmqctl set_user_tags User Tag

    User为用户名, Tag为角色名(对应于上面的administrator,monitoring,policymaker,management,或其他自定义名称)。
    也可以给同一用户设置多个角色,例如
    rabbitmqctl set_user_tags username monitoring policymaker

    2.3 用户权限

    用户权限指的是用户对exchange,queue的操作权限,包括配置权限,读写权限。配置权限会影响到exchange,queue的声明和删除。读写权限影响到从queue里取消息,向exchange发送消息以及queue和exchange的绑定(bind)操作。

    例如: 将queue绑定到某exchange上,需要具有queue的可写权限,以及exchange的可读权限;向exchange发送消息需要具有exchange的可写权限;从queue里取数据需要具有queue的可读权限。详细请参考官方文档中"How permissions work"部分。

    相关命令为:
    (1) 设置用户权限
    rabbitmqctl set_permissions -p VHostPath User ConfP WriteP ReadP

    (2) 查看(指定hostpath)所有用户的权限信息
    rabbitmqctl list_permissions [-p VHostPath]

    (3) 查看指定用户的权限信息
    rabbitmqctl list_user_permissions User

    (4) 清除用户的权限信息
    rabbitmqctl clear_permissions [-p VHostPath] User

    # 在rabbitmq的内部数据库添加用户;
    add_user <username> <password>  
     
    # 删除一个用户;
    delete_user <username>  
     
    # 改变用户密码(也是改变web管理登陆密码);
    change_password <username> <newpassword>  
     
    # 清除用户的密码,该用户将不能使用密码登陆,但是可以通过SASL登陆如果配置了SASL认证;
    clear_password <username>
     
    # 设置用户tags;
    set_user_tags <username> <tag> ...
     
    # 列出用户;
    list_users  
     
    # 创建一个vhosts;
    add_vhost <vhostpath>  
     
    # 删除一个vhosts;
    delete_vhost <vhostpath>  
     
    # 列出vhosts;
    list_vhosts [<vhostinfoitem> ...]  
     
    # 针对一个vhosts给用户赋予相关权限;
    set_permissions [-p <vhostpath>] <user> <conf> <write> <read>  
     
    # 清除一个用户对vhosts的权限;
    clear_permissions [-p <vhostpath>] <username>  
     
    # 列出哪些用户可以访问该vhosts;
    list_permissions [-p <vhostpath>]  
     
    # 列出该用户的访问权限;
    list_user_permissions <username>  
     
    set_parameter [-p <vhostpath>] <component_name> <name> <value>
    clear_parameter [-p <vhostpath>] <component_name> <key>
    list_parameters [-p <vhostpath>]
    
    # 列出所有插件
    rabbitmq-plugins list
    
  • 相关阅读:
    高中数学常见角的范围及其表示
    立体几何习题
    常见的建系类型汇总
    双曲线
    分式不等式习题
    廓清集合中的几个问题
    二次函数
    随机变量的期望和方差
    不等式选讲习题
    JS中every()和some()的用法
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/11309228.html
Copyright © 2011-2022 走看看