RabbitMQ Centos7 安裝以及使用

1、Rabbit MQLinux 安裝Centos7

Yum安裝socat  

# yum -y install socat

下載erlang軟件包,本文使用erlang-19.0.4版本,下面給出下載鏈接

# wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm

安裝erlang 

# rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm

安裝完成後執行erl命令,出現下圖則代表成功

最後安裝rabbitmq,下載地址如下

#  wget  http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.10/rabbitmq-server-3.6.10-1.el7.noarch.rpm

安裝.....

# rpm -ivh rabbitmq-server-3.6.10-1.el7.noarch.rpm

注意:如果是重裝請記得刪除/var/lib/rabbitmq目錄和/etc/rabbitmq目錄,否則可能服務會起不來

2、Rabbit MQ使用Linux
2.1 啓動rabbitmq
啓動命令              需要到一個其他路徑下運行哦

# systemctl start rabbitmq-server

或者使用:

rabbitmq-server -detached           //啓動rabbitmq,-detached代表後臺守護進程方式啓動

查看rabbitmq 啓動後的情況 ,如圖:

# rabbitmqctl status

其他相關命令

 

啓動服務:rabbitmq-server-detached【/usr/local/rabbitmq/sbin/rabbitmq-server -detached 】

查看狀態:rabbitmqctl status【/usr/local/rabbitmq/sbin/rabbitmqctl status 】

關閉服務:rabbitmqctl stop【/usr/local/rabbitmq/sbin/rabbitmqctl stop 】

列出角色:rabbitmqctl list_users

 

2.2 配置網頁插件:
首先創建目錄,否則可能報錯:

# mkdir /etc/rabbitmq

然後啓用插件:

# rabbitmq-plugins enable rabbitmq_management

 

2.3 配置防火牆
配置linux 端口 15672 網頁管理 5672 AMQP端口:

# firewall-cmd --permanent --add-port=15672/tcp

# firewall-cmd --permanent --add-port=5672/tcp

# systemctl restart firewalld.service

Centos 7 的特性,需要註冊開放的端口進防火牆,並重啓防火牆。

2.4 web端管理界面
現在你在瀏覽器中輸入服務器IP:15672就可以看到RabbitMQ的WEB管理頁面了,是不是很興奮,可是你沒有賬號密碼,別急

http://168.168.88.129:15672/

2.5 配置web端訪問賬號密碼和權限
默認網頁是不允許訪問的,需要增加一個用戶修改一下權限,代碼如下:

//添加用戶,後面兩個參數分別是用戶名和密碼,我這都用superrd了

# rabbitmqctl add_user liuxing liuxing 

# rabbitmqctl set_permissions -p / liuxing ".*" ".*" ".*" //添加權限

# rabbitmqctl set_user_tags liuxing administrator  //修改用戶角色

 

 

2.6 其他配置
開啓用戶遠程訪問

默認情況下,RabbitMQ的默認的guest用戶只允許本機訪問, 如果想讓guest用戶能夠遠程訪問的話,只需要將配置文件中的loopback_users列表置爲空即可,

如下:

{loopback_users, []}

 

另外關於新添加的用戶,直接就可以從遠程訪問的,如果想讓新添加的用戶只能本地訪問,可以將用戶名添加到上面的列表, 如只允許admin用戶本機訪問。

{loopback_users, ["admin"]}

  

RabbitMQ用戶角色及權限控制
1.RabbitMQ的用戶角色分類:
none、management、policymaker、monitoring、administrator
2.RabbitMQ各類角色描述:
none
不能訪問management plugin

management
用戶可以通過AMQP做的任何事外加:
列出自己可以通過AMQP登入的virtual hosts  
查看自己的virtualhosts中的queues,exchanges 和 bindings
查看和關閉自己的channels和 connections
查看有關自己的virtualhosts的“全局”的統計信息,包含其他用戶在這些virtual hosts中的活動。

