天天看點

RabbitMQ管理指令rabbitmqctl詳解

https://www.ywnds.com/?p=4738

學習rabbitmq,原理之後第一個要掌握的就是rabbitmqctl這個指令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl指令了,當然還有HTTP API和UI兩種管理手段。

rabbitmqctl的使用方法:

rabbitmqctl [-n <node>] [-q] <command> [<command options>]

-n node #預設node名稱是"rabbit@server",如果你的主機名是'server.example.com',那麼node名稱是'rabbit@server'; 

-q      #安靜輸出模式,資訊會被禁止輸出;

<command> [<command options>]

1)基本管理指令

# 停止在erlang node上運作的rabbitmq,會使rabbitmq停止;

stop

#停止erlang node上的rabbitmq的應用,但是erlang node還是會繼續運作的;

stop_app            

#啟動erlan node上的rabbitmq的應用; 

start_app           

# 等待rabbitmq服務啟動;

wait <pid_file>     

# 初始化node狀态,會從叢集中删除該節點,從管理資料庫中删除所有資料,例如vhosts等等。在初始化之前rabbitmq的應用必須先停止;

reset               

# 無條件的初始化node狀态;

force_reset         

# 輪轉日志檔案;

rotate_logs <suffix>

2)叢集管理指令

# clusternode表示node名稱,--ram表示node以ram node加入叢集中。預設node以disc node加入叢集,在一個node加入cluster之前,必須先停止該node的rabbitmq應用,即先執行stop_app;

join_cluster <clusternode> [--ram]  

# 顯示cluster中的所有node;

cluster_status                      

# 改變一個cluster中節點的模式,該節點在轉換前必須先停止,不能把一個叢集中唯一的disk node轉化為ram node;

stop_app

change_cluster_node_type disc | ram

start_app

# 遠端移除cluster中的一個node,前提是該node必須處于offline狀态,如果是online狀态,則需要加--offline參數;

forget_cluster_node [--offline]     

# 更新叢集節點;

update_cluster_nodes clusternode    

# 同步鏡像隊列;

sync_queue queue                    

# 取消同步鏡像隊列;

cancel_sync_queue queue

3)使用者管理指令

# 在rabbitmq的内部資料庫添加使用者;

add_user <username> <password>  

# 删除一個使用者;

delete_user <username>  

# 改變使用者密碼(也是改變web管理登陸密碼);

change_password <username> <newpassword>  

# 清除使用者的密碼,該使用者将不能使用密碼登陸,但是可以通過SASL登陸如果配置了SASL認證;

clear_password <username> 

# 設定使用者tags;

set_user_tags <username> <tag> ...

# 列出使用者;

list_users  

# 建立一個vhosts;

add_vhost <vhostpath>  

# 删除一個vhosts;

delete_vhost <vhostpath>  

# 列出vhosts;

list_vhosts [<vhostinfoitem> ...]  

# 針對一個vhosts給使用者賦予相關權限;

set_permissions [-p <vhostpath>] <user> <conf> <write> <read>  

# 清除一個使用者對vhosts的權限;

clear_permissions [-p <vhostpath>] <username>  

# 列出哪些使用者可以通路該vhosts;

list_permissions [-p <vhostpath>]   

# 列出該使用者的通路權限;

list_user_permissions <username>  

set_parameter [-p <vhostpath>] <component_name> <name> <value>

clear_parameter [-p <vhostpath>] <component_name> <key>

list_parameters [-p <vhostpath>]

4)政策管理指令

政策用來控制和修改queues和exchange在叢集中的行為,政策可以應用到vhost。

# 設定一個policy,"name"為該policy的名字,"pattern"為一個正規表達式,所有比對該正規表達式的資源都會應用該 policy,"definition"是policy的定義,為json格式。"priority"為優先權,整數值。

set_policy [-p vhostpath] {name} {pattern} {definition} [priority] 

# 清除一個政策;

clear_policy [-p <vhostpath>] <name>

# 列出已有的政策;

list_policies [-p <vhostpath>]

queues && exchange狀态資訊

# 傳回queue的資訊,如果省略了-p參數,則預設顯示的是"/"vhosts的資訊;

list_queues [-p <vhostpath>] [<queueinfoitem> ...]  

# 傳回exchange的資訊;

list_exchanges [-p <vhostpath>] [<exchangeinfoitem> ...]  

# 傳回綁定資訊;

list_bindings [-p <vhostpath>] [<bindinginfoitem> ...] 

# 傳回連結資訊;

list_connections [<connectioninfoitem> ...]  

# 傳回目前所有的channels;

list_channels [<channelinfoitem> ...]  

# 傳回consumers;

list_consumers [-p <vhostpath>]  

# 顯示broker的狀态;

status  

# 顯示環境參數的資訊;

environment  

# 傳回一個服務狀态report;

report

rabbitmq支援各種插件,開啟插件可以使用rabbitmq-plugins指令

插件的開啟和關閉方法

rabbitmq-plugins <command> [<command options>]

Commands:

  list [-v] [-m] [-E] [-e] [<pattern>]  #顯示所有的的插件,-v顯示版本、-m顯示名稱、-E顯示明确已經開啟的、-e顯示明确的和暗中開啟的;

  enable <plugin> ...                   #開啟一個插件;

  disable <plugin> ...                  #關閉一個插件;

如,開啟rabbitmq web監控界面插件(端口15672)。

rabbitmq-plugins enable rabbitmq_management

1

在debian/ubuntu下插件一般安裝路徑:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.2/plugins

下一篇: 權限