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