policymaker 
management可以做的任何事外加:
查看、創建和刪除自己的virtualhosts所屬的policies和parameters

monitoring  
management可以做的任何事外加:
列出所有virtualhosts,包括他們不能登錄的virtualhosts
查看其他用戶的connections和channels
查看節點級別的數據如clustering和memory使用情況
查看真正的關於所有virtualhosts的全局的統計信息

administrator   
policymaker和monitoring可以做的任何事外加:
創建和刪除virtualhosts
查看、創建和刪除users
查看創建和刪除permissions
關閉其他用戶的connections

3.創建用戶並設置角色:
可以創建管理員用戶,負責整個MQ的運維,例如:
$sudo rabbitmqctl add_user  user_admin  passwd_admin  
賦予其administrator角色:
$sudo rabbitmqctl set_user_tags user_admin administrator  

可以創建RabbitMQ監控用戶,負責整個MQ的監控,例如:
$sudo rabbitmqctl add_user  user_monitoring  passwd_monitor  
賦予其monitoring角色:
$sudo rabbitmqctl set_user_tags user_monitoring monitoring  

可以創建某個項目的專用用戶,只能訪問項目自己的virtual hosts
$sudo rabbitmqctl  add_user  user_proj  passwd_proj  
賦予其monitoring角色:
$sudo rabbitmqctl set_user_tags user_proj management  

創建和賦角色完成後查看並確認:
$sudo rabbitmqctl list_users  

4.RabbitMQ權限控制
默認virtual host:"/"
默認用戶:guest 
guest具有"/"上的全部權限,僅能有localhost訪問RabbitMQ包括Plugin,建議刪除或更改密碼。可通過將配置文件中loopback_users置孔來取消其本地訪問的限制:
[{rabbit, [{loopback_users, []}]}]

用戶僅能對其所能訪問的virtualhosts中的資源進行操作。這裏的資源指的是virtual hosts中的exchanges、queues等,操作包括對資源進行配置、寫、讀。配置權限可創建、刪除、資源並修改資源的行爲,寫權限可向資源發送消息,讀權限從資源獲取消息。比如:
exchange和queue的declare與delete分別需要exchange和queue上的配置權限
exchange的bind與unbind需要exchange的讀寫權限
queue的bind與unbind需要queue寫權限exchange的讀權限
發消息(publish)需exchange的寫權限
獲取或清除(get、consume、purge)消息需queue的讀權限
對何種資源具有配置、寫、讀的權限通過正則表達式來匹配,具體命令如下:
set_permissions [-p <vhostpath>] <user> <conf> <write><read>
其中,<conf><write> <read>的位置分別用正則表達式來匹配特定的資源,如'^(amq\.gen.*|amq\.default)$'可以匹配server生成的和默認的exchange,'^$'不匹配任何資源

需要注意的是RabbitMQ會緩存每個connection或channel的權限驗證結果、因此權限發生變化後需要重連才能生效。

爲用戶賦權:
$sudo rabbitmqctl  set_permissions -p /vhost1  user_admin '.*' '.*''.*'  
該命令使用戶user_admin具有/vhost1這個virtual host中所有資源的配置、寫、讀權限以便管理其中的資源
查看權限:
$sudo rabbitmqctl list_user_permissions user_admin  
Listing permissions for user "user_admin" ...  
/vhost1<span style="white-space:pre"> </span>.*<spanstyle="white-space:pre"> </span>.*<spanstyle="white-space:pre"> </span>.*  

$sudo rabbitmqctl list_permissions -p /vhost1  
Listing permissions in vhost "/vhost1" ...  
user_admin<span style="white-space:pre"> </span>.*<span style="white-space:pre"></span>.*<span style="white-space:pre"></span>.* 
--------------------- 
作者:悟能的師兄 
來源:CSDN 
原文:https://blog.csdn.net/yexiaomodemo/article/details/80473411 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章