本文主要整理 RabbitMQ 的常用运维命令,安装过程这里不再展开。
消息队列常用命令
启动
注意启动顺序,必须先启动节点,再启动 RabbitMQ 应用服务。
1 2
| rabbitmq-server -detached rabbitmqctl start_app
|
关闭RabbitMQ应用服务
Stops the RabbitMQ application, leaving the runtime (Erlang VM) running.
关闭节点
Shuts down the node, both RabbitMQ and its runtime.
关闭Erlang节点
Stops the Erlang node on which RabbitMQ is running.
启动web管理插件
1
| rabbitmq-plugins enable rabbitmq_management
|
重置节点
Returns a RabbitMQ node to its virgin state.
集群常用命令
将一个节点(ram方式,默认是disc)加入集群
1
| rabbitmqctl join_cluster hare@elena --ram
|
查看集群状态
1
| rabbitmqctl cluster_status
|
修改节点类型
节点类型只能是disc或是ram
1 2 3
| rabbitmqctl stop_app rabbitmqctl change_cluster_node_type ram rabbitmqctl start_app
|
在当前集群中加入某节点
1
| rabbitmqctl join_cluster {rabbit_node_name} (某些低版本可以采用rabbitmqctl cluster {rabbit_node_name})
|
将某节点剔除出当前集群
1
| rabbitmqctl forget_cluster_node {rabbit_node_name}
|
获取服务器状态信息
队列信息
1
| rabbitmqctl list_queues [-p vhostpath] [queueinfoitem …]
|
queueinfoitem可以为: name, durable, autodelete, arguments, messagesready, messages_unacknowled, messages, consumers, memory.
Exchange信息
1
| rabbitmqctl list_exchanges [-p vhostpath] [exchangeinfoitem …]
|
exchangeinfoitem有:name, type, durable, auto_delete, internal, arguments.
Binding信息
1
| rabbitmqctl list_bindings [-p vhostpath] [bindinginfoitem …]
|
bindinginfoitem有:sourcename, sourcekind, destinationname, destinationkind, routing_key, arguments.等
connection信息
1
| rabbitmqctl list_connections [connectioninfoitem …]
|
connectioninfoitem有:recvoct,recvcnt,sendoct,sendcnt,send_pend等。
channel信息
1
| rabbitmqctl list_channels [channelinfoitem …]
|
channelinfoitem有:consumercount,messagesunacknowledged,messagesuncommitted,acksuncommitted,messagesunconfirmed,prefetchcount,clientflowblocked
vhost管理
1 2
| 添加vhost: rabbitmqctl add vhost {name} 删除vhost: rabbitmqctl delete vhost {name}
|
镜像队列的设置
镜像队列的配置通过添加policy完成,policy添加的命令为:
1
| rabbitmqctl set_policy [-p Vhost] Name Pattern Definition [Priority]
|
-p Vhost: 可选参数,针对指定vhost下的queue进行设置
Name: policy的名称
Pattern: queue的匹配模式(正则表达式)
Definition: 镜像定义,包括三个部分 ha-mode,ha-params,ha-sync-mode
ha-mode: 指明镜像队列的模式,有效值为 all/exactly/nodes
all表示在集群所有的节点上进行镜像
exactly表示在指定个数的节点上进行镜像,节点的个数由ha-params指定
nodes表示在指定的节点上进行镜像,节点名称通过ha-params指定
ha-params: ha-mode模式需要用到的参数
ha-sync-mode: 镜像队列中消息的同步方式,有效值为automatic,manually
Priority: 可选参数, policy的优先级
例如,对队列名称以hello开头的所有队列进行镜像,并在集群的两个节点上完成镜像,policy的设置命令为:
1
| rabbitmqctl set_policy hello-ha "^hello" '{"ha-mode":"exactly","ha-params":2,"ha-sync-mode":"automatic"}'
|
插件管理
开启某个插件
1
| rabbitmq-plugins enable {插件名}
|
关闭某个插件
1
| rabbitmq-plugins disable {插件名}
|
用户管理
添加用户
1
| rabbitmqctl add_user {username} {password}
|
删除用户
1
| rabbitmqctl delete_user {username}
|
修改密码
1
| rabbitmqctl change_password {username} {newpassword}
|
设置用户角色
1
| rabbitmqctl set_user_tags {username} {tag} tag可以为administrator, monitoring, management
|
权限管理
权限设置
1
| rabbitmqctl set_permissions [-p vhostpath] {user} {conf} {write} {read}
|
conf:一个正则表达式match哪些配置资源能够被该用户访问。
write:一个正则表达式match哪些配置资源能够被该用户读。
read:一个正则表达式match哪些配置资源能够被该用户访问。
查看(指定vhost)所有用户的权限信息
1
| rabbitmqctl list_permissions [-p vhostPath]
|
查看指定用户的权限信息
1
| rabbitmqctl list_user_permissions {username}
|
清除用户的权限信息
1
| rabbitmqctl clear_permissions [-p vhostPath] {username}
|
示例:
1
| rabbitmqctl set_permissions -p / root ".*" ".*" ".*"
|
参考资料
RabbitMq常用命令
rabbitmqctl(8)
rabbitmq——镜像队列