SpringbootAdmin能夠用來監(jiān)控項目的運行情況,其具體介紹以及初步入門大家可以參考博客:
按照這篇博客的內(nèi)容進行配置的話,相信大家已經(jīng)看到了運行的結(jié)果,結(jié)果還是非常令人興奮的(對于初次接觸這個東東的人而言)。既然有了這么好用的東西,肯定要實際使用。接下來的使用中就遇到令人蛋疼的問題了,困擾了幾天。
先說一下問題:我按照上面的博客,重新寫了server端,按照博客的介紹把公司的一個項目配置成了客戶端。在我的win10系統(tǒng)電腦上面運行這兩個程序是沒有問題的。但是當(dāng)實際部署的時候就遇到了問題:我把springbootAdmin的server端部署到了Linux系統(tǒng)服務(wù)器(服務(wù)器1),把要監(jiān)控的項目部署到了另一臺Linux服務(wù)器(服務(wù)器2),這兩臺服務(wù)器處于同一個局域網(wǎng)內(nèi)。運行這兩個項目,發(fā)現(xiàn)程序server端能夠發(fā)現(xiàn)這個我的client項目,但是client項目一直處于斷開狀態(tài)。如圖:
查看client端打印出來的log日志,發(fā)現(xiàn)提示為:應(yīng)用注冊失敗
然后查看server端的log日志(這里強烈建議大家配置一下log日志,這樣能夠看到項目運行的一些信息):
這里能夠發(fā)現(xiàn)問題:我的client端的ip地址根部就不是上面所寫的ip地址。那么問題就弄清楚了,造成錯誤的原因是server端沒有獲取到正確的client地址,從而獲取client的各種信息時失敗了。(這里說的簡單,我實際查找原因的時候也是費了很多的周折,深入到源代碼一級去研究整個過程才弄明白了錯誤原因。這里好像我很厲害,其實源代碼大部分我是看不懂的)。
既然找到了問題的原因那接下來的解決問題就變得容易些了(我之所以耗了幾天就是因為定為不到問題的原因,從而在網(wǎng)上找不到正確的解決方法。之所以定為不到問題的原因,就是因為沒有對server端進行l(wèi)og配置??梢娺@里log配置是多么的重要啊?。。。?。解決方法就是在client端添加如下的配置:
這個配置的所用就是告知server監(jiān)聽的client的ip地址。有了這個配置后,server就可以根據(jù)正確的client地址獲取到client端的信息了(看到有個博客講過,當(dāng)不配置這個屬性的時候,client默認(rèn)會把電腦名稱發(fā)送給server當(dāng)做client的地址,這也就是上面的圖片中能夠看到PV3這個名稱的原因)。
總結(jié):現(xiàn)在看來這個問題之所以是一個問題,原因就在于我們對springbootAdmin的配置不熟悉。其實只要認(rèn)真的看springbootAdmin的參考手冊,參考手冊上面對這些配置都是進行了介紹的。
最后,給出springbootAdmin的參考手冊地址為:http://codecentric.github.io/spring-boot-admin/2.0.1/
其中客戶端的所有配置屬性在3.4節(jié)表1,服務(wù)端的所有配置屬性在第4章表3。以后有時間的話要深入研究下這些屬性的作用。