0 環境
CentOS7
RabbitMQ 3.6.5
erlang 18.3
socat
rabbitmq是使用erlang語言編寫的,所以需要先安裝erlang,其次rabbitmq安裝依賴於socat,所以三個安裝包都需要下載。另外rabbitmq對於erlang的版本是有要求的,這個可以去官網檢視。
0.1 Mac本地檔案上傳
通過ssh連線本地虛擬機器中的CentOS 7 伺服器,將所需安裝檔案上傳至Linux伺服器
0.2 Linux伺服器下直接執行下載命令
wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
複製程式碼
1 安裝基礎依賴
2 安裝rpm包
一定要按順序!!!
-
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm
-
rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
-
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm
3 修改配置
- RabbitMQ的核心配置檔案(顯然就是個JSON格式檔案),在這裡可以檢視到rabbitmq預設監聽的埠號是5672
- 找到
loopback_users
配置項,去除guest,然後儲存退出
4 RabbitMQ 基本命令
-
啟動服務
-
停止服務的
rabbitmqctl stop
複製程式碼
檢視程式:lsof -i:5672
管理外掛:rabbitmq-plugins enable rabbitmq-management
5 RabbitMQ 管控臺
- 啟用管控臺
預設啟用埠是15672,通過ip+埠進行訪問,如
最好先關閉下iptables規則
訪問成功後需要輸入使用者名稱和密碼進行登入,統一輸入guest
即可.
但是在該版本,發現網上此法並不行!
- rabbitmq的web控制檯使用預設賬戶guest登入失敗——login failed
問題背景
rabbitmq的預設賬戶和密碼都是guest,安裝完rabbitmq之後可以使用guest/guest登入。
而通過web控制檯登入有以下兩種形式:
- 本地登陸(即在rabbitmq安裝的機器上登陸——位址列輸入http://localhost:15672)
- 遠端登陸(即在其他機器上通過指定IP地址登陸——位址列輸入http://:15672)
但是,在rabbitmq3.3.0之後,出於安全性考慮,預設情況下rabbitmq的guest/guest賬戶將不能實現遠端登入,只能在本地登入.
解決方案
新建賬戶
預設的guest賬戶無法遠端登陸,並不意味著其他使用者也無法遠端登入. 所以,可以通過如下命令新增使用者、設定使用者角色以及賦予使用者許可權實現遠端登陸:
新增使用者
$ rabbitmqctl add_user Username Password
複製程式碼
RabbitMQ的使用者角色分類
none、management、policymaker、monitoring、administrator
-
none 不能訪問 management plugin
-
management 使用者可以通過AMQP做的任何事外加:
- 列出自己可以通過AMQP登入的virtual hosts
- 檢視自己的virtual hosts中的queues, exchanges 和 bindings
- 檢視和關閉自己的channels 和 connections
- 檢視有關自己的virtual hosts的“全域性”的統計資訊,包含其他使用者在這些virtual hosts中的活動。
-
policymaker management可以做的任何事外加:
- 檢視、建立和刪除自己的virtual hosts所屬的policies和parameters
-
monitoring management可以做的任何事外加:
- 列出所有virtual hosts,包括他們不能登入的virtual hosts
- 檢視其他使用者的connections和channels
- 檢視節點級別的資料如clustering和memory使用情況
- 檢視真正的關於所有virtual hosts的全域性的統計資訊
-
administrator policymaker和monitoring可以做的任何事外加:
- 建立和刪除virtual hosts
- 檢視、建立和刪除users
- 檢視建立和刪除permissions
- 關閉其他使用者的connections
-
設定使用者
administrator
角色 使用者角色可以分為超級管理員administrator、監控者monitoring、策略制定者policymaker、普通管理者management等
$ rabbitmqctl set_user_tags <使用者名稱> administrator
複製程式碼
-
修改密碼
-
檢視使用者列表
-
刪除賬戶
-
賦予使用者許可權
使用者許可權包括配置許可權、讀許可權和寫許可權 配置許可權會影響到exchange、queue的宣告和刪除。讀寫許可權會影響到從queue裡取訊息、向exchange傳送訊息以及queue和exchange的繫結操作 比如,將queue繫結到某個exchange上,需要具有queue的寫許可權以及exchange的讀許可權;向exchange傳送訊息需要具有exchange的寫許可權;從queue裡取訊息需要具有queue的讀許可權。
-
檢視使用者授權
-
清除許可權資訊
rabbitmqctl clear_permissions [-p VHostPath] ymq
rabbitmqctl clear_permissions -p / JavaEdge
Clearing permissions for user "JavaEdge" in vhost "/"
複製程式碼
此時,就可以通過你新增的新使用者/密碼來進行rabbitmq的遠端登入了
聯絡我
1.Java開發技術交流Q群2.完整部落格連結
3.個人知乎
4.gayhub