RabbitMQ的一些基本操作

# 添加開機(jī)啟動(dòng)RabbitMQ服務(wù)
systemctl enable rabbitmq-server.service

#查看服務(wù)狀態(tài)
systemctl status  rabbitmq-server.service
 
#啟動(dòng)服務(wù) 
systemctl start rabbitmq-server.service
 
#停止服務(wù)
systemctl stop rabbitmq-server.service
#查看當(dāng)前所有用戶
rabbitmqctl list_users
 
#查看默認(rèn)guest用戶的權(quán)限
rabbitmqctl list_user_permissions guest
 
#由于RabbitMQ默認(rèn)的賬號(hào)用戶名和密碼都是guest。為了安全起見, 先刪掉默認(rèn)用戶
rabbitmqctl delete_user guest
 
#添加新用戶
rabbitmqctl add_user username password

#修改用戶的密碼
rabbitmqctl  change_password  Username  Newpassword
 
#設(shè)置用戶tag
rabbitmqctl set_user_tags username administrator
 
#賦予用戶默認(rèn)vhost的全部操作權(quán)限
rabbitmqctl set_permissions -p / username ".*" ".*" ".*"
 
#查看用戶的權(quán)限
rabbitmqctl list_user_permissions username

更多關(guān)于rabbitmqctl的使用,可以參考幫助手冊(cè)。

開啟web管理接口

如果只從命令行操作RabbitMQ,多少有點(diǎn)不方便。幸好RabbitMQ自帶了web管理界面,只需要啟動(dòng)插件便可以使用。

rabbitmq-plugins enable rabbitmq_management

訪問: http://localhost:15672

配置RabbitMQ

關(guān)于RabbitMQ的配置,可以下載RabbitMQ的配置文件模板/etc/rabbitmq/rabbitmq.config, 然后按照需求更改即可。
關(guān)于每個(gè)配置項(xiàng)的具體作用,可以參考官方文檔

開啟用戶遠(yuǎn)程訪問

默認(rèn)情況下,RabbitMQ的默認(rèn)的guest用戶只允許本機(jī)訪問, 如果想讓guest用戶能夠遠(yuǎn)程訪問的話,只需要將配置文件中的loopback_users列表置為空即可,如下:

{loopback_users, []}

另外關(guān)于新添加的用戶,直接就可以從遠(yuǎn)程訪問的,如果想讓新添加的用戶只能本地訪問,可以將用戶名添加到上面的列表, 如只允許admin用戶本機(jī)訪問。

{loopback_users, ["admin"]}

restart …

關(guān)于用戶角色

按照個(gè)人理解,用戶角色可分為五類,超級(jí)管理員, 監(jiān)控者, 策略制定者, 普通管理者以及其他。

  1. 超級(jí)管理員(administrator)
    可登陸管理控制臺(tái)(啟用management plugin的情況下),可查看所有的信息,并且可以對(duì)用戶,策略(policy)進(jìn)行操作。

  2. 監(jiān)控者(monitoring)
    可登陸管理控制臺(tái)(啟用management plugin的情況下),同時(shí)可以查看rabbitmq節(jié)點(diǎn)的相關(guān)信息(進(jìn)程數(shù),內(nèi)存使用情況,磁盤使用情況等)

  3. 策略制定者(policymaker)
    可登陸管理控制臺(tái)(啟用management plugin的情況下), 同時(shí)可以對(duì)policy進(jìn)行管理。但無法查看節(jié)點(diǎn)的相關(guān)信息。
    與administrator的對(duì)比,administrator能看到這些內(nèi)容

  4. 普通管理者(management)
    僅可登陸管理控制臺(tái)(啟用management plugin的情況下),無法看到節(jié)點(diǎn)信息,也無法對(duì)策略進(jìn)行管理。

  5. 其他
    無法登陸管理控制臺(tái),通常就是普通的生產(chǎn)者和消費(fèi)者。

設(shè)置用戶角色

了解了這些后,就可以根據(jù)需要給不同的用戶設(shè)置不同的角色,以便按需管理。

設(shè)置用戶角色的命令為:

rabbitmqctl set_user_tags User Tag

User為用戶名, Tag為角色名(對(duì)應(yīng)于上面的administrator,monitoring,policymaker,management,或其他自定義名稱)。

也可以給同一用戶設(shè)置多個(gè)角色,例如

rabbitmqctl set_user_tags hncscwc monitoring policymaker

用戶權(quán)限

用戶權(quán)限指的是用戶對(duì)exchange,queue的操作權(quán)限,包括配置權(quán)限,讀寫權(quán)限。配置權(quán)限會(huì)影響到exchange,queue的聲明和刪除。讀寫權(quán)限影響到從queue里取消息,向exchange發(fā)送消息以及queue和exchange的綁定(bind)操作。

例如: 將queue綁定到某exchange上,需要具有queue的可寫權(quán)限,以及exchange的可讀權(quán)限;向exchange發(fā)送消息需要具有exchange的可寫權(quán)限;從queue里取數(shù)據(jù)需要具有queue的可讀權(quán)限。詳細(xì)請(qǐng)參考官方文檔中"How permissions work"部分。

相關(guān)命令為:

(1) 設(shè)置用戶權(quán)限

rabbitmqctl  set_permissions  -p  VHostPath  User  ConfP  WriteP  ReadP

(2) 查看(指定hostpath)所有用戶的權(quán)限信息

rabbitmqctl  list_permissions  [-p  VHostPath]

(3) 查看指定用戶的權(quán)限信息

rabbitmqctl  list_user_permissions  User

(4)  清除用戶的權(quán)限信息

rabbitmqctl  clear_permissions  [-p VHostPath]  User
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容