RabbitMQ 管理

多租户与权限

每一个RabbitMQ服务器都能创建虚拟的服务器,我们称之为虚拟主机(Virtual Host)vhost。每一个vhost本质上是一个独立的小型RabbitMQ服务器,拥有自己独立的队列、交换器及绑定关系等,并且它拥有自己独立的权限。

创建vhost

root@ubuntu:/opt/rabbitmq# rabbitmqctl add_vhost vhost1

Creating vhost "vhost1"

显示

root@ubuntu:/opt/rabbitmq# rabbitmqctl list_vhosts

Listing vhosts

vhost1

/

删除

root@ubuntu:/opt/rabbitmq# rabbitmqctl delete_vhost vhost1

Deleting vhost "vhost1"

授予权限命令:

rabbitmqctl set_permissions [-p vhost] {user} {conf} {write} {read}

vhost:授予用户访问权限的vhost名称,可以设置为默认值,即为vhost"/"

user:可以访问指定的vhost的用户名

conf:一个用于匹配用户在哪些资源上拥有可配置权限的正则表达式。

write:一个用于匹配用户在哪些资源上拥有可写权限的正则表达式。

read:一个用于匹配用户在哪些资源上拥有可读权限的正则表达式

 

授予root用户可访问虚拟主机vhost1,并在所有的资源上都具备可配置、可写及可读的权限,

root@ubuntu:/opt/rabbitmq# rabbitmqctl set_permissions -p / root ".*" ".*" ".*"

Setting permissions for user "root" in vhost "/"

消除权限:

root@ubuntu:/opt/rabbitmq# rabbitmqctl clear_permissions -p vhost1 root

Clearing permissions for user "root" in vhost "vhost1"

列举权限:

root@ubuntu:/opt/rabbitmq# rabbitmqctl list_permissions -p /

Listing permissions in vhost "/"

root .* .* .*

guest .* .* .*

 

 

root@ubuntu:/opt/rabbitmq# rabbitmqctl list_user_permissions root

Listing permissions for user "root"

/ .* .* .*

 

rabbitmqcctl 工具的标准语法如下 ([]表示可选参数, {} 表示必选参数)

rabbitmqctl [-n node] [-t timeout] [-q] {command} [command options ...]

[-n node]

默认节点是"rabbit@hostname",此处的hostname是主机名称。

[-q]

使用-q标志来启用quiet模式,这样可以屏蔽一些消息的输出。

[-t timeout]

操作超时时间秒为单位

root@ubuntu:/opt/rabbitmq# rabbitmqctl list_vhosts -q

/

 

用户管理

创建用户命令

rabbitmqctl add_user {username} {password}。

rabbitmqctl add_user root root123

 

rabbitmqctl change_password {username} {newpassword}命令来更改指定的用户的密码。

root@ubuntu:/opt/rabbitmq# rabbitmqctl change_password root root

Changing password for user "root"

删除用户的命令

rabbitmqctl delete_user {username},其中username表示要删除的用户名称

rabbitmqctl delete_user root

用户有角色分为5种类型

1)none:无任何角色。新创建的用户有角色默认为none。

2)management:可以访问Web管理页面。

3)policymaker:包含management的所有权限,并且可以管理策略Policy和参数

4)monitoring:包含management的所有权限,并且可以看到所有连接、僧道及节点相关的信息。

5)administrator:包含monitoring的所有权限,并且可以管理用户、虚拟主机权限、策略、参数等。

rabbitmqctl set_user_tags {username} {tag ...}命令来设置角色。

root@ubuntu:/opt/rabbitmq# rabbitmqctl set_user_tags root administrator

Setting tags for user "root" to [administrator]

 

Web端管理

启动插件命令:

rabbitmq-plugins enable rabbitmq_management

 

查看当前插件

root@ubuntu:/opt/rabbitmq# rabbitmq-plugins list

Configured: E = explicitly enabled; e = implicitly enabled

| Status: * = running on rabbit@ubuntu

默认访问地址

http://localhost:15672/#/

 

关闭插件命令:

rabbitmq-pluginsdiaable rabbitmq_management

 

应用与集群管理

应用管理

rabbitmqctl stop [pid_file]

用于停止运行Rabbitmq的Erlang虚拟机和RabbitMQ服务应用。

rabbitmqctl stop

 

rabbitmqctl shutdown

用于停止运行RabbitMQ的Erlang虚拟机和RabbitMQ服务应用。

执行这个命令会阻塞直到Erlang虚拟机进程退出。它不需要指定pid_file而可以阻塞等待指定进程的关闭。

 

rabbitmqctl stop_app

停止RabbitMQ服务应用,但是Erlang虚拟机还是处于运行状态。此命令的执行优先于其他管理操作,比如rabbitmqctl reset。

 

rabbitmqctl start_app

启动RabbitMQ应用。此命令典型的用途是在执行了其他管理操作之后,重新启动之前停止 的RabbitMQ应用 。

 

rabbitmqctl wait [pid_file]

等待RabbitMQ应用的启动。它会等到pid_file的创建,然后等待pid_file中所代表的进程启动。

rabbitmqctl reset

将RabbitMQ节点重置还原到最初的状态。包括从原来所在的集群中删除些节点,从管理数据库中删除所有的配置数据,如已配置的用户、vhost等 。

 

rabbitmqctl force_reset

强制将RabbitMQ节点重置还原到最初状态。不同于rabbimqctl reset 命令,rabbitmqctl force_reset命令不论当前管理数据库的状态和集群配置是什么,都会无条件地重置节点。

 

