Centos7下安裝rabbitmq

一、RabbitMQ簡單介紹
    RabbitMQ就是當前最主流的消息中間件之一。RabbitMQ是一個開源的AMQP實現,服務器端用Erlang語言編寫,支持多種客戶端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用於在分佈式系統中存儲轉發消息,在易用性、擴展性、高可用性等方面表現不俗。

    在目前分佈式的大環境下,成爲非常常用的消息隊列,以下詳細說明怎麼在centos7 上安裝部署rabbitmq,並列舉簡單的維護,方便運維同學能更好的維護rabbitmq的正常運行。由於一般生產環境,不管是erlang還是 rabbitmq都不能隨便進行版本升級,每次升級都是要謹慎的,所以這裏推薦都使用源碼安裝,這樣就固定了版本,不會出現通過yum安裝的話,不小心升級了版本導致服務故障等的問題。當然yum安裝會更簡單,這裏就不做介紹,有興趣的參考官方文檔即可。

 

二、Centos7下安裝rabbitmq

    rabbitmq是erlang語言編寫的,安裝rabbitmq之前,需要先安裝erlang,這裏用erlang的源碼進行安裝,erlang安裝包官網下載地址:http://erlang.org/download/

wget http://erlang.org/download/otp_src_21.1.tar.gz
tar -zxvf otp_src_21.1.tar.gz
cd otp_src_21.1
# 這裏要新建一個erlang文件夾,因爲erlang編譯安裝默認是裝在/usr/local下的bin和lib中,這裏我們將他統一裝到/usr/local/erlang中,方便查找和使用。
mkdir -p /usr/local/erlang
 
# 在編譯之前,必須安裝以下依賴包
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
 
./configure --prefix=/usr/local/erlang
    erlang的編譯需要用到java環境,如果不裝,會報錯如下。

以下的兩個:APPLICATIONS INFORMATION,DOCUMENTATION INFORMATION是正常的,不影響正常編譯。

 

然後,直接執行make && makeinstall 進行編譯安裝

make && make install
 

安裝後,在/usr/local/erlang中就會出現如下:

 

然後將/usr/local/erlang/bin這個文件夾加入到環境變量中,加載以下即可直接使用。

vim /etc/profile
#########   添加如下內容   ###############
PATH=$PATH:/usr/local/erlang/bin
########################################
 
source /etc/profile
 

到此,既安裝完成,直接輸入erl,得到如下圖得安裝成功

 

OK,安裝完erlang後,下面安裝rabbitmq,安裝之前,需要去官網查看一下rabbitmq版本對erlang版本的一個支持情況,官網地址:http://www.rabbitmq.com/which-erlang.html

這裏,我們安裝的erlang是最新的21版本,所以,rabbitmq也要安裝最新的3.7.7,3.7.8。然後在官網上,直接下載該版本的安裝包,爲了方便安裝,最好直接使用編譯好的二進制文件包,即開即用,不用進行復雜的yum配置等。具體可以參考官方文檔:http://www.rabbitmq.com/install-generic-unix.html

 

# 下載源碼包
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.8/rabbitmq-server-generic-unix-3.7.8.tar.xz
# 解壓
tar -xvf rabbitmq-server-generic-unix-3.7.8.tar.xz -C /usr/local/
# 添加環境變量
vim /etc/profile
------  添加如下內容  ------
PATH=$PATH:/usr/local/rabbitmq_server-3.7.8/sbin
 
 
# 重載一下環境變量
source /etc/profile
 
# 添加web管理插件
rabbitmq-plugins enable rabbitmq_management
 
 

默認rabbitmq是沒有配置文件的,需要去官方github上,複製一個配置文件模版過來,最新的3.7.0以上的版本可以使用新的key-value形式的配置文件rabbitmq.conf,和原來erlang格式的advanced.config相結合,解決一下key-value形式不好定義的配置。github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs

由於我這裏安裝的是最新的3.7.8。所以就使用新的配置文件,將配置文件複製到 /usr/local/rabbitmq_server-3.7.8/etc/rabbitmq/ 下。如:

 

ok,然後就可以啓動rabbitmq服務了,其實沒有配置文件也是可以啓動服務的。

# 後臺啓動rabbitmq服務
rabbitmq-server -detached
 

上面,啓用了rabbitmq的管理插件,會有一個web管理界面,默認監聽端口15672,將此端口在防火牆上打開,則可以訪問web界面:

 

使用默認的用戶 guest / guest (此也爲管理員用戶)登陸,會發現無法登陸,報錯:User can only log in via localhost。那是因爲默認是限制了guest用戶只能在本機登陸,也就是隻能登陸localhost:15672。可以通過修改配置文件rabbitmq.conf,取消這個限制: loopback_users這個項就是控制訪問的,如果只是取消guest用戶的話,只需要loopback_users.guest = false 即可。

注意:

{loopback_users, [<<"guest">>]}  

這個是erlang格式的原配置,後面是一個列表,可以自定義添加多個用戶。是用來定義需要被限制登錄的用戶。默認是隻有guest這一個用戶。我們這裏只需要設置loopback_users.guest = false 就可以解除guest的限制了。如圖:

然後,就能登陸到web控制界面:

 

OK,到此rabbitmq就算是裝好了,rabbitmq的webui功能比較齊全,可以做到很多東西,包括常見的用戶管理,權限管理,vhost管理等等。如圖

點擊自身用戶,可以設置用戶的權限

 

總的來說,使用webui已經非常方便了,可以實現基本常用的管理操作。當然除了用web ui,還有用命令行:下面列舉一下常用的一些命令行操作:

服務啓動停止:

啓動: rabbitmq-server -detached

停止: rabbitmqctl stop

插件管理:

插件列表: rabbitmq-plugins list 

啓動插件: rabbitmq-plugins enable XXX   (XXX爲插件名)

停用插件: rabbitmq-plugins disable XXX

用戶管理:

添加用戶: rabbitmqctl add_user username password

刪除用戶: rabbitmqctl delete_user username

修改密碼: rabbitmqctl change_password username newpassword

設置用戶角色: rabbitmqctl set_user_tags username tag

列出用戶: rabbitmqctl list_users

權限管理:

列出所有用戶權限: rabbitmqctl list_permissions

查看制定用戶權限: rabbitmqctl list_user_permissions username

清除用戶權限: rabbitmqctl clear_permissions [-p vhostpath] username

設置用戶權限: rabbitmqctl set_permissions [-p vhostpath] username conf write read

                          conf: 一個正則匹配哪些資源能被該用戶訪問

                          write:一個正則匹配哪些資源能被該用戶寫入

                          read:一個正則匹配哪些資源能被該用戶讀取
--------------------- 
作者:Amos_x 
來源:CSDN 
原文:https://blog.csdn.net/weixin_41004350/article/details/83046842 
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

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