RabbitMQ管理命令rabbitmqctl詳解


https://www.ywnds.com/?p=4738
學習rabbitmq,原理之後第一個要掌握的就是rabbitmqctl這個命令的用法了,rabbitmq的管理功能最全的就是rabbitmqctl命令了,當然還有HTTP API和UI兩種管理手段。
rabbitmqctl的使用方法:

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

-n node #默認node名稱是"rabbit@server",如果你的主機名是'server.example.com',那麼node名稱是'rabbit@server'; 
-q      #安靜輸出模式,信息會被禁止輸出;

-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>

# 停止在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

# 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>]

# 在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>]

# 設置一個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

# 返回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-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
rabbitmq-plugins enable rabbitmq_management
在debian/ubuntu下插件一般安裝路徑:/usr/lib/rabbitmq/lib/rabbitmq_server-3.2.2/plugins

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章