rabbitmqctl 服务状态查询

服务状态查询语句,用于询问服务,并将返回tab分隔的一组列项结果。一些查询语句(例如 list_queues, list_exchanges, list_bindings, list_consumers)接受一个可选的vhost参数。该参数(如果存在),必须在查询之后立即指定。

一、队列状态查询

rabbitmqctl list_queues [-p vhost] [[--offline] | [--online] | [--local]] [queueinfoitem ...]
返回队列的详细信息。

  • 如果 “-p” 标志不存在,那么将返回默认虚拟主机的队列详细信息。”-p” 可以用来覆盖默认vhost。可以使用以下互斥选项之一,通过其状态或者位置过滤显示的队列。
  • [–offline] 表示仅仅列出当前不可用的持久队列(更具体地说,他们的主节点不是)
  • [–online] 表示列出当前可用的队列(他们的主节点是)
  • [–local] 表示仅仅列出那些主程序在当前节点上的队列
  • queueinfoitem参数用于指示要包括在结果中的哪些队列信息项。结果中的列顺序将与参数的顺序相匹配。queueinfoitem可以从以下列表中获取任何值:
  1. name 表示队列的名称
  2. durable 表示服务器重启之后,队列是否存活
  3. auto_delete 表示不再使用的队列是否自动被删除
  4. arguments 表示队列的参数
  5. policy 表示应用在队列中的策略名称
  6. pid 表示和队列相关联的Erlang进程的ID
  7. owner_pid 表示作为队列的排他所有者的连接的Erlang进程的ID,如果队列是非排他,则为空
  8. exclusive 表示队列是否是排他的,有 owner_pid 返回 True,否则返回 False
  9. exclusive_consumer_pid 表示排他消费者订阅该队列的频道的Erlang进程的ID,如果没有独家消费者,则为空
  10. exclusive_consumer_tag 表示订阅该队列的排他消费者的消费tag。如果没有排他消费者,则为空
  11. messages_ready 表示准备被发送到客户端的消息数量
  12. messages_unacknowledged 表示已经被发送到客户端但是还没有被确认的消息数量
  13. messages 表示准备发送和没有被确认的消息数量总和(队列深度)
  14. messages_ready_ram 表示驻留在 ram 里的 messages_ready 的消息数量
  15. messages_unacknowledged_ram 表示驻留在 ram 里的 messages_unacknowledged 的消息数量
  16. messages_ram 表示驻留在 ram 里的消息总数
  17. messages_persistent 表示队列中持久消息的总数(对于临时队列,总是为0)
  18. message_bytes 表示在队列中所有消息body的大小,这并不包括消息属性(包括header)或者任何开销
  19. message_bytes_ready 表示类似于 messge_bytes 但仅仅计算那些将发送到客户端的消息
  20. message_bytes_unacknowledged 表示类似于 message_bytes 但仅仅计算那些已经发送到客户还没有确认的消息
  21. message_bytes_ram 表示类似于 message_bytes 但仅仅计算那些驻留在ram中的消息
  22. message_bytes_persistent 表示类似于 message_bytes 但仅仅计算那些持久消息
  23. head_message_timestamp 表示队列中第一个消息的时间戳属性(如果存在)。只有处在 paged-in 状态的消息才存在时间戳。
  24. disk_reads 表示该队列自start起,从磁盘读取消息的次数总和
  25. disk_writes 表示该队列自start起,被写入磁盘消息的次数总和
  26. consumers 表示consumer的数量
  27. consumer_utilisation 表示队列能够立即将消息传递给消费者的时间分数(0.0 ~ 1.0之间),如果消费者受到网络拥塞或者预取计数的限制,该值可能小于1.0
  28. memory 表示和该队列相关联的Erlang进程消耗的内存字节数,包括stack/heap/内部数据结构
  29. slave_pids 表示该队列目前的slave的ID号(如果该队列被镜像的话)
  30. synchronised_slave_pids 表示如果队列被镜像,给出与主队列同步的当前slave的ID号,即可以从主队列接管而不丢失消息的slave的ID
  31. state 表示队列的状态,一般是 “running”; 如果队列正在同步,也可能是 “{syncing, MsgCount}”; 如果队列所处的节点当前down了,队列显示的状态为 “down”
  32. 如果没有指定queueinfoitem,那么将显示队列的名称(name)和深度(messages)

二、交换器状态查询

rabbitmqctl list_exchanges [-p vhost] [exchangeinfoitem ...]
返回交换器的详细信息。

  • 如果 “-p” 标志不存在,那么将返回默认虚拟主机的交换器详细信息。”-p” 可以用来覆盖默认vhost。
  • exchangeinfoitem参数用于指示要包括在结果中的哪些交换器信息项。结果中的列顺序将与参数的顺序相匹配。exchangeinfoitem可以从以下列表中获取任何值:
  1. name 表示交换器的名称
  2. type 表示交换器类型(例如: direct/topic/fanout/headers)
  3. durable 表示服务器重启之后,交换器是否存活
  4. auto_delete 表示交换器不再使用时,是否被自动删除
  5. internal 表示交换器是否是内部的,例如不能被客户端直接发布
  6. arguments 表示交换器的参数
  7. policy 表示引用在该交换器上的策略名称
  8. 如果没有指定任何 exchangeinfoitem,那么该命令将显示交换器的名称(name)和类型(type)

三、绑定状态查询

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

  • 返回绑定的详细信息。如果 “-p” 标志不存在,那么将返回默认虚拟主机的绑定详细信息。”-p” 可以用来覆盖默认vhost。
  • bindinginfoitem参数用于指示要包括在结果中的哪些绑定信息项。结果中的列顺序将与参数的顺序相匹配。bindinginfoitem可以从以下列表中获取任何值:
  1. source_name 表示绑定附加到的消息源的名称
  2. source_kind 表示绑定附加到的消息源的类型,目前通常交换器
  3. destination_name 表示附加绑定到的消息目的地的名称
  4. destination_kind 表示附加绑定到的消息目的地的类型
  5. routing_key 表示绑定的routing key
  6. arguments 表示绑定的参数
  7. 如果没有指定任何的 bindinginfoitem ,那么将展示上述所有的参数
  8. rabbitmqctl list_bindings -p /myvhost exchange_name queue_name
  9. 上述命令,表示展示在 /myvhost 虚拟主机中的绑定的exchange名称和queue名称

四、链接状态查询

rabbitmqctl list_connections [connectioninfoitem ...]

  • 返回TCP/IP连接统计信息
  • connectioninfoitem 参数用于指示要包括在结果中的哪些连接信息项,结果中的列顺序将与参数的顺序相匹配。connectioninfoitem可以从以下列表中获取任何值:
  1. pid 表示与该connection相关联的Erlang进程的id号
  2. name 表示该连接的可读性名称
  3. port 表示服务端口
  4. host 表示通过反向DNS获取的服务器主机名,如果反向DNS失败或未启用,则为其IP地址
  5. peer_port 表示对等端口
  6. peer_host 表示通过反向DNS获取的对等主机名,如果反向DNS失败或未启用,则为其IP地址
  7. ssl 表示该连接是否使用SSL保护的bool值
  8. ssl_protocal 表示SSL协议(例如: tlsv1)
  9. ssl_key_exchange 表示SSL关键交换器算法(例如: rsa)
  10. ssl_cipher 表示SSL密码算法(例如: aes_256_cbc)
  11. ssl_hash 表示SSL哈希函数(例如: sha)
  12. peer_cert_issuer 表示对等体的SSL证书的颁发者,以RFC4514形式出现
  13. peer_cert_validity 表示对等体的SSL证书的有效期限
  14. state 表示连接状态(例如: starting/tuning/opening/running/flow/blocking/blocked/closing/closed)
  15. channels 表示正在使用连接的通道数量
  16. protocol 表示正在使用的AMQP的版本号。注意,如果一个客户端需要一个AMQP 0-9 连接,我们将其作为 AMQP 0-9-1
  17. auth_mechanism 表示使用SASL认证机制,如PLAN
  18. user 表示和该连接相关联的用户名
  19. vhost 表示vhost名称
  20. timeout 表示连接超时/协商心跳间隔,单位为秒
  21. frame_max 表示最大的frame大小(byte)
  22. channel_max 表示该连接上通道的最大数量
  23. client_properties 表示在连接建立期间,有客户端传送的消息属性
  24. recv_oct 表示接受到的八位字节
  25. recv_cnt 表示接受到的包
  26. send_oct 表示发送的八位字节
  27. send_cnt 表示发送的包
  28. send_pend 表示发送的队列大小
  29. connected_at 表示该连接被建立的日期和时间的时间戳格式
  30. 如果没有指定任何connectioninfoitem,那么将展示:user/peer_host/peer_port/流量控制和内存块状态之后的时间

五、通道状态查询

rabbitmqctl list_channels [channelinfoitem ...]

  • 返回所有当前的通道的信息,通道即一个执行大多数AMQP命令的逻辑容器。这包括由普通AMQP连接的一部分通道、由各种插件和其他扩展程序创建的通道。
  • channelinfoitem 参数用于指示要包括在结果中的哪些连接信息项,结果中的列顺序将与参数的顺序相匹配。channelinfoitem 可以从以下列表中获取任何值:
  1. pid 表示与该连接相关联的Erlang程序的ID号
  2. connection 表示与通道所属连接相关联的Erlang进程的ID号
  3. name 表示通道的可读性名称
  4. number 表示通道的号码,在连接中唯一表示它
  5. user 表示和该通道相关联的用户名
  6. vhost 表示通道操作所在的vhost
  7. transactional 表示通道是否处于事务模式,返回 true,否则返回 false
  8. confirm 表示通道是否处于确认模式,返回 true, 否则返回 false
  9. consumer_count 表示通过通道检索消息的逻辑AMQP消费者数量
  10. messages_unacknowledged 表示通过通道发送过但还没收到反馈的消息的数量
  11. messages_uncommitted 表示尚未提交的事务中接受的消息数
  12. acks_uncommitted 表示尚未提交的事务中接受的确认数
  13. messages_unconfirmed 表示尚未确认已发布的消息数量。在不处于确认模式中的通道上,该值为0
  14. prefetch_count 表示新消费者的QoS预取限制,如果没有限制则为0
  15. global_prefetch_count 表示整个通道的QoS预取限制,如果没有限制则为0
  16. 如果没有指定任何 channelinfoitem 项,那么将展示 pid/user/consumer_count/messages_unacknowledged

六、消费者状态查询

rabbitmqctl list_consumers [-p vhost]

# 列出消费者,例如对一个队列的消息流的订阅者。每一行用tab字符分隔:

# 订阅的队列名称、创建和管理订阅的通道id、在通道中唯一标识订阅的消费者tag、消息传输到订阅者之后是否需要确认的bool值、代表预取限制的整数(0表示none)、订阅者的其他参数

七、Broker状态查询

rabbitmqctl status
# 展示broker的状态信息,例如在当前Erlang节点上正在运行的应用、RabbitMQ和Erlang版本号、OS名称、内存和文件描述统计信息

八、节点状态查询

rabbitmqctl node_health_check

# RabbitMQ节点的健康检查,验证 Rabbit 应用正在运行,list_queues和list_channels返回,警告没有被设置

rabbitmqctl node_health_check -n rabbit@stringer

# 上述例子,表示对RabbitMQ节点进行健康检查

九、环境变量查询

rabbitmqctl environment
# 在每个正在运行的应用程序的应用程序环境中,显示每个变量的名称和值

十、服务器状态报告

rabbitmqctl report

# 生成服务器状态报告,其中包括用于支持目的的所有服务器状态信息的并置。当伴随支持请求时,输出应该被重定向到一个文件

rabbitmqctl report > server_report.txt

十一、表达式评估

rabbitmqctl eval {expr}

# 评估一个任务Erlang表达式

rabbitmqctl eval 'node().'

# 上述例子,将返回 rabbitmqctl 已经连接的节点名称

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章