天天看點

centos7 erl版本太低_CentOS7 安裝RabbitMQ

本文記錄了在vmware虛拟機裡centos7.4安裝rabbitmq3.6.6的過程。

一、下載下傳erlang和rabbitmq-server的rpm:

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

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm

二、安裝erlang并檢測是否成功

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

測試是否安裝成功:

[[email protected] ~]# erl
centos7 erl版本太低_CentOS7 安裝RabbitMQ

安裝erlang

三、安裝rabbitmq

rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm

安裝時發現缺少依賴包:socat is needed by rabbitmq-server-3.6.6-1.el7.noarch

yum install socat

安裝依賴包,缺什麼yum install 安裝什麼。

centos7 erl版本太低_CentOS7 安裝RabbitMQ

缺少依賴包

補充依賴包後,安裝成功:

centos7 erl版本太低_CentOS7 安裝RabbitMQ

rabbitmq安裝成功

四、建立服務:

[[email protected] ~]# systemctl enable rabbitmq-server.service

Created symlink from /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service to /usr/lib/systemd/system/rabbitmq-server.service.

五、啟動服務報錯:

[[email protected] ~]# systemctl start rabbitmq-server.service
centos7 erl版本太低_CentOS7 安裝RabbitMQ

rabbitmq啟動服務報錯

檢視狀态:

centos7 erl版本太低_CentOS7 安裝RabbitMQ

rabbitmq啟動服務錯誤狀态

經排查,是安裝時改過預設主機名,在hosts檔案中添加IP和改過的主機名的映射:

[[email protected] ~]# vim /etc/hosts
centos7 erl版本太低_CentOS7 安裝RabbitMQ

[[email protected] ~]# cat /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 cmp4

::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.2.211 cmp4

六、rabbitmq的一些基本操作:

# 添加開機啟動RabbitMQ服務

systemctl enable rabbitmq-server.service

# 檢視服務狀态

systemctl status rabbitmq-server.service

# 啟動服務

systemctl start rabbitmq-server.service

# 停止服務

systemctl stop rabbitmq-server.service

# 檢視目前所有使用者

rabbitmqctl list_users

# 檢視預設guest使用者的權限

rabbitmqctl list_user_permissions guest

# 由于RabbitMQ預設的賬号使用者名和密碼都是guest。為了安全起見, 先删掉預設使用者

rabbitmqctl delete_user guest

# 添加新使用者

rabbitmqctl add_user username password

# 設定使用者tag

rabbitmqctl set_user_tags username administrator

# 賦予使用者預設vhost的全部操作權限

rabbitmqctl set_permissions -p / username ".*" ".*" ".*"

# 檢視使用者的權限

rabbitmqctl list_user_permissions username

七、開啟web管理服務:

如果隻從指令行操作RabbitMQ,多少有點不友善。幸好RabbitMQ自帶了web管理界面,隻需要啟動插件便可以使用。

rabbitmq-plugins enable rabbitmq_management
centos7 erl版本太低_CentOS7 安裝RabbitMQ

開啟web管理服務

本地通路: http://localhost:15672,預設guest/guest

centos7 erl版本太低_CentOS7 安裝RabbitMQ

rabbitmq服務web管理界面

但是主控端通路不到,檢視下防火牆狀态:

[[email protected] ~]# systemctl status firewalld.service
centos7 erl版本太低_CentOS7 安裝RabbitMQ

防火牆狀态

綠的running表示防火牆開啟。

因為我的是虛拟機裡運作,直接關閉防火牆:

[[email protected] ~]# systemctl stop firewalld.service

再次執行檢視防火牆指令:

[[email protected] ~]# systemctl status firewalld.service

如下圖所示表示防火牆已經關閉

centos7 erl版本太低_CentOS7 安裝RabbitMQ

執行開機禁用防火牆自啟指令 :

[[email protected] ~]# systemctl disable firewalld.service
centos7 erl版本太低_CentOS7 安裝RabbitMQ

此時,遠端能夠通路rabbitmq服務。

=====================================================

PS:防火牆其他指令,用于恢複:

啟動:systemctl start firewalld.service

防火牆随系統開啟啟動 : systemctl enable firewalld.service

PS:如果在防火牆打開時放行,可以開放5672和15672端口 (iptables版本)

/iptables -I INPUT -p tcp --dport 5672 -j ACCEPT

/iptables -I INPUT -p tcp --dport 15672 -j ACCEPT

八、開啟遠端通路:

  • 配置RabbitMQ

關于RabbitMQ的配置,可以下載下傳RabbitMQ的配置檔案模闆到/etc/rabbitmq/rabbitmq.config, 然後按照需求更改即可。

關于每個配置項的具體作用,可以參考官方文檔。

  • 開啟guest使用者遠端通路

預設情況下,RabbitMQ的預設的guest使用者隻允許本機通路, 如果想讓guest使用者能夠遠端通路的話,隻需要将配置檔案中的loopback_users清單置為空即可,如下:

{loopback_users, []}

PS:如果沒有找到配置檔案,請參考下面“檢視日志和配置檔案”章節。

另外關于新添加的使用者,直接就可以從遠端通路的,如果想讓新添加的使用者隻能本地通路,可以将使用者名添加到上面的清單, 如隻允許admin使用者本機通路。

{loopback_users, ["admin"]}

restart …

  • 建立其他使用者(admin)

[[email protected] ~]# rabbitmqctl add_user admin 123456

[[email protected] ~]# rabbitmqctl set_user_tags admin administrator

[roo[email protected] ~]# rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"

centos7 erl版本太低_CentOS7 安裝RabbitMQ

建立admin使用者

遠端使用admin使用者通路:

centos7 erl版本太低_CentOS7 安裝RabbitMQ

遠端通路admin使用者

九、檢視日志和配置檔案:

[[email protected] ~]# systemctl status rabbitmq-server.service

centos7 erl版本太低_CentOS7 安裝RabbitMQ

打開日志檔案:

[[email protected] ~]# cat /var/log/rabbitmq/[email protected]
centos7 erl版本太低_CentOS7 安裝RabbitMQ

這裡顯示的是沒有找到配置檔案,我們可以自己建立這個檔案:

cd /etc/rabbitmq/

vim rabbitmq.config

編輯内容如下:

[{rabbit, [{loopback_users, []}]}].

這裡的意思是開放使用,rabbitmq預設建立的使用者guest,密碼也是guest,這個使用者預設隻能是本機通路,localhost或者127.0.0.1,從外部通路需要添加上面的配置。

儲存配置後重新開機服務:

systemctl stop rabbitmq-server.service

systemctl start rabbitmq-server.service

此時就可以從外部通路了,此時再看日志檔案,發現已經找到config檔案

centos7 erl版本太低_CentOS7 安裝RabbitMQ

如果再看log檔案發現還是顯示沒有找到配置檔案,可以手動删除這個檔案再重新開機服務,不過這不影響使用:

rm /var/log/rabbitmq/[email protected]

service rabbitmq-server stop

service rabbitmq-server start

十:其他問題或FAQ

服務啟動不起來

關于叢集的配置

端口占用

erlang.cookie

...