rabbitmqctl rotate_logs{suffix}

指示RabbitMQ节点轮换日志文件。RabbitMQ节点会将原来的日志文件的内容追加到原始名称+后缀的日志文件中,然后再将新的日志内容记录到新创建的日志中。当目标文件不存在时,会重新创建。如果不指定后缀suffix,则日志文件只是重新打开而不会进行轮换。

集群管理

将节点加入指定的集群中。

rabbitmqctl join_cluster {cluster_node} [--ram]

 

显示集群的状态

rabbitmqctl cluster_status

 

修改集群节点的类型

rabbitmqctl change_cluster_node_type {disc|ram}

 

将节点从集群中删除

rabbitmqctl forget_cluster_node [--offline]

 

在集群中的节点应用启动前咨询clusternode节点的最新信息,并更新相应的集群信息。

rabbitmqctl update_cluster_nodes{clusternode}

 

确保节点可以启动,即使不是最后一个关闭的节点。

rabbitmqctl force_boot

 

rabbitmqctl sync_queue [-p vhost] {queue}

指示未同步队列queue的slave镜像可以同步master镜像行的内容。

同步期间此队列会被阻塞,直到同步完成。此条命令执行的成功的前提是队列queue配置了镜像。

 

rabbitmqctl cancel_sync_queue [-p vhost] {queue}

取消队列queue同步镜像的操作。

 

 

rabbitmqctl set_cluster_name {name}

设置集群名称。集群名称在客户端连接时会通报给客户端。

 

服务端状态

rabbitmqctl list_queues [-p vhost] [queueinfoitem ...]

此命令返回队列的详细信息。

-name: 队列名称

-durable: 队列是否持久化

- auto_delete: 队列是否自动删除

- arguments 队列的参数。

-policy 应用到队列上的策略名称

- pid: 队列关联的 r1ang 进程的 ID

- owner pid: 处理排他队列连接的 Erlang 进程 如果此队列是非排他的,此值将为空。

- exclusive: 队列是否是排他的

- exclusive consumer_pid: 订阅到此排他队列的消费者相 的信道 联的 Erlang

进程 。如果此队列是非排他的,此值将为空

- exclusive_consumer_tag 订阅到此排他队列的消费者的 consumerTag 如果

此队列是非排他的,此值将为空。

- messages _ ready: 准备发送给客户端的消息个数

- messages_unacknowledged: 发送给客户端但尚未应答的消息个数

-messages: 准备发送给客户端和未应答消息的总和

- messages_ready_ram: 驻留在内存中 messages_ready 的消息个数

- messages unacknowledged ram: 驻留在内存中 messages unacknowledged

的消息个数

- messages_ram 驻留在内存中的消息总数

- messages_persistent 队列中持久化消息的个数 对于非持久化队列来说总是

-messages_bytes: 队列中所有消息的大小总和 这里不包括消息属性或者任何其他

开销。

- messages_bytes_ready: 准备发送给客户端的消息的大小总和。

- messages bytes unacknowledged: 发送给客户端但尚未应答的消息的大小总和。

-messages_bytes_ram: 驻留在内存中的 messages_bytes

-messages_bytes_persiste t: 队列中持久化的 messages_bytes

-disk_reads: 从队列启动开始,己从磁盘中读取该队列的消息总次数。

-disk_writes: 从队列启动开始,己向磁盘队列写消息的总次数。

-consumer: 消费者数目。

-cosumer_utilisation: 队列中的消息能够立刻投递给消费者的比率,介于0和1

之间 。这个受网络拥塞或者 Basic.Qos 的影响而小于`

-memory: 与队列相关的 Erlang 进程所消耗的内存字节数,包括械、堆及内部结构

-slave_pids: 如果队列是镜像的 ,列出所有 slave 镜像的 pid

-synchro ised slave pids: 如果队列是镜像的,列出所有己经同步的 slave 镜像

pid

-state 队列状 态。正常情况下是 running 如果队列正常同步数据可能会有

"{syncing, MsgCount}" 的状态;如果队列所在的节点掉线了,则队列显示状态为

down (此时大多数的 queueinfoitems 也将不可用〉。

 

rabbitmqctl list_exchanges [-p vhost] [exchangeinfoitem ...]

返回交换器的详细细节。

 

rabbitmqctl list_bindings [-p vhost] [bindinginfoitem ...]

返回绑定关系的细节。

 

rabbitmqctl list_connections [connectioninfoitem ...]

返回TCP/IP连接统计信息。

 

rabbitmqctl list_channels [channelinfoitem ...]

返回当前所有的信道信息。

 

rabbimqctl list_consumers [-p vhost]

列举消费者信息。

 

rabbitmqctl status

显示Broker状态,比如当前Erlang节点上运行的应用程序、RabbitMQ/Erlang的版本信息、OS的名称,内存及文件描述符等统计信息。

 

rabbitmqctl node_health_check

对RabbitMQ节点进行健康检查,确认应用是否正常运行、list_queues和list_channels是否能正常返回等。

 

 

rabbitmqctl environment

显示每个运行程序环境中每个变量的名称和值。

 

rabbitmqctl report

当所有服务器状态生成一个服务器状态报告,并将输出重写向到一个文件。

rabbitmqctl reportt >report.txt

 

rabbitmqctl eval{expr}

执行任意Erlang表达式。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小蚂蚁_CrkRes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值