在CentOS7上安裝RabbitMQ

在 CentOS7 上進行 RabbitMQ 的安裝

安裝 erlang

1. rpm -Uvh http://download.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
2. yum install erlang
3. 第一步若是出現錯誤的話,能夠忽略進行第二步的安裝,在安裝過程當中一直選擇y便可
4. 官網 : http://www.rabbitmq.com/install-rpm.html#package-dependencies

RabbitMQ 的安裝

1. 先下載rpm : 
    wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
2. 下載完成後安裝:
    yum install rabbitmq-server-3.6.6-1.el7.noarch.rpm 
3. 完成後啓動服務:
    service rabbitmq-server start
4. 能夠查看服務狀態:
    service rabbitmq-server status
5. 開放端口,並重啓
    firewall-cmd --zone=public --add-port=5672/tcp --permanent
    firewall-cmd --reload 
6. 開啓管理UI:
    rabbitmq-plugins enable rabbitmq_management
    firewall-cmd --zone=public --add-port=15672/tcp --permanent
    firewall-cmd --reload

遇到的問題

1. 因爲我使用的是阿里雲服務器部署的rabbitMQ,在使用 15672訪問的時候,用 guest/guest 登陸發現一直登陸失敗
翻看官方的release文檔後,得知因爲帳號guest具備全部的操做權限,而且又是默認帳號,出於安全因素的考慮,
guest用戶只能經過localhost登錄使用,並建議修改guest用戶的密碼以及新建其餘帳號管理使用rabbitmq(該功能是在3.3.0版本引入的)。
    解決辦法 : 
    1. 將ebin目錄下rabbit.app中loopback_users裏的<<"guest">>刪除,並重啓rabbitmq,可經過任意IP使用guest帳號登錄管理控制檯(不建議)
       具體操做 : 查找 rabbit.app(find / -name rabbit.app),找到路徑,進入修改rabbit.app
    2. 新增用戶

RabbitMQ 詳細管理

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)

可登錄管理控制檯(啓用management plugin的狀況下),可查看全部的信息,而且能夠對用戶,策略(policy)進行操做。

(2) 監控者(monitoring)

可登錄管理控制檯(啓用management plugin的狀況下),同時能夠查看rabbitmq節點的相關信息(進程數,內存使用狀況,磁盤使用狀況等)

(3) 策略制定者(policymaker)

可登錄管理控制檯(啓用management plugin的狀況下), 同時能夠對policy進行管理。但沒法查看節點的相關信息

與administrator的對比,administrator能看到這些內容

(4) 普通管理者(management)

僅可登錄管理控制檯(啓用management plugin的狀況下),沒法看到節點信息,也沒法對策略進行管理。

(5) 其餘

沒法登錄管理控制檯,一般就是普通的生產者和消費者。

瞭解了這些後,就能夠根據須要給不一樣的用戶設置不一樣的角色,以便按需管理。

設置用戶角色的命令爲:

rabbitmqctl  set_user_tags  User  Tag

User爲用戶名, Tag爲角色名(對應於上面的administrator,monitoring,policymaker,management,或其餘自定義名稱)。

也能夠給同一用戶設置多個角色,例如

rabbitmqctl  set_user_tags  hncscwc  monitoring  policymaker

3. 用戶權限

用戶權限指的是用戶對exchange,queue的操做權限,包括配置權限,讀寫權限。配置權限會影響到exchange,queue的聲明和刪除。讀寫權限影響到從queue裏取消息,向exchange發送消息以及queue和exchange的綁定(bind)操做。

例如: 將queue綁定到某exchange上,須要具備queue的可寫權限,以及exchange的可讀權限;向exchange發送消息須要具備exchange的可寫權限;從queue裏取數據須要具備queue的可讀權限。詳細請參考官方文檔中"How permissions 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
相關文章
相關標籤/搜索