使用的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