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
- 找到
配置項,去除guest,然後儲存退出loopback_users
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、監控者monitoring、政策制定者policymaker、普通管理者management等.administrator
$ 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的遠端登入了