RabbitMQ搭建及MQTT外掛安裝(ubuntu 16.04)

2020-08-10 18:09:13

開始安裝

(1)更新軟體源中的所有軟體列表,因爲剛剛安裝的操作系統可能有很多的軟體需要更新

apt-get update

(2)安裝erlang,由於rabbitMq需要erlang語言的支援,在安裝rabbitMq之前需要安裝erlang

apt-get install erlang-nox

(3)執行下面 下麪命令檢視erlang的版本,同時可以判斷erlang是否安裝成功

erl

(4)新增公鑰

wget -O- https://www.rabbitmq.com/rabbitmq-release-signing-key.asc | sudo apt-key add -

(5)安裝 RabbitMQ,安裝成功後RabbitMQ會自動啓動

apt-get install rabbitmq-server

(6)也可以通過下面 下麪命令檢視當前RabbitMQ的執行情況

systemctl status rabbitmq-server

如下圖所示,active(running)表示執行成功

以上我們就安裝並正常啓動了RabbitMQ了。

緊接着我們可以給RabbitMQ安裝一些外掛

啓動web端視覺化介面

rabbitmq-plugins enable rabbitmq_management

成功後我們重新啓動一下服務

service rabbitmq-server restart #重新啓動

service rabbitmq-server start # 啓動

service rabbitmq-server stop # 停止

由於在RabbitMQ 3.3及以後的版本中,預設賬戶guest只能在伺服器本機登錄,所以這時候我們需要給RabbitMQ 增加一個管理員賬戶

1.檢視使用者列表

rabbitmqctl list_users

如果此時我們還沒有新增賬戶,使用者列表裏面只有一個guest

因爲我之前新增過admin與root所以這裏就會有三個賬戶,後面的administrator表示的是否是管理員賬戶。

2.新增一個賬戶

rabbitmqctl add_user admin 123456  #(admin 是賬戶名稱,123456是賬戶密碼) 

3.給這個賬戶分配管理員角色

rabbitmqctl set_user_tags admin administrator

等賬戶建立好後,就可以通過http://伺服器IP:15672來存取rabbitMQ的web端視覺化介面了,通過我們新增的管理員賬戶登錄後,介面如下。

注:這個時候如果存取失敗的話,請檢查一下防火牆是否開啓了一下埠

4369 # erlang發現口

5672 # client端通訊口

15672 # 管理介面ui埠

25672 # server間內部通訊口

1883 # mqtt埠

15675 # mqtt websocket埠

啓動MQTT外掛

rabbitmq-plugins enable rabbitmq_mqtt

rabbitmq-plugins enable rabbitmq_web_mqtt

安裝成功後重新啓動一下rabbitMQTT

也可以通過命令檢視MQTT外掛的啓動情況

rabbitmq-plugins list

最後我們通過MQTTbox工具測試能否正常通過MQTT訂閱與發佈訊息

Protocol選擇mqtt/tcp,輸入完連線參數後,我們點選save

正常情況下連線狀態爲Connected,但是也有可能會失敗,下面 下麪會說一下失敗原因

連線失敗截圖:

如果連線失敗,我們可以通過RabbitMQ的視覺化介面檢視一下賬戶的情況,這個時候我們可以發現admin賬戶的Can access virtual hosts居然是 No access

這是因爲我們新增的賬戶讀寫許可權不夠導致的,所以我們需要給其分配讀寫許可權,可以通過下面 下麪命令進行設定

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

我們賦予admin「/」下面 下麪的全部資源的設定和讀寫許可權。

之後我們就可以通過admin賬戶進行鑑權登錄MQTT伺服器了。