搭建mqtt服務器apollo


使用的apollo,官網太慢,附上百度雲下載地址:

鏈接:https://pan.baidu.com/s/1NIq6R71hlyPuaUBwPoMPNg
提取碼:36vw

原文鏈接:https://blog.csdn.net/yangsong4353/article/details/87967561

需要注意的是想要在宿主機上訪問,需要修改

Apollo監控頁面配置

  vi /opt/apollo/mybroker/etc/apollo.xml

  修改 
  http://127.0.0.1:61680“/> 
  https://127.0.0.1:61681“/> 
  為 
  http://0.0.0.0:61680“/> 
  https://0.0.0.0:61681“/>

 

MQTT服務器嘗試過兩種,一種是 Mosquitto、另一種是 Apollo,本次記錄Apollo 在CentOS 7.6 linux 下的安裝和測試。

    Apollo下載地址: http://activemq.apache.org/apollo/versions/1.7/website/download.html

 

下載后的文件放置在Downloads文件夾下,對此壓縮包進行解壓。

有可能需要進入root權限,輸入su,之后輸入密碼,進入root權限。

解壓: tar -zxvf apache-apollo-1.7.1-unix-distro.tar.gz

由於搭建 Apollo 環境變量需要有 JAVA_HOME,這個時候需要確認下系統中是否已經安裝有jdk。

確認辦法為輸入命令: java -version,如有回復類似如下,則說明環境中已經有了jdk。

 

此版本的linux 系統中默認就有此,無需另外安裝。如果沒有,在參考其他文章安裝jdk。

進入apache-apollo-1.7.1/bin目錄,輸入命令  cd /Downloads/apache-apollo-1.7.1/bin目錄

創建一個Broker示例:./apollo create broker1。注意最前面有個“.”,創建成功后,會有如下提示:
Creating apollo instance at: mybroker
Generating ssl keystore...
You can now start the broker by executing:  
"xxx/apache-apollo-1.7.1/bin/broker1/bin/apollo-broker" run
Or you can setup the broker as system service and run it in the background:
sudo ln -s "xxx/apache-apollo-1.7.1/bin/broker1/bin/apollo-broker-service start"

提示內容是告知如何啟動broker。

創建完成后,會在/Downloads/apache-apollo-1.7.1/bin目錄下,創建了一個broker1的文件夾。

進入到此目錄后,會看到有如下文件夾:

 

進入到bin目錄下,輸入命令 ./apollo-broker run,啟動broker。

 

出現這個界面即表示啟動成功。

之后查看打印信息即可知道MQTT要連接的端口和管理頁面端口。

然后打開Ubuntu瀏覽器,輸入 http://127.0.0.1:61680/ 或 https://127.0.0.1:61681/, 即可進入 Apollo Console 窗口。

 

用戶名和密碼在 etc/users.properties文件中。默認用戶名和密碼為 admin 和 password。

 

配置
配置文件在 broker1/etc 文件中。具體說明可以參考 http://activemq.apache.org/apollo/versions/1.7/website/index.html 中的User Manual 章節。

簡要介紹如下:

apollo.xml

此文件中設置了IP地址和端口號,設置訪問用戶組和訪問權限。默認情況下,需要用戶名和密碼登陸網頁,同時,MQTT設備連接服務器,也需要用戶名和密碼,默認情況下和登陸網頁的相同。

如果需求其他用戶名和密碼,則需要在users.properties中增加用戶名和密碼,在groups.properties中增加users組,並在組中增加在users.properties中增加的成員。之后就可以使用新增加的用戶名和密碼進行登錄。示例如下

 

 

如果想不需要用戶名和密碼登錄,則按照如下方式修改即可。 

<authentication enabled="false"/> 
 <!--<access_rule allow="users" action="connect create destroy send receive consume"/> -->

對外連接的端口號也可以在這個文件中進行修改。

black-list.txt

黑名單,可以將不需要的IP地址寫入到這個文件中

log4j.properties

輸出log配置,輸出的log文件在log文件夾中

 

測試
配置完成后,可以對搭建好的服務器進行測試。

先在局域網進行測試。 在linux終端中輸入 ifconfig 命令,查看本地ip地址。記錄。

測試工具使用paho。下載地址
https://pan.baidu.com/s/1veYDXA3Pgu1liOAkATsfuQ 密碼:8ljd  或  https://repo.eclipse.org/content/repositories/paho-releases/org/eclipse/paho/org.eclipse.paho.ui.app/
根據鏈接下載,打開paho for eclipse 文件夾中的 64位/paho.exe。如圖:

 

打開軟件

 

在服務器地址的位置,輸入剛剛查到的地址,“:”后為端口號,根據啟動apollo時提示的的端口號進行輸入。默認的端口號是61613,我這里因為修改了配置文件,所以是1883。

之后點擊 連接,如果能夠連接上,說明成功了。

 

修改防火牆
實測,不成功,卡死在連接的那個狀態了。

莫急莫急。通過查找發現,是因為linux防火牆開啟,導致端口不能訪問的原因。

查看默認防火牆狀態使用命令: firewall-cmd --state (關閉后顯示notrunning,開啟后顯示running)

1

2

[root@localhost ~]#firewall-cmd --state

not running

如果出現的是 running,那么就是這個原因導致不能連接服務器了。關閉防火牆可以參考文章 https://www.cnblogs.com/zhangzhibin/p/6231870.html 或 https://www.jianshu.com/p/dd663cb4affa

我使用的是下面的兩個命令關閉防火牆。關閉之后,就可以正常使用啦。

systemctl stop firewalld.service    #停止firewall
systemctl disable firewalld.service   #禁止firewall開機啟動

穩妥一點的話,可以開啟防火牆特定的端口,以免整個服務器收到攻擊。這個設置如下。

啟動防火牆服務:systemctl start firewalld.service

在開機時啟用服務:systemctl enable firewalld.service

查看已經開放的端口: firewall-cmd --list-ports 。 如果有開放的會列舉出來,如果沒有則只顯示一個空白行。

開啟端口: firewall-cmd --zone=public --add-port=1883/tcp --permanent

         命令含義:

         –zone  #作用域

         –add-port=1883/tcp  #添加端口,格式為:端口/通訊協議

         –permanent   #永久生效,沒有此參數重啟后失效

重啟防火牆:  firewall-cmd --reload。

至此,就可以安心的使用服務器啦。

 

補充說明防火牆命令:

查看防火牆狀態: firewall-cmd --state

啟動一個服務:systemctl start firewalld.service

關閉一個服務:systemctl stop firewalld.service

重啟一個服務:systemctl restart firewalld.service

顯示一個服務的狀態:systemctl status firewalld.service

在開機時啟用一個服務:systemctl enable firewalld.service

在開機時禁用一個服務:systemctl disable firewalld.service

查看服務是否開機啟動:systemctl is-enabled firewalld.service;echo $?

查看已啟動的服務列表:systemctl list-unit-files|grep enabled

查看已經開放的端口: firewall-cmd --list-ports

開啟防火牆端口: firewall-cmd --zone=public --add-port=80/tcp --permanent

關閉防火牆端口: firewall-cmd --remove-port=3000/tcp --permanent

重啟防火牆:  firewall-cmd --reload



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM