服务器状态
服务器状态查询查询服务器返回一个结果以制表符分隔的列表. 某些查询(list_queues, list_exchanges, list_bindings, 和 list_consumers) 接受一个可选的vhost 参数. 如果这个参数出现了,那么它必须指定在查询的后面.
list_queues, list_exchanges and list_bindings 命令接受一个可选的虚拟主机参数以显示其结果.默认值为"/".
list_queues [-p vhost] [queueinfoitem ...]
返回队列的详细信息. 如果无-p标志,将显示/虚拟主机上的队列详情."-p" 标志可用来覆盖此默认值.
queueinfoitem 参数用于指示哪些队列信息项会包含在结果集中.结果集的列顺序将匹配参数的顺序.queueinfoitem 可以是下面列表中的任何值:
- name
非ASCII字符的队列名称.
- durable
服务器重启后,队列是否能幸存.
- auto_delete
不再使用时,是否需要自动删除队列.
- arguments
队列参数.
- policy
应用到队列上的策略名称.
- pid
关联队列的Erlang进程ID.
- owner_pid
表示队列专用所有者的代表连接的Erlang进程ID.如果队列是非专用的,此值将为空.
- exclusive
True:如果队列是专用的(即有owner_pid), 反之false
- exclusive_consumer_pid
表示此channel的专用消费者订阅到此队列的Erlang进程Id. 如果没有专用消费者,则为空.
- exclusive_consumer_tag
专用消费者订阅到此队列的Consumer tag.如果没有专用消费者,则为空.
- messages_ready
准备分发给客户端的消息数目.
- messages_unacknowledged
分发到客户端但尚未应答的消息数目.
- messages
准备分发和未应答消息的总和(队列深度).
- messages_ready_ram
驻留在ram中messages_ready的消息数目.
- messages_unacknowledged_ram
驻留在ram中messages_unacknowledged的消息数目.
- messages_ram
驻留在ram中的消息总数.
- messages_persistent
队列中持久化消息的数目(对于瞬时队列总是0).
- message_bytes
队列中所有消息体的大小总和.这不包括消息属性(包括headers) 或任何开销(overhead)。
- message_bytes_ready
类似于message_bytes ,但只统计准备投递给clients的那些消息.
- message_bytes_unacknowledged
类似于message_bytes ,但只统计那些已经投递给clients但还未应答的消息
- message_bytes_ram
类似于message_bytes ,但只统计那些在RAM中的消息
- message_bytes_persistent
类似于message_bytes ,但只统计那些持久化的消息
- head_message_timestamp
如果存在,只显示队列中第1个消息的timestamp属性. 消息的时间戳只出现在分页情况下.
- disk_reads
从队列启动开如,已从磁盘上读取该队列的消息总次数.
- disk_writes
从队列启动开始,已向磁盘队列写消息总次数.
- consumers
消费者数目.
- consumer_utilisation
时间分数(0.0与1.0之间),队列可立即向消费者投递消息. 它可以小于1.0,如果消费者受限于网络堵塞或预提取数量.
- memory
与队列相关的Erlang进程消耗的内存字节数,包括栈,堆以及内部结构.
- slave_pids
如果队列是镜像的,这里给出的是当前slaves的IDs.
- synchronised_slave_pids
如果队列是镜像的,当前slaves的IDs是master同步的- 即它们可在无消息丢失的情况下,接管master.
- state
队列状态.正常情况下是'running', 但如果队列正在同步也可能是"{syncing, MsgCount}". 处于集群下的节点如果掉线了,队列状态交显示'down' (大多数queueinfoitems 将不可用).
如果没有指定queueinfoitems,那么将显示队列名称和队列深度.
例如:
rabbitmqctl list_queues -p /myvhost messages consumers
此命令显示了/myvhost虚拟主机中每个队列的深度和消费者数目.
list_exchanges [-p vhost] [exchangeinfoitem ...]
返回交换器细节.如果没有指定"-p"选项,将返回 / 虚拟主机的细节. "-p" 选项可用来覆盖默认虚拟主机.
exchangeinfoitem 参数用来表示哪些交换器信息要包含在结果中. 结果集中列的顺序将与参数顺序保持一致. exchangeinfoitem 可接受下面的列表中任何值:
- name
交换器名称.
- type
交换器类型(如[direct, topic, headers, fanout]).
- durable
当服务器重启时,交换器是否能复活.
- auto_delete
当不再使用时,交换器是否需要自动删除.
- internal
交换器是否是内部的,即不能由client直接发布.
- arguments
交换器参数
- policy
- 应用到交换器上的策略名称.
如果没有指定exchangeinfoitems,那么将会显示交换器类型和类型
例如:
rabbitmqctl list_exchanges -p /myvhost name type
此命令会显示/myvhost中每个交换器的名称和类型.
list_bindings [-p vhost] [bindinginfoitem ...]
返回绑定细节.默认情况下返回的是 / 虚拟主机上的绑定详情.可使用"-p" 标记来覆盖默认虚拟主机.
bindinginfoitem 参数用来表示结果中包含哪些绑定信息. 结果集中列的顺序将匹配参数的顺序.bindinginfoitem可接受下面列表的任意值:
- source_name
绑定中消息来源的名称. C中非ASCII转义字符.
- source_kind
绑定中消息来源的类别.当前总是exchange. C中非ASCII转义字符.
- destination_name
绑定中消息目的地名称.C中非ASCII转义字符.
- destination_kind
绑定中消息目的地的种类. C中非ASCII转义字符.
- routing_key
绑定的路由键,C中非ASCII转义字符.
- arguments
绑定参数.
如果没有指定bindinginfoitems,将会显示所有上述条目.
例如:
rabbitmqctl list_bindings -p /myvhost exchange_name queue_name
此命令来显示/myvhost虚拟主机上绑定的交换器名称和队列名称.
list_connections [connectioninfoitem ...]
返回TCP/IP连接统计.
connectioninfoitem 参数用来表示在结果中包含哪些连接信息. 结果集中列的顺序将匹配参数的顺序. connectioninfoitem可接受下面列表的任意值:
- pid
与连接相关的Erlang进程ID.
- name
连接的可读名称.
- port
服务器端口.
- host
返回反向DNS获取的服务器主机名称,或 IP地址(反向DNS解析失败) 或者未启用.
- peer_port
Peer 端口.
- peer_host
- 返回反向DNS获取的Peer主机名称,或 IP地址(反向DNS解析失败) 或者未启用.
- ssl
用Boolean来表示连接是否是SSL的.
- ssl_protocol
SSL 协议(如. tlsv1)
- ssl_key_exchange
SSL key exchange 算法 (如 rsa)
- ssl_cipher
SSL cipher 算法 (如aes_256_cbc)
- ssl_hash
SSL hash 函数 (如 sha)
- peer_cert_subject
peer的 SSL 安全证书的主体, RFC4514形式.
- peer_cert_issuer
peer的 SSL安全证书的发行者, RFC4514 形式.
- peer_cert_validity
peer的SSL安全证书的有效期.
- state
连接状态(可为[starting, tuning, opening, running, flow, blocking, blocked, closing, closed]其中一个).
- channels
使用连接的channel数。
- protocol
使用的AMQP协议版本(当前是{0,9,1} 或{0,8,0}). 注意,如果client请求的是AMQP 0-9 连接, 我们会视为AMQP 0-9-1.
- auth_mechanism
使用的SASL认证机制,如PLAIN.
- user
与连接相关的用户名
- vhost
虚拟主机名称,C中非ASCII转义字符.
- timeout
连接超时/协商的心跳间隔,秒为单位.
- frame_max
最大 frame 大小(字节).
- channel_max
- 此连接上channel的最大数目.
- client_properties
连接建立期间由client发送的信息属性.
- recv_oct
Octets已收到.
- recv_cnt
Packets 已收到.
- send_oct
Octets 发送.
- send_cnt
Packets 发送.
- send_pend
发送队列大小.
- connected_at
连接建立的日期和时间,当作timestamp.
如果没有connectioninfoitems, 那么会显示user, peer host, peer port,流量控制和内存块状态的时间
例如:
rabbitmqctl list_connections send_pend port
此命令会显示发送队列的大小以及第个连接的服务器端口.
list_channels [channelinfoitem ...]
返回所有当前channel上的信息,逻辑容器执行大部分 AMQP命令.这将包含最初AMQP连接的部分,以及不同插件和其它扩展创建的channels.
channelinfoitem 参数用来表示在结果集中包含哪些channel信息.结果集中列的顺序将匹配参数的顺序. channelinfoitem 可接受下面列表中的任何一个参数:
- pid
与连接相关的Erlang进程ID.
- connection
channel所属的连接Erlang进程ID.
- name
channel的可读名称.
- number
channel的数目,在一个连接中,它有唯一的标识符.
- user
与channel相关的用户名称.
- vhost
channel操作的虚拟主机.
- transactional
True:如果channel处于事务模式,其它情况为false.
- confirm
True:如果channel是确认模式,其它情况为false.
- consumer_count
在channel中接收消息的逻辑AMQP消费者数目.
- messages_unacknowledged
在channel中消息已投递但还未应答的消息数目.
- messages_uncommitted
在channel中已收到消息但还没有提交事务的消息个数.
- acks_uncommitted
确认收到一个还未提交的事务数。
- messages_unconfirmed
尚未确认已发布消息的数目。在通道不在确认模式下时,这将是0。
- prefetch_count
新消费者QoS预提取限制, 0表示无上限.
- global_prefetch_count
整个channel QoS预提取限制, 0表示无上限.
如果没有指定channelinfoitems,那么将显示pid, user, consumer_count,messages_unacknowledged.
例如:
rabbitmqctl list_channels connection messages_unacknowledged
此命令会显示每个channel中连接进程和未应答消息的数目.
list_consumers [-p vhost]
列举消费者, 即订阅队列的消息流. 每行将打印出由制表符分隔的已订阅队列的名称,创建并管理订阅的channel进程的标识,channel中订阅的consumer tag唯一标识符, boolean值表示投递到此消费者的消息是否需要应答,整数值表示表示预提取限制(为0表示无限制), 以及关于此消费者的任何其它参数.
status
显示 broker 状态信息,如当前Erlang节点上运行的应用程序, RabbitMQ 和 Erlang 的版本信息, OS 名称, 内存和文件描述符统计信息. (查看cluster_status 命令来找出那些节点是集群化的以及正在运行的.)
例如:
rabbitmqctl status
此命令显示了RabbitMQ broker的相关信息.
environment
显示每个运行程序环境中每个变量的名称和值.
report
为所有服务器状态生成一个服务器状态报告,输出应该重定向到一个文件.
例如:
rabbitmqctl report > server_report.txt
此命令创建了一个服务器报告,可将它附着在支持请求的电子邮件中.
eval {expr}
执行任意Erlang表达式.
例如:
rabbitmqctl eval 'node().'
此命令用于返回rabbitmqctl连接的节点名称