全台最快的mqttgo.io上線了

全台最快的MQTT上線了(<-廣告用詞),大家不用再跑澳門emqx,也不用打名子超長的eclipseprojects
享用小霸王實驗室所建立的台灣最快最穩(<-廣告用詞)由HiveMQ所架設的MQTT Broker,完全免費~以後也不會收費

我的ESP32實做書籍:我出書了 ESP32 物聯網專題
博客來網址:https://www.books.com.tw/products/0010901195


MQTTGO說明

全台最快的MQTT上線了(<-廣告用詞),大家不用再跑澳門emqx,也不用打名子超長的eclipseprojects
享用小霸王實驗室所建立的台灣最快最穩(<-廣告用詞)由HiveMQ所架設的MQTT Broker,完全免費~以後也不會收費
直接在MQTT Broker輸入
位址:mqttgo.io
port:1883
不須帳號密碼,Topic自己取,也可以用中文Topic喔。
Websocket也即將開通喔~
本筆記將說明如何在ubuntu安裝HiveMQ CE,可以分成以下五個步驟

一、安裝HiveMQ CE

二、安裝相關Plug-in

三、安裝Prometheus監測軟體

四、安裝Grafana數據化面板

五、設定所有服務為開機自動執行

一、安裝HiveMQ CE

1.Update系統

sudo apt-get update
sudo apt-get upgrade -y

2.建議安裝Chromium(此為個人習慣,與本安裝無關):

sudo apt-get install chromium-browser

3.安裝Java環境

sudo apt-get install default-jre -y default-jdk -y

4.HiveMQ CE版原始檔網址:https://github.com/hivemq/hivemq-community-edition
直接下載執行檔,解壓縮後,放到Home目錄下

解壓縮後,進入資料夾

cd hivemq-ce-<version>

並執行命令即可啟動mqtt

bin/run.sh
啟動MQTT畫面

此時可以利用MQTTLENS(Chrome搜尋MQTTLENS安裝此應用程式),使用localhost:1883進行測試

訂閱並推播同一個主題,看看是否能收到資料,如果有的話,就算完成基礎的MQTT Broker的安裝了。

目前這個Broker仍屬於最基本的服務,建議完成第二步驟的插件安裝

二、安裝相關Plug-in

本部份預期安裝兩個插件:Prometheus效能檢視、denywildcard禁止瀏覽目錄安全套件
Prometheus:https://www.hivemq.com/extension/prometheus-extension/
denywildcard:https://www.hivemq.com/extension/deny-root-wildcard-subscriptions-extension/
下載後,解壓縮放置到hive資料夾的extension內,加上原本的allow-all-extension,這樣就一共三個

視需要進行修改設定檔,開啟Prometheus-extension資料夾內的設定檔prometheusconfiguration.properties,其中port=9399、metric_path=/metrics,代表這個服務會建立在localhost:9399/metric下。

使用Ctrl+C,關閉HiveMQ服務,並重新啟動,即可啟動插件服務

Prometheus啟動後,我們可以到localhost:9399/metric查看數據

這些數據為文字方式,不好辨識,因此我們需要再安裝圖形界面,第一個是Prometheus的Web服務,然後是Grafana數據化面板,請參考第三第四節

到這裡為止,其實1883的Broker已經可以正常運作了,如果要新增WSS(WebSocket)的話,可以開啟hivemq資料夾內的conf資料夾的檔案config.xml

並將以下內容加入到原本的listeners區段

    <websocket-listener>
          <port>8000</port>
          <bind-address>0.0.0.0</bind-address>
          <path>/mqtt</path>
          <name>my-websocket-listener</name>
          <subprotocols>
              <subprotocol>mqttv3.1</subprotocol>
              <subprotocol>mqtt</subprotocol>
          </subprotocols>
          <allow-extensions>true</allow-extensions>
    </websocket-listener>

存檔後,重新開啟HiveMQ,就可以使用8000進行WSS通訊了

