1. 程式人生 > >CentOS7下RabbitMQ服務安裝配置

CentOS7下RabbitMQ服務安裝配置

一:環境安裝

  這些開源性的產品沒多少是建議使用者部署在windows上的,不過rabbitmq除外,為了更加貼近實際的應用場景,我們這裡還是部署在centos7上。

1. 安裝erlang

    剛才也說了,rabbitmq只不過是erlang開發的一個成品而已,所以我們首先一定要安裝好erlang環境才可以。。。http://www.erlang.org/downloads

當然你也可以wget一下這個下載連結也沒毛病。。。

wget http://10.65.255.231/IXCb7261d0152b8aa2ad1f25a55bf0e761f/download/otp_src_19.1.tar.gz

然後解壓一下,修改一下資料夾叫做erlang,如圖:

 接下來我們要安裝各種erlang需要的依賴庫,包括gcc, kernel-devel,ncurses-devel等等,如下:

安裝依賴檔案:

  yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto

     yum install libtool
     yum install libtool-ltdl-devel


[[email protected] ~]# yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel unixODBC-devel

稍等片刻之後,我們就安裝好了,接下來我們深入到erlang資料夾下,進行configure安裝環境配置,--prefix=/usr/erlang 是說明將當前的安裝放在

usr/erlang資料夾下。

[[email protected] erlang]# ./configure --prefix=/usr/erlang --without-javac 

這裡一定要看清楚了,我開啟的Terminal已經是在erlang資料夾下面的哦。

複製程式碼
*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************

jinterface     : Java compiler disabled by user

*********************************************************************
*********************************************************************
**********************  APPLICATIONS INFORMATION  *******************
*********************************************************************

wx             : wxWidgets not found, wx will NOT be usable

*********************************************************************
*********************************************************************
**********************  DOCUMENTATION INFORMATION  ******************
*********************************************************************

documentation  : 
                 fop is missing.
                 Using fakefop to generate placeholder PDF files.

*********************************************************************
[
[email protected]
erlang]#
複製程式碼

ok,如果你安裝順利的話,就是上面這樣的一個介面,這就說明安裝通過了,接下來我們可以執行make命令進行編譯。

[[email protected] erlang]# make

稍等片刻後,如果安裝順利的話,我們就可以執行make install 即可。

[[email protected] erlang]# make install

然後就可以看到,在/usr 資料夾下面就有一個編譯好的erlang資料夾,不信你看。

到現在為止,erlang就已經安裝好了,是不是有一種衝動加上好吊的樣子呢??? 現在就拭目以待的啟動吧~~~

[[email protected] bin]# ./erl

二:安裝Rabbitmq環境

     rabbitmq安裝起來就非常簡單了,因為在官網上不光提供了source模式的原始碼,也提供了binary的二進位制檔案,這裡為了方便,我們就下載

 接下來我們把這個binary下載下來後,也放到/usr 資料夾下面,可以看到這個rabbitmq-server 就是rabbitmq的啟動程式,如下圖:

然後你可以興致勃勃的啟動,恭喜你,遇到erl command not found錯誤。。。

[[email protected] sbin]# ./rabbitmq-server
./rabbitmq-server: line 67: erl: command not found
[[email protected] sbin]# 

那這個問題該怎麼解決呢??? 其實很簡單,我只需要配置下erlang的環境即可,為了方便,我也可以將rabbimq的環境變數一起配置了。。。

當然centos中環境變數檔案就是 /etc/profile,不信你看哦。。。

#set erlang environment
export PATH=$PATH:/usr/erlang/bin

#set rabbitmq environment
export PATH=$PATH:/usr/rabbitmq/sbin

然後在terminal中執行以下命令 source  /etc/profile  讓配置在當前ternimal中生效,生效之後,就可以在terminal上執行erl就可以啦。。。

複製程式碼
[[email protected] sbin]# ./rabbitmq-server
./rabbitmq-server: line 67: erl: command not found
[[email protected] sbin]# source /etc/profile
[[email protected] sbin]# erl
Erlang/OTP 19 [erts-8.1] [source] [64-bit] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V8.1  (abort with ^G)
1> 
複製程式碼

同樣現在也可以在terminal上直接執行rabbitmq-server 。。。 不過你一定要記住,這個source只在當前的terminal上有效,除非重啟centos全域性生效。

複製程式碼
[[email protected] Desktop]# source /etc/profile
[[email protected] Desktop]# rabbitmq-server

              RabbitMQ 3.6.5. Copyright (C) 2007-2016 Pivotal Software, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: /usr/rabbitmq/var/log/rabbitmq/[email protected]
  ######  ##        /usr/rabbitmq/var/log/rabbitmq/[email protected]sasl.log
  ##########
              Starting broker...
 completed with 0 plugins.
複製程式碼

三:開啟web監控

    rabbitmq最牛逼的一個地方就是自帶一個高配的監控,所以必須將其啟動,你只需要啟動外掛 rabbitmq_management 就可以了。。。。

[[email protected] Desktop]# rabbitmq-plugins enable rabbitmq_management

然後鍵入127.0.0.1:15672 就可以看到啦。。使用guest, guest 登陸,是不是好吊的樣子撒!

遠端訪問配置

由於guest這個使用者,只能在本地訪問,所以我們要新增一個使用者並賦予許可權:

新增使用者:rabbitmqctl add_user admin admin

新增許可權:rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

修改使用者角色rabbitmqctl set_user_tags admin administrator

然後就可以遠端訪問了,然後可直接配置使用者許可權等資訊。

到此,就可以通過http://ip:15672 使用admin admin 進行登陸了

直接用上面這個方法安裝即可,


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

伺服器作業系統是CentOS7。具體步驟如下:

  安裝依賴檔案:

  yum install gcc glibc-devel make ncurses-devel openssl-devel xmlto

     yum install libtool
     yum install libtool-ltdl-devel

此處可能還依賴其他的

  1.Erlang安裝配置

  下載安裝包,地址http://www.erlang.org/downloads,我選擇的是otp_src_19.2.tar.gz

然後解壓檔案:

[[email protected] rabbitmq]# tar -xzvf otp_src_19.2.tar.gz
[[email protected] rabbitmq]# cdotp_src_19.2.tar.gz/

  配置安裝路徑編譯程式碼:

[[email protected] otp_src_18.3]# ./configure --prefix=/opt/erlang

  執行編譯結果:

[[email protected] otp_src_18.3]# make && make install

  完成後進入/opt/erlang檢視執行結果

[[email protected] rabbitmq]# cd /opt/erlang/
[[email protected] erlang]# erl
Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V7.3  (abort with ^G)
1>

  當出現以上資訊時表示安裝完成。然後輸入’halt().’退出即可。

  然後在配置Erlang環境變數,vi /etc/profile檔案,增加下面的環境變數:

#set erlang environment
export PATH=$PATH:/opt/erlang/bin


  source  /etc/profile使得檔案生效

  在安裝Erlang過程中,可能會遇到以下問題,一般都是因為系統中缺少相應的包引起的,缺少什麼包直接yum安裝即可。

  2.下載安裝RabbitMq

[[email protected] rabbitmq]# wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-generic-unix-3.6.6.tar

rpm --import https://www.rabbitmq.com/rabbitmq-signing-key-public.asc

解壓檔案

[[email protected] rabbitmq]# xz -d rabbitmq-server-generic-unix-3.6.6.tar.xz
[[email protected] rabbitmq]# tar -xvf rabbitmq-server-generic-unix-3.6.6.tar  -C /opt

解壓後進入資料夾/opt發現多了個資料夾rabbitmq-server-generic-unix-3.6.1 ,重新命名為rabbitmq以便記憶。

  然後在配置rabbitmq環境變數,vi /etc/profile檔案,增加下面的環境變數:

#set rabbitmq environment
export PATH=$PATH:/opt/rabbitmq/sbin

  source  /etc/profile使得檔案生效

  3.RabbitMQ服務啟動關閉

  以上就已經完成了RabbitMq的安裝,怎麼啟動服務呢?

  啟動服務:

[[email protected] rabbitmq]# cd sbin/
[[email protected] sbin]# ./rabbitmq-server -detached &

檢視服務狀態:

