RabbitMQ 安裝與介面管理
RabbitMQ概述
RabbitMQ是部署最廣泛的開源訊息代理。
RabbitMQ擁有成千上萬的使用者,是最流行的開源訊息代理之一。從T-Mobile到Runtastic, RabbitMQ在全球範圍內廣泛應用於小型初創企業和大型企業。
RabbitMQ是輕量級的,易於部署在premises和雲中。它支援多種訊息傳遞協議。RabbitMQ可以以分散式和聯合的方式部署,以滿足高規模、高可用性的需求。
RabbitMQ執行在許多作業系統和雲環境上,併為最流行的語言提供了廣泛的開發工具。
安裝準備
下載Rabbit
這裡以Linux
系統進行舉例,我使用的是CentOS7的映象,可以選擇對應版本
下載Erlang
RabbitMQ是基於Erlang開發,所以想要使用RabbitMQ,需要安裝Erlang
檢視對應版本的Erlang
該處是對應的,不可以讓Erlang版本超出範圍
Linux安裝
[root@localhost ~]# mkdir -p /usr/rabbitmq # 在/usr資料夾下建立rabbitmq資料夾
[root@localhost ~]# cd /usr/rabbitmq # 進入/usr/rabbitmq 資料夾下
[root@localhost rabbitmq]#
使用X-ftp
將下載的檔案移動到該檔案下
安裝Erlang
rpm -Uvh erlang-23.3.1-1.el7.x86_64.rpm # 後面的檔名改為下載的檔名
yum install -y erlang #安裝erlang , 這裡可能會報錯
yum list | grep erlang # 查詢erlang在系統中安裝包的名字 , 如果顯示installed 不用執行上面的安裝
erl -v #檢視erlang版本
安裝socat
yum install -y socat
安裝RabbitMQ
rpm -Uvh rabbitmq-server-3.8.14-1.el7.noarch.rpm
yum install rabbitmq-server -y
測試是否安裝成功
# 啟動服務
systemctl start rabbitmq-server
# 檢視服務狀態,如圖
systemctl status rabbitmq-server.service
# 開機自啟動
systemctl enable rabbitmq-server
# 停止服務
systemctl stop rabbitmq-server
Docker安裝
更新yum
yum update #yum 更新到最新
yum install -y yum-utils device-mapper-persistent-data lvm2 #安裝需要的軟體包
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo #設定yum源為阿里雲
安裝Docker
yum install docker-ce -y #安裝docker
docker -v #檢視docker版本
配置Docker映象
[root@localhost rabbitmq]# mkdir -p /etc/docker
[root@localhost rabbitmq]# tee /etc/docker/daemon.json <<-'EOF'
>
> {
> "registry-mirrors": ["https://9vqg1xqp.mirror.aliyuncs.com"]
> }
> EOF
重啟、檢視docker狀態
systemctl daemon-reload
systemctl restart docker #重啟docker
systemctl status daocker #檢視docker狀態
docker images #檢視docker映象
Docker常用命令
#啟動docker:
systemctl start docker
#停止docker:
systemctl stop docker
#重啟docker:
systemctl restart docker
#檢視docker狀態
systemctl status docker
#開機啟動
systemctl enable docker
systemctl unenable docker
#檢視docker概要資訊
docker info
#檢視docker幫助文件
docker --help
開始安裝
獲取rabbit映象
docker pull rabbitmq:management
建立並執行容器
docker run -di --name=myrabbit -p 15672:15672 rabbitmq:management
啟動服務
docker ps -a #檢視容器
docker images #檢視映象
docker start 3da6ff4c1cd4 #啟動,最後的一串和容器中名字對應
這時候,訪問路徑: 你的IP地址:15672 (賬號密碼:guest)
小提示
如果你關機時,docker中rabbitmq容器沒有關閉,再次開啟時可能出現埠錯誤 ,記得關閉容器
docker ps #檢視容器 docker stop xxx #關閉容器
RabbitMQ介面管理
預設情況下,rabbitmq是沒有安裝web端的客戶端外掛,需要安裝才可以生效
rabbitmq-plugins enable rabbitmq_management
之後重啟服務
systemctl restart rabbitmq-server
之後可以進入網址:你的ip地址:15672 (例如:192.168.57.129:15672
)
linux ip地址檢視方法:
ifconfig
正常進入的頁面為:
說明:rabbitmq有一個預設賬號和密碼是:
guest
, 預設情況只能在本機(localhost
)下訪問,所以需要新增一個遠端登入的使用者
首先關閉防火牆,依次輸入即可
systemctl disable firewalld
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
systemctl stop firewalld
授權賬號和密碼
使用者級別 ( 設定操作許可權時使用 ):
- administrator:可以登入控制檯、檢視所有資訊、可以對 rabbitmq進行管理
- monitoring:監控者 登入控制檯,檢視所有資訊
- policymaker:策略制定者 登入控制檯,指定策略
- managment 普通管理員 登入控制檯
最後會進行解析以上級別
rabbitmqctl add_user admin admin #新增 admin 使用者
rabbitmqctl set_user_tags admin administrator #設定使用者操作許可權
rabbitmqctl set_permissions -p / admin ".*" ".*" ".*" #為使用者新增資源許可權
這時候使用 admin
使用者 就可以登陸成功了
小結
rabbitmqctl add_user 賬號 密碼 #新增新使用者
rabbitmqctl set_user_tags 賬號 administrator #設定使用者操作許可權 ,administrator可更改
rabbitmqctl change_password Username Newpassword #修改密碼
rabbitmqctl delete_user Username #刪除使用者
rabbitmqctl list_users #檢視使用者清單
rabbitmqctl.bat set_permissions -p /使用者名稱 ".*" "." ".*" #為使用者新增資源許可權
RabbitMQ使用者級別
1.nono
- 不能訪問
management plugin
2.management
- 檢視自己相關節點資訊
- 列出自己可以通過
AMQP
登入的虛擬機器 - 檢視自己的虛擬機器節點
virtual hosts
的queues
,exchanges
和bindings
資訊 - 檢視和關閉自己的
channels
和connections
- 檢視有關自己的虛擬機器節點
virtual hosts
的統計資訊,包括其他使用者在這個節點virtual hosts
中的活動資訊,
3.Policymaker
- 包含
management
所有許可權 - 檢視和建立和刪除自己的
virtual hosts
所屬的policies
和parameters
資訊.
4.Monitoring
- 包含
management
所有許可權 - 羅列出所有的
virtual hosts
,包括不能登入的virtual hosts
. - 檢視其他使用者的
connections
和channels
資訊 - 檢視節點級別的資料如
clustering
和memory
使用情況 - 檢視所有的
virtual hosts
的全域性統計資訊
5.Administrator
- 最高許可權
- 可以建立和刪除
virtual hosts
- 可以檢視建立和刪除
users
- 檢視建立
permisssions
- 關閉所有使用者的
connections
個人部落格為:
MoYu's HomePage