三、安裝Prometheus監測軟體

接下來要啟動Prometheus的Web服務,請至此處下載:https://prometheus.io/download/,下載需要的版本

下載後,一樣解壓縮到Home底下

如須設定相關內容,請開啟資料夾內的prometheus.yml,修改資料來源為上面localhost:9399,所以改為9393,完成修改後存檔。

執行方式:直接點兩下執行檔prometheus即可執行。

此時可以利用瀏覽器開啟:localhost:9090,在中間空白處輸入hive就可以列出hiveMQ的相關數據欄位,如果沒有列出hive的任何數據,請檢查上面的設定port是否相符。

此處我選擇incoming_publish_count作為監測內容,選擇後,按下右側的Execute按鈕。

並選擇Graph,就可以看到即時數據。

不過這個圖表數據不會自己更新,也不能存檔,所以沒什麼屁用。安裝這個的真正原因是要把數據再傳給下面這個Grafana來顯示

四、安裝Grafana數據化面板

執行以下命令進行安裝

sudo apt-get install -y apt-transport-https software-properties-common wget -y
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
sudo apt-get update
sudo apt-get install grafana

以下命令則為啟動本服務命令

sudo systemctl daemon-reload
sudo systemctl start grafana-server

接著我們開啟localhost:3000,即可開啟Grafana網站。第一次登入使用admin/admin登入,然後會馬上要求輸入後續的登入密碼

進入主功能區

加入prometheus資料來源

在URL處輸入prometheus的網址:http://localhost:9090,其餘不用變更,直接按最下面的Save and Test

完成後,即會出現資料來源沒問題的訊息

加入一個Dashboard圖表,並選New Panel

下方加入一個要監測的欄位後,點選+Query,確認數據是否正確,最後按右上的Apply即可完成第一個監測圖表

可以依據需求加入多個圖表,但記得對Dashboard存檔

作到這裡系統不僅可以正常運作,也可以有系統運作的數據畫面。

最後一步就是將上面三個服務都設定為自動啟動。

五、設定所有服務為開機自動執行

確認上面的設定都沒問題後,我們可以將所有服務都設定為自行啟動。包括

  • HiveMQ CE
  • prometheus
  • Grafana

HiveMQ CE的自動執行

1.在/etc/systemd/system/建立一個檔案,副檔名必須是.service,例如HiveMQTT.service

2.將MQTT執行的SH檔改為可自動執行

sudo chmod +x /修改成你的MQTT執行路徑

3.檔案內容如下

[Unit]
#簡單描述
Description=Start HiveMQTT Service 
After=network.target

[Service]
#程式路徑
ExecStart=/修改成你的MQTT執行路徑
#一直重新啟動
Restart=always 
#重新啟動時間=10s
RestartSec=10 
#系統中的名稱
SyslogIdentifier=HiveMQTTSerive 
#使用執行的權限
User=root

[Install]
WantedBy=multi-user.target

4.設定開機啟動

sudo systemctl enable HiveMQTT.service

5. 立即啟動

sudo systemctl start HiveMQTT.service 

6.查看執行狀態

sudo systemctl status HiveMQTT.service 

prometheus

依照MQTT的方式進行處理,service 檔案的內容如下

[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target

[Service]
User=prometheus
Group=prometheus
Restart=always
Type=simple
ExecStart=/usr/local/bin/prometheus \
    --config.file=/etc/prometheus/prometheus.yml \
    --storage.tsdb.path=/var/lib/prometheus/ \
    --web.console.templates=/etc/prometheus/consoles \
    --web.console.libraries=/etc/prometheus/console_libraries \
    --web.listen-address=0.0.0.0:9090

[Install]
WantedBy=multi-user.target

grafana設定啟動

sudo ln -s /lib/systemd/system/grafana-server.service /etc/systemd/system/grafana-server.service
sudo systemctl enable grafana-server
sudo systemctl start grafana-server

Leave a Comment

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *