centos 7安裝RabbitMQ遇到的問題(單節點)

2020-08-12 16:04:32

一、安裝erlang

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

1、下載安裝包(otp_src_19.3.tar.gz)然後上傳至Linux伺服器

2、定位到安裝包所在目錄,並解壓。

cd /home/root

tar -zxvf otp_src_19.3.tar.gz

3、安裝必要的環境(在編譯之前,必須安裝以下依賴包)

yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel

4、編譯並安裝

cd otp_src_19.3

./configure --prefix=/home/root/erlang

make && make install

成功安裝後,erlang目錄下會出現lib和bin子目錄

5、設定環境變數

  1. vim /etc/profile

  2. ######### 新增如下內容 ###############

  3. PATH=$PATH:/home/root/erlang/bin

  4. ########################################

  5. source /etc/profile    #重新載入組態檔

 6、驗證erlang是否成功安裝

輸入erl,得到如下圖所示介面:

輸入  halt().  退出erlang介面

 二、安裝rabbitmq

 安裝之前,需要去官網檢視一下rabbitmq版本對erlang版本的一個支援情況,官網地址:http://www.rabbitmq.com/which-erlang.html

1、下載rabbitmq安裝包(rabbitmq-server-generic-unix-3.7.5.tar.xz),然後上傳至Linux伺服器

2、定位到安裝包所在目錄,並解壓。

cd /home/root

tar -xvf  rabbitmq-server-generic-unix-3.7.5.tar.xz

 3、設定環境變數

  • vim /etc/profile
  • ######### 新增如下內容 ###############
  • PATH=$PATH:/home/root/rabbitmq_server-3.7.5/sbin
  • ########################################
  • source /etc/profile    #重新載入組態檔
  • #新增web管理外掛
  • rabbitmq-plugins enable rabbitmq_management

4、新增組態檔

預設rabbitmq是沒有組態檔的,需要去官方github上,複製一個組態檔模版過來,將組態檔複製到 /home/root/rabbitmq_server-3.7.5/etc/rabbitmq/ 下,更改檔名稱爲 rabbitmq.conf

github地址:https://github.com/rabbitmq/rabbitmq-server/tree/master/docs

 5、啓動rabbitmq服務

# 後臺啓動rabbitmq服務
rabbitmq-server detached
rabbitmqctl status  ##檢視下狀態

 啓動時若出現以下情況:

 在rabbitmq安裝位置下的/etc/rabbitmq  新建檔案 rabbitmq-env.conf

在rabbitmq-env.conf檔案中新增一行內容:

NODENAME=rabbit@localhost

 儲存並啓動

 6、開放埠

rabbitmq預設的埠是5672,管理介面預設埠是15672

firewall-cmd --zone=public --add-port=5672/tcp --permanent   

firewall-cmd --zone=public --add-port=15672/tcp --permanent

firewall-cmd --reload    #重新啓動防火牆

 此時就可以通過 ip:15672去存取管理介面,預設的賬號密碼都是guest,但是這個使用者只能用localhost地址去存取,所以我們需要新增使用者(或修改rabbitmq.conf取消存取限制)

7、新增使用者

cd /home/root/rabbitmq_server-3.7.5/sbin

./rabbitmqctl add_user admin 123456 #建立使用者

./rabbitmqctl set_user_tags admin administrator     #賦予管理員許可權

 8、修改rabbitmq.conf取消存取限制

rabbitmq.conf中,loopback_users這個項就是控制存取的,如果只是取消guest使用者的話,

只需設定loopback_users.guest = false 即可。

通過http://ip:15672存取管理介面

 三、設定rabbitmq開機自啓動

1、在/etc/init.d 目錄下新建一個 指令碼檔案rabbitmq

vim rabbitmq

指令碼檔案內容如下:

#!/bin/bash
#RabbitMQ安裝目錄
RABBITMQ_HOME=/home/root/rabbitmq_server-3.7.5
export RABBITMQ_HOME
 
case "$1" in
    start)
    echo "Starting RabbitMQ ..."
	cd $RABBITMQ_HOME/sbin
	rabbitmq-server
    ;;
stop)
    echo "Stopping RabbitMQ ..."
	cd $RABBITMQ_HOME/sbin
    rabbitmqctl stop
    ;;
status)
    echo "Status RabbitMQ ..."
	cd $RABBITMQ_HOME/sbin
    rabbitmqctl status
    ;;
restart)
    echo "Restarting RabbitMQ ..."
	cd $RABBITMQ_HOME/sbin
    rabbitmq-server
    ;;
 
*)
    echo "Usage: $prog {start|stop|status|restart}"
    ;;
esac
exit 0

2、賦予指令碼檔案可執行許可權

chmod 777 rabbitmq

3.、新增rabbitmq服務到系統服務中

chkconfig --add rabbitmq

 4、設定自啓動

chkconfig rabbitmq on

 5、檢視自啓動項是否設定成功

chkconfig --list rabbitmq

四、rabbitmq常用命令

檢視狀態:
sudo rabbitmqctl status

停止rabbitmq:
sudo rabbitmqctl stop

啓動:
sudo rabbitmq-server detached
外掛管理:
外掛列表: 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:一個正則匹配哪些資源能被該使用者讀取