1:添加用户并授权
# 创建用户
rabbitmqctl add_user rabbitmq '12345678'
# 添加用户[管理员]标签
rabbitmqctl set_user_tags rabbitmq administrator
# 创建virtual host
rabbitmqctl add_vhost /vhost1
# 为用户授权可以访问的[virtual host]和操作类型[配置、读、写]
rabbitmqctl set_permissions -p /vhost1 rabbitmq '.*' '.*' '.*'
# 启用rabbitmq_management
rabbitmq-plugins enable rabbitmq_management
2:RabbitMQ 权限详解
# 角色列表:
none、management、policymaker、monitoring、administrator
# 角色权限:
1:【none】
不能访问 management_plugin(图形管理界面)
2:【management】(单一virtual hosts用户)
用户可以通过AMQP做的任何事外加:
列出自己可以通过AMQP登入的virtual hosts
查看自己的virtual hosts中的queues, exchanges 和 bindings
查看和关闭自己的channels 和 connections
查看有关自己的virtual hosts的“全局”的统计信息,包含其他用户在这些virtual hosts中的活动
3:【policymaker】
management可以做的任何事外加:
查看、创建和删除自己的virtual hosts所属的policies和parameters
4:【monitoring】(监控用户)
management可以做的任何事外加:
列出所有virtual hosts,包括他们不能登录的virtual hosts
查看其他用户的connections和channels
查看节点级别的数据如clustering和memory使用情况
查看真正的关于所有virtual hosts的全局的统计信息
5:【administrator】(全权用户)
policymaker和monitoring可以做的任何事外加:
创建和删除virtual hosts
查看、创建和删除users
查看创建和删除permissions
关闭其他用户的connections
3:rabbitmq-plugins 命令详解
# 格式:
rabbitmq-plugins <command> [<command options>]
# 显示所有的的插件 -v:显示插件版本 -m:显示插件名称 -E:显示明确已经开启的插件 -e:显示明确和后台开启的插件
rabbitmq-plugins list [-v|-m] [-E|-e] [<pattern>]
# 启用插件
rabbitmq-plugins enable <plugin1> <plugin2> ... <plugin_n>
# 禁用插件
rabbitmq-plugins disable <plugin1> <plugin2> ... <plugin_n>
# 启用所有插件
rabbitmq-plugins enable \
amqp_client \
cowboy \
cowlib \
rabbitmq_amqp1_0 \
rabbitmq_auth_backend_ldap \
rabbitmq_auth_mechanism_ssl \
rabbitmq_consistent_hash_exchange \
rabbitmq_event_exchange \
rabbitmq_federation \
rabbitmq_federation_management \
rabbitmq_jms_topic_exchange \
rabbitmq_management \
rabbitmq_management_agent \
rabbitmq_management_visualiser \
rabbitmq_mqtt \
rabbitmq_recent_history_exchange \
rabbitmq_sharding \
rabbitmq_shovel \
rabbitmq_shovel_management \
rabbitmq_stomp \
rabbitmq_top \
rabbitmq_tracing \
rabbitmq_trust_store \
rabbitmq_web_dispatch \
rabbitmq_web_stomp \
rabbitmq_web_stomp_examples \
sockjs \
4:rabbitmqctl 命令全解 (CLI 模式管理)
# 格式:
rabbitmqctl [-n <node>] [-q] <command> [<command options>]
# 【基本命令】
# 停止运行rabbitmq
rabbitmqctl stop <pid_file>
# 停止运行rabbitmq上的应用
rabbitmqctl stop_app
# 等待rabbitmq服务启动
rabbitmqctl wait <pid_file>
# 初始化node状态(要先执行rabbitmqctl stop_app)
rabbitmqctl reset
# 强制初始化node状态
rabbitmqctl force_reset
# 轮转日志文件
rabbitmqctl rotate_logs <suffix>
# 【cluster集群管理】
# 默认node以disc node加入集群,--ram表示node以ram node加入集群中(要先执行rabbitmqctl stop_app)
rabbitmqctl join_cluster <node name> --ram
# 显示cluster中的所有node
rabbitmqctl cluster_status
# 改变一个cluster中node的模式,该节点在转换前必须先停止,不能把一个集群中唯一的disk node转化为ram node
rabbitmqctl change_cluster_node_type disc | ram
# 远程移除cluster中的一个node,前提是该node必须处于offline状态,如果是online状态,则需要加--offline参数。
rabbitmqctl forget_cluster_node --offline
# 远程更新cluster中的node
rabbitmqctl update_cluster_nodes clusternode
# 同步镜像队列
rabbitmqctl sync_queue queue
# 取消同步镜像队列
rabbitmqctl cancel_sync_queue queue
# 【用户管理】
# 添加rabbitmq用户
rabbitmqctl add_user <username> <password>
# 删除rabbitmq用户
rabbitmqctl delete_user <username>
# 改变rabbitmq用户密码
rabbitmqctl change_password <username> <newpassword>
# 清除用户密码,禁止用户登录
rabbitmqctl clear_password <username>
# 设置用户标签
rabbitmqctl set_user_tags <username> <tag1> <tag2> ... <tag_n>
# 列出用户
rabbitmqctl list_users
# 创建一个vhosts
rabbitmqctl add_vhost <vhostpath>
# 删除一个vhosts
rabbitmqctl delete_vhost <vhostpath>
# 列出vhosts
rabbitmqctl list_vhosts <vhostinfoitem1> <vhostinfoitem2> ... <vhostinfoitem_n>
# 针对一个vhosts 给用户赋予相关权限
rabbitmqctl set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
# 清除一个用户对vhosts的权限
rabbitmqctl clear_permissions [-p <vhostpath>] <username>
# 列出哪些用户可以访问该vhosts
rabbitmqctl list_permissions [-p <vhostpath>]
#列出该用户的访问权限
rabbitmqctl list_user_permissions <username>
# 修改vhost路径参数
rabbitmqctl set_parameter [-p <vhostpath>] <component_name> <key> <value>
# 清除vhost路径参数
rabbitmqctl clear_parameter [-p <vhostpath>] <component_name> <key>
# 列出vhost路径参数
rabbitmqctl list_parameters [-p <vhostpath>]
# 【策略policy管理】
# name:策略名称 pattern:匹配资源正则表达式 apply-to:策略应用类型范围,有[all、queues、exchange] priority:整数优先级 definition:json格式设置的策略
rabbitmqctl set_policy [-p <vhostpath>] [--priority <priority>] [--apply-to <apply-to>] <name> <pattern> <definition(json)>
#清除一个策略
rabbitmqctl clear_policy [-p <vhostpath>] <name>
# 列出已有的策略
rabbitmqctl list_policies [-p <vhostpath>]
# 【queues exchanges】
# 返回queue的信息,如果省略了-p参数,则默认显示的是"/"vhosts的信息。
rabbitmqctl list_queues [-p <vhostpath>] [<queueinfoitem> ...]
# 返回exchange的信息
rabbitmqctl list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]
# 返回绑定信息
rabbitmqctl list_bindings [-p <vhostpath>] [<bindinginfoitem> ...]
# 返回链接信息
rabbitmqctl list_connections [<connectioninfoitem> ...]
# 返回目前所有的channels
rabbitmqctl list_channels [<channelinfoitem> ...]
# 返回consumers
rabbitmqctl list_consumers [-p <vhostpath>]
# 显示broker的状态
rabbitmqctl status
# 显示环境参数的信息
rabbitmqctl environment
# 返回一个服务状态report
rabbitmqctl report
# 返回一个服务状态eval
rabbitmqctl eval <expr>
5:rabbitmqctl 管理方式
# 启用rabbitmq_management
rabbitmq-plugins enable rabbitmq_management
# (不成功则先执行:rabbitmqctl start_app)
# web访问:
http://[ip]:15672
# api访问:
http://[ip]:15672/api
# cli访问:
http://[ip]:15672/cli