服務器狀態
服務器狀態查詢查詢服務器返回一個結果以制表符分隔的列表. 某些查詢(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連接的節點名稱