[[email protected] sbin]# ./rabbitmqctl status
Status of node [email protected] ...
[{pid,11849},
 {running_applications,
    [{rabbitmq_management,"RabbitMQ Management Console","3.6.1"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.6.1"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.6.1"},
      {webmachine,"webmachine","1.10.3"},
      {amqp_client,"RabbitMQ AMQP Client","3.6.1"},
      {mochiweb,"MochiMedia Web Server","2.13.0"},
      {syntax_tools,"Syntax tools","1.7"},
      {ssl,"Erlang/OTP SSL application","7.3"},
      {public_key,"Public key infrastructure","1.1.1"},
      {asn1,"The Erlang ASN1 compiler version 4.0.2","4.0.2"},
      {crypto,"CRYPTO","3.6.3"},
      {compiler,"ERTS  CXC 138 10","6.0.3"},
      {inets,"INETS  CXC 138 49","6.2"},
      {rabbit,"RabbitMQ","3.6.1"},
      {mnesia,"MNESIA  CXC 138 12","4.13.3"},
      {rabbit_common,[],"3.6.1"},
      {xmerl,"XML parser","1.3.10"},
      {os_mon,"CPO  CXC 138 46","2.4"},
      {ranch,"Socket acceptor pool for TCP protocols.","1.2.1"},
      {sasl,"SASL  CXC 138 11","2.7"},
      {stdlib,"ERTS  CXC 138 10","2.8"},
      {kernel,"ERTS  CXC 138 10","4.2"}]},
 {os,{unix,linux}},
 {erlang_version,
    "Erlang/OTP 18 [erts-7.3] [source] [64-bit] [smp:8:8] [async-threads:64] [hipe] [kernel-poll:true]\n"},
 {memory,
    [{total,64111264},
      {connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,2808},
      {queue_procs,2808},
      {queue_slave_procs,0},
      {plugins,367288},
      {other_proc,19041296},
      {mnesia,61720},
      {mgmt_db,158696},
      {msg_index,47120},
      {other_ets,1372440},
      {binary,128216},
      {code,27368230},
      {atom,992409},
      {other_system,14568233}]},
 {alarms,[]},
 {listeners,[{clustering,25672,"::"},{amqp,5672,"::"}]},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,6556241100},
 {disk_free_limit,50000000},
 {disk_free,37431123968},
 {file_descriptors,
    [{total_limit,65435},
      {total_used,2},
      {sockets_limit,58889},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,204}]},
 {run_queue,0},
 {uptime,412681},
 {kernel,{net_ticktime,60}}]

  關閉服務:

[[email protected] sbin]# ./rabbitmqctl stop
Stopping and halting node [email protected] ...

然後啟用外掛:

./rabbitmq-plugins enable rabbitmq_management

  配置linux 埠 15672 網頁管理  5672 AMQP埠
  然後訪問http://localhost:15672即可 

  預設使用者guest 密碼guest

  5. 遠端訪問配置

由於guest這個使用者,只能在本地訪問,所以我們要新增一個使用者並賦予許可權:

新增使用者:rabbitmqctl add_user admin admin

新增許可權:rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"

修改使用者角色rabbitmqctl set_user_tags admin administrator

然後就可以遠端訪問了,然後可直接配置使用者許可權等資訊。

到此,就可以通過http://ip:15672 使用admin admin 進行登陸了

6. rabbitmq常用命令

  add_user        <UserName> <Password>

  delete_user    <UserName>

  change_password <UserName> <NewPassword>

  list_users

  add_vhost    <VHostPath>

  delete_vhost <VHostPath>

  list_vhostsset_permissions  [-p <VHostPath>] <UserName> <Regexp> <Regexp> <Regexp>

  clear_permissions [-p <VHostPath>] <UserName>

  list_permissions  [-p <VHostPath>]

  list_user_permissions <UserName>

  list_queues    [-p <VHostPath>] [<QueueInfoItem> ...]

  list_exchanges [-p <VHostPath>] [<ExchangeInfoItem> ...]

  list_bindings  [-p <VHostPath>]

  list_connections [<ConnectionInfoItem> ...]



同時可以參考http://blog.csdn.net/zhu_tianwei/article/details/40832185