RabbitMQ 安裝與介面管理

RabbitMQ 安裝與介面管理

RabbitMQ概述

官網://www.rabbitmq.com/

RabbitMQ是部署最廣泛的開源消息代理。

RabbitMQ擁有成千上萬的用戶,是最流行的開源消息代理之一。從T-Mobile到Runtastic, RabbitMQ在全球範圍內廣泛應用於小型初創企業和大型企業。

RabbitMQ是輕量級的,易於部署在premises和雲中。它支援多種消息傳遞協議。RabbitMQ可以以分散式和聯合的方式部署,以滿足高規模、高可用性的需求。

RabbitMQ運行在許多作業系統和雲環境上,並為最流行的語言提供了廣泛的開發工具。

安裝準備

下載Rabbit

下載地址://www.rabbitmq.com/download.html

1

這裡以Linux系統進行舉例,我使用的是CentOS7的鏡像,可以選擇對應版本

下載Erlang

RabbitMQ是基於Erlang開發,所以想要使用RabbitMQ,需要安裝Erlang

查看對應版本的Erlang

網址://www.rabbitmq.com/which-erlang.html

2

該處是對應的,不可以讓Erlang版本超出範圍

下載地址://www.erlang-solutions.com/

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版本

3

4

5

安裝socat

yum install -y socat

6

安裝RabbitMQ

rpm -Uvh rabbitmq-server-3.8.14-1.el7.noarch.rpm

yum install rabbitmq-server -y

7

測試是否安裝成功

# 啟動服務
systemctl start rabbitmq-server

# 查看服務狀態,如圖
systemctl status rabbitmq-server.service

# 開機自啟動
systemctl enable rabbitmq-server

# 停止服務
systemctl stop rabbitmq-server

8

Docker安裝

更新yum

yum update               #yum 更新到最新

yum install -y yum-utils device-mapper-persistent-data lvm2    #安裝需要的軟體包

yum-config-manager --add-repo //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": ["//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   #啟動,最後的一串和容器中名字對應

16

這時候,訪問路徑: 你的IP地址:15672 (帳號密碼:guest)

17

小提示

如果你關機時,docker中rabbitmq容器沒有關閉,再次開啟時可能出現埠錯誤 ,記得關閉容器

docker ps          #查看容器

docker stop xxx    #關閉容器

RabbitMQ介面管理

默認情況下,rabbitmq是沒有安裝web端的客戶端插件,需要安裝才可以生效

rabbitmq-plugins enable rabbitmq_management

9


之後重啟服務

systemctl restart rabbitmq-server

之後可以進入網址:你的ip地址:15672 (例如:192.168.57.129:15672

linux ip地址查看方法:

ifconfig

10

正常進入的頁面為:

11

說明: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 

授權帳號和密碼

用戶級別 ( 設置操作許可權時使用 ):

  1. administrator:可以登錄控制台、查看所有資訊、可以對 rabbitmq進行管理
  2. monitoring:監控者 登錄控制台,查看所有資訊
  3. policymaker:策略制定者 登錄控制台,指定策略
  4. managment 普通管理員 登錄控制台

最後會進行解析以上級別

rabbitmqctl add_user admin admin              #新增 admin 用戶

rabbitmqctl set_user_tags admin administrator #設置用戶操作許可權

13

rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"    #為用戶添加資源許可權

14、

這時候使用 admin 用戶 就可以登陸成功了

15

小結

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 hostsqueuesexchangesbindings資訊
  • 查看和關閉自己的 channelsconnections
  • 查看有關自己的虛擬機節點 virtual hosts 的統計資訊,包括其他用戶在這個節點 virtual hosts 中的活動資訊,

3.Policymaker

  • 包含management所有許可權
  • 查看和創建和刪除自己的virtual hosts所屬的policiesparameters資訊.

4.Monitoring

  • 包含 management 所有許可權
  • 羅列出所有的virtual hosts,包括不能登錄的 virtual hosts.
  • 查看其他用戶的connectionschannels資訊
  • 查看節點級別的數據如clusteringmemory使用情況
  • 查看所有的virtual hosts的全局統計資訊

5.Administrator

  • 最高許可權
  • 可以創建和刪除virtual hosts
  • 可以查看創建和刪除users
  • 查看創建permisssions
  • 關閉所有用戶的connections

個人部落格為:
MoYu’s HomePage

Tags: