目录
一.多租户与权限
1.Vhost虚拟机
-
所有vhost:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_vhosts Listing vhosts ... /
-
创建vhost:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl add_vhost test
Creating vhost "test" ...
-
删除vhost:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl delete_vhost test Deleting vhost "test" ...
2.权限
-
授权权限:
rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}
vhost:授权用户访问指定的vhost
user:可以访问指定vhost的用户名
conf:一个用于匹配用户在哪些资源上拥有可配置权限的正则表达式
write:一个用于匹配用户在哪些资源上拥有可写权限的正则表达式
read:一个用于匹配用户在哪些资源上拥有可读权限的正则表达式
[root@localhost ~]# rabbitmqctl set_permissions -p "test" rabbitstudy ".*" ".*" ".*"
Setting permissions for user "rabbitstudy" in vhost "/" ...
-
收回权限:
rabbitmqctl clear_permissions [-p vhost] {username}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl clear_permissions -p "test" rabbitstudy
Clearing permissions for user "rabbitstudy" in vhost "test" ...
-
虚拟主机权限列表:
rabbitmqctl list_permissions [-p vhost]
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_permissions -p "/"
Listing permissions in vhost "/" ...
guest .* .* .*
rabbitstudy .* .* .*
-
用户权限列表:
rabbitmqctl list_user_permissions {username}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_user_permissions rabbitstudy
Listing permissions for user "rabbitstudy" ...
/ .* .* .*
二.用户管理
-
创建用户:
rabbitmqctl add_user {username} {password}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl add_user test 123456
Creating user "test" ...
-
验证用户:
rabbitmqctl authenticate_user {username} {password}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl authenticate_user test 1234567
Authenticating user "test" ...
Error: failed to authenticate user "test"
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl authenticate_user test 123456
Authenticating user "test" ...
Success
-
修改密码:
rabbitmqctl change_password {username} {password}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl change_password test 123
Changing password for user "test" ...
-
清除密码:
rabbitmqctl clear_password {username}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl clear_password test
Clearing password for user "test" ...
-
角色分配:
rabbitmqctl set_user_tags {username} {tag...}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl set_user_tags test administartor
Setting tags for user "test" to [administartor] ...
角色分5种类型
- none:无任何角色,新创建的用户默认角色为none
- management:可以访问web管理页面
- policymaker:包含management的所有权限,并可以管理策略(Policy)和参数(Parameter)
- monitoring:包含management的所有权限,并可以看到所有连接、信道及节点相关信息
- administartor:包含minitoring的所有权限,并可以管理用户、虚拟主机、权限、策略、参数
-
用户列表:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_users
Listing users ...
test [administrator]
guest [administrator]
rabbitstudy [administrator]
-
删除用户:
rabbitmqctl delete_user {username}
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl delete_user test
Deleting user "test" ...
三.Web端管理
-
插件列表:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmq-plugins list
-
关闭插件:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmq-plugins disable rabbitmq_management
-
启动插件:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmq-plugins enable rabbitmq_management
四.应用管理
-
查看状态:
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl status
-
停止:
[root@izbp1iqc3c93ahduzrzdjhz ~]# service rabbitmq-server stop
Redirecting to /bin/systemctl stop rabbitmq-server.service
-
启动:
[root@izbp1iqc3c93ahduzrzdjhz ~]# service rabbitmq-server start
Redirecting to /bin/systemctl start rabbitmq-server.service
五.服务端状态
-
查看队列列表
rabbitmqctl list_queues [-p vhost] [queueinfoitem...]
name:队列名称
durable:队列会否持久化
auto_delete:队列是否自动删除
arguments:队列参数
policy:应用到队列上的策略名称
pid:队列关联的Erlang进程ID
owner_pid:处理排他队列连接的进程ID
exclusive:队列是否排他
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_queues
Listing queues ...
demo.queue 100
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_queues name durable auto_delete
Listing queues ...
demo.queue true false
-
查看交换器列表
rabbitmqctl list_exchanges [-p vhost][exchangeinfoitem...]
name:交换器名称
type:交换器类型
durable:交换器是否持久化
auto_delete:交换器是否自动删除
internal:是否是内置交换器
arguments:交换器的参数
policy:交换器的策略
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_exchanges
Listing exchanges ...
amq.rabbitmq.trace topic
amq.rabbitmq.log topic
demo.queue direct
amq.match headers
amq.headers headers
amq.topic topic
amq.direct direct
amq.fanout fanout
direct
demo.exchange direct
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_exchanges name type durable auto_delete
Listing exchanges ...
amq.rabbitmq.trace topic true false
amq.rabbitmq.log topic true false
demo.queue direct true false
amq.match headers true false
amq.headers headers true false
amq.topic topic true false
amq.direct direct true false
amq.fanout fanout true false
direct true false
demo.exchange direct true false
-
查看绑定关系列表
rabbitmqctl list_bindings [-p] [bindinginfoitem...]
source_name:绑定中消息来源的名称
source_kind:绑定中消息来源的类别
destination_name:绑定中消息目的地的名称
destination_kind:绑定种消息目的地的种类
routing_key:绑定的路由键
argumenets:绑定的参数
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_bindings
Listing bindings ...
exchange demo.queue queue demo.queue []
demo.exchange exchange demo.queue queue demo.routingkey []
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_bindings source_name source_kind
Listing bindings ...
exchange
demo.exchange exchange
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]#
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_bindings source_name source_kind destination_name
Listing bindings ...
exchange demo.queue
demo.exchange exchange demo.queue
-
查看连接信息列表
rabbitmqctl list_connections [connectioninfoitem ...]
pid:与连接相关的进程ID
name:连接名称
port:服务器端口
host:服务器主机名
peer_port:服务器对端端口。当一个客户端与服务器连接时,这个客户端的端口就是peer_port
peer_host:服务器对端主机名称,或IP,或未启用
ssl:是否启用SSL
state:连接状态,包括starting\tuning\opening\running\flow\blocking\blocked\closing\closed
channels:连接中的信道个数
protocol:使用的AMQP协议版本
user:与连接相关的用户名
vhost:与连接相关的vhost名称
timeout:连接超时/协商的心跳间隔,单位s
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_connections pid
-
查看信道列表
rabbitmqctl list_channels [channelinfoitem...]
pid:与连接相关的进程ID
connection:信道所属连接的进程ID
name:信道名称
number:信道的序号
user:与连接相关的用户名
vhost:与连接相关的vhost名称
transactional:信道是否处于事务模式
confirm:信道是否处于 publisher confirm模式
consumer_count:信道中的消费者个数
messages_unacknowledged:已投递但是还未被ack的消息个数
messages_uncommitted:已接收但是还未提交事务的消息个数
acks_uncommitted:已ack收到但是还未提交事务的消息个数
messages_unconfirmed:已发送但是还未确认的消息个数
perfetch_count:新消费者的Qos个数限制,0表示无上限
global_prefetch_count:整个信道的Qos个数限制
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_channels
-
查看消费者列表
rabbitmqctl list_consumers [-p vhost]
[root@izbp1iqc3c93ahduzrzdjhz ~]# rabbitmqctl list_consumers
六.HTTP API 接口管理
-
描述整个系统的各种信息:
localhost:15672/api/overview
-
集群的名称:
localhost:15672/api/cluster-name
-
集群中节点的信息:
localhost:15672/api/nodes
-
所有的连接信息:
localhost:15672/api/connections
-
所有信道的信息:
localhost:15672/api/channels
-
所有的消费者信息:
localhost:15672/api/consumers
-
所有交换器信息:
localhost:15672/api/exchanges
-
列出所有的队列信息:
localhost:15672/api/queues
-
列出所有绑定关系的信息:
localhost:15672/api/bindings
-
列出所有vhost的信息:
localhost:15672/api/vhosts
-
列出所有的用户信息:
localhost:15672/api/usres