應用接入Spring Boot Admin 2.0

       當應用部署到遠程服務器後,爲了獲取應用的運行狀態,我們需要接入監控系統從而方便地實現對應用的管理,初步選擇的方案是大衆點評開發的CAT開源監控系統,自己所在公司也接入了該系統,功能強大,使用較爲熟悉。不料自己在接入過程中遇到很多坑,maven包沒有發佈在中央倉庫(在點評自己的倉庫下),引入本地倉庫,下載缺包,打包依賴失敗,啓動bean注入失敗等等,文檔也比較少,在鼓搗了一個下午後表示放棄,轉向spring官方提供的springboot admin 2.0,過程較爲順利,總結如下。

Spring Boot Admin 2.0初體驗

Spring Boot Admin 2.0 變化還是挺多的,具體參考 官網說明,這裏列幾條主要的:

  • 使用Vue.js重寫了UI界面,界面扁平化,現代感十足,很nice

  • 直接集成了基於 spring security 的認證,無需引入第三方模塊

  • 加入 session endpoint 的監控支持

等等...

上圖!

當然自己並沒有用到很高級的功能,只是使用了一些基本功能。

搭建 Spring Boot Admin Server

通過maven形式引入依賴,springboot工程版本爲2.1.1(注意:springboot admin的版本號需要與當前工程springboot版本號保持一致,不然啓動會報classNotFoundException)

	<!--springboot admin 2.0 monitor-->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
			<version>2.1.1</version>
		</dependency>

		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-server-ui</artifactId>
			<version>2.1.1</version>
		</dependency>

		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
			<version>2.1.1</version>
		</dependency>

在啓動主類加入註解@EnableAdminServer

@SpringBootApplication(
		scanBasePackages = {
			"cn.jyycode",
			"mapper"
})
@MapperScan(basePackages = "mapper")
@EnableCaching
@Import(value={SpringUtil.class})
@EnableAdminServer
public class PenguinApplication {

	public static void main(String[] args) {
		SpringApplication.run(PenguinApplication.class, args);
	}

}

配置啓動參數,啓動應用,springboot admin 2.0成功啓動,但是原項目接口返回的頁面出現thymeleaf頁面解析錯誤, 且報錯標籤顯示是監控頁標籤,並沒有返回自己編寫的目標頁,初步推測springboot admin 2.0似乎是將直接將原有的頁面路徑給覆蓋了,故需要配置二級訪問目錄,這裏命名爲app,測試了下,暫時解決了這一問題。

spring
   boot:
    admin:
      client:
        url: http://localhost:8080/app
        auto-registration: true
        instance:
          name: jiayuan application monitor
      context-path: /app
management:
  endpoints:
    web:
      exposure:
        include: "*"

訪問http://localhost:8080/app,結果如下

應用上線推送通知

應用監控

打開Wallboard看板,顯示註冊的實例一個,如下(包括應用名,已運行時間,實例數)

點擊實例,進入監控詳情頁

點擊beans標籤,可以看到加載到spring容器中的所有bean對象

對jvm的監控也較爲完善,除了基本的虛擬機各區域的監控,線程狀態查看,還支持dump文件下載,以便在發生內存泄漏的時候幫助我們進行內存分析從而解決問題(ps:dump文件分析可下載Memory Analyzer (MAT))。

接口訪問的統計也是做的很不錯

其他方面瞭解不多,總體來說比同類產品(比如CAT)集成要方便很多,功能也十分強大,更多方面還是靠自己搭環境體驗一番吧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章