1. 程式人生 > >RabbitMQ 安裝配置與管理&整理篇

RabbitMQ 安裝配置與管理&整理篇

安裝最新版本的rabbitmq(3.3.1),並啟用managementplugin後,使用預設的賬號guest登陸管理控制檯,卻提示登陸失敗。翻看官方的release文件後,得知由於賬號guest具有所有的操作許可權,並且又是預設賬號,出於安全因素的考慮,guest使用者只能通過localhost登陸使用,並建議修改guest使用者的密碼以及新建其他賬號管理使用rabbitmq(該功能是在3.3.0版本引入的)。雖然可以以比較猥瑣的方式:將ebin目錄下rabbit.apploopback_users裡的<<"guest">>刪除,並重啟rabbitmq,可通過任意IP

使用guest賬號登陸管理控制檯,但始終是違背了設計者的初衷,再加上以前對這一塊瞭解也不多,因此有必要總結一下。

1.
使用者管理使用者管理包括增加使用者,刪除使用者,檢視使用者列表,修改使用者密碼。相應的命令

(1)
新增一個使用者

rabbitmqctl add_user  Username  Password

(2)
刪除一個使用者

rabbitmqctl delete_user  Username

(3)
修改使用者的密碼

rabbitmqctl change_password  Username  Newpassword

(4)
檢視當前使用者列表

rabbitmqctl list_users

2.
使用者角色按照個人理解,使用者角色可分為五類,超級管理員,監控者,策略制定者,普通管理者以及其他。

(1)
超級管理員(administrator)

可登陸管理控制檯(啟用managementplugin的情況下),可檢視所有的資訊,並且可以對使用者,策略(policy)進行操作。

(2)
監控者(monitoring)

可登陸管理控制檯(啟用managementplugin的情況下),同時可以檢視rabbitmq節點的相關資訊(程序數,記憶體使用情況,磁碟使用情況等)

(3)
策略制定者(policymaker)

可登陸管理控制檯(啟用managementplugin的情況下),同時可以對policy進行管理。但無法檢視節點的相關資訊(
上圖紅框標識的部分)。與administrator的對比,administrator能看到這些內容

(4)
普通管理者(management)

僅可登陸管理控制檯(啟用managementplugin的情況下),無法看到節點資訊,也無法對策略進行管理。

(5)
其他無法登陸管理控制檯,通常就是普通的生產者和消費者。瞭解了這些後,就可以根據需要給不同的使用者設定不同的角色,以便按需管理。設定使用者角色的命令為:

rabbitmqctl set_user_tags  User  Tag

User
為使用者名稱,Tag為角色名(對應於上面的administratormonitoringpolicymakermanagement,或其他自定義名稱)。也可以給同一使用者設定多個角色,例如

rabbitmqctl set_user_tags  hncscwc  monitoring  policymaker

3.
使用者許可權使用者許可權指的是使用者對exchangequeue的操作許可權,包括配置許可權,讀寫許可權。配置許可權會影響到exchangequeue的宣告和刪除。讀寫許可權影響到從queue裡取訊息,向exchange傳送訊息以及queueexchange的繫結(bind)操作。例如:將queue繫結到某exchange上,需要具有queue的可寫許可權,以及exchange的可讀許可權;向exchange傳送訊息需要具有exchange的可寫許可權;從queue裡取資料需要具有queue的可讀許可權。詳細請參考官方文件中"Howpermissions work"部分。相關命令為:

(1)
設定使用者許可權

rabbitmqctl set_permissions  -p  VHostPath  User  ConfP WriteP  ReadP

(2)
檢視(指定hostpath)所有使用者的許可權資訊

rabbitmqctl list_permissions  [-p  VHostPath]

(3)
檢視指定使用者的許可權資訊

rabbitmqctl list_user_permissions  User

(4) 
清除使用者的許可權資訊

rabbitmqctl clear_permissions  [-p VHostPath] User

===============================