SpringBoot2.X監控和管理神器:SpringBoot Admin

前言

我們在使用SpringBoot的時候,特別的敏捷與方便,開發起來特別的快。比如加入spring-boot-starter-web這個啓動器,就能開發JavaWeb項目;我們再加入mybatis-spring-boot-starter這個啓動器,就能使用MyBatis操作數據庫。相比之前我們使用SSM,真的省去很多配置,那我們有沒有想過,爲什麼使用SpringBoot就不要配置了?原因:通過查看源碼知道,每個啓動器裏面都做了自動配置,MyBatis的自動配置類:MybatisAutoConfiguration,SpringMVC自動配置類:WebMvcAutoConfiguration,可以在配置文件中覆蓋默認配置。
在這裏插入圖片描述

  1. 假設我們不看SpringBoot源碼,可能就不知道SpringBoot到底做了哪些自動配置,所以一款SpringBoot開源項目就出來了:SpringBoot Admin。
  2. 由於SpringBoot Admin就是將SpringBoot Actuator中提供的endpoint信息可視化表示,並且可以通過郵件、Telegram、Hipchat等發送告警消息。所以先介紹SpringBoot Actuator。

SpringBoot Actuator

由於博文篇幅原因,單獨寫一篇介紹:SpringBoot Actuator。
應用監控之 SpringBoot Actuator 使用及配置

SpringBoot Admin

  1. SpringBoot Admin是一個開源社區項目,用於管理和監控SpringBoot應用程序。
  2. SpringBoot應用程序作爲SpringBoot Admin Client註冊在SpringBoot Admin Server(通過HTTP) ,展示SpringBoot Admin Client的Actuator端點上的一些圖形化監控。

SpringBoot-Admin工作流程圖

下圖簡單描述了SpringBoot-Admin的作用,就是爲之前的SpringBoot Actuator提供圖形化管理與監控。
在這裏插入圖片描述

SpringBoot-Admin-Server

我們先搭建SpringBoot-Admin-Server,因爲它要時刻監聽是否有SpringBoot-Admin-Client註冊進來。

  1. 引入SpringBoot-Admin-Server啓動器依賴。
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>2.1.3</version>
    </dependency>
    
  2. 修改默認端口號。
    server:
      port: 9999
    
  3. 在啓動類上添加**@EnableAdminServer**註解,表示開啓SpringBoot-Admin-Server。啓動SpringBoot-Admin-Server項目,之後在瀏覽器輸入:http://localhost:9999。會發現頁面一直在轉圈,這是因爲還沒有Client註冊進來。
    @SpringBootApplication
    @EnableAdminServer
    public class SpringBootAdminServer {
        public static void main(String[] args) {
            SpringApplication.run(SpringBootAdminServer.class, args);
        }
    }
    
    在這裏插入圖片描述

SpringBoot-Admin-Client

上面已經搭建完SpringBoot-Admin-Server,接下來就搭建SpringBoot-Admin-Client。

  1. 引入SpringBoot-Admin-Client啓動器依賴,版本一定要和上面Server的版本一致,不然可能會出現意外的驚喜。
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-client</artifactId>
        <version>2.1.3</version>
    </dependency>
    
  2. 在配置文件中,將SpringBoot-Admin-Client註冊到SpringBoot-Admin-Server中,以及暴露想要暴露的端點。
    server:
      port: 8888
    spring:
      boot:
        admin:
          client:
            url: http://localhost:9999 #SpringBoot Admin Server地址
            instance:
              name: SpringBoot-Admin-ClientOne #註冊上去的服務名稱
    management:
      endpoints:
        web:
          exposure:
            include: '*' #暴露所有的Actuator端點
      endpoint:
        health:
          show-details: always
    
  3. 啓動SpringBoot-Admin-Client應用,在回到之前訪問的路徑:http://localhost:9999。從下圖看,SpringBoot-Admin-Client已經成功註冊到SpringBoot-Admin-Server當中了。
    在這裏插入圖片描述

玩轉SpringBoot-Admin

上面已經搭建好SpringBoot-Admin-Server和SpringBoot-Admin-Client了,上面還說過,SpringBoot-Admin就是將SpringBoot Actuator暴露的端點提供圖形化管理與監控,那接下來就開始瞭解SpringBoot-Admin頁面平臺。

  1. 直接點擊列表中的SpringBoot-Admin-Client,就會跳轉到該客戶端詳細頁面,裏面展示了它暴露的端點。
    在這裏插入圖片描述
  2. 點擊左側的Environment,就會顯示當前客戶端應用使用的JDK版以及其他信息。
    在這裏插入圖片描述
  3. 點擊左側beans,就會顯示所有註冊在Spring IOC容器的bean。
    在這裏插入圖片描述
  4. 點擊Mappings,就會顯示所有的URL映射信息。
    在這裏插入圖片描述
  5. 點擊Loggers,就會顯示當前客戶端應用任意包,任意類所使用的日誌級別。裏面的日誌級別支持點擊修改的。
    在這裏插入圖片描述

總結

  1. 本篇博客重點介紹如何搭建SpringBoot-Admin平臺,只是介紹了裏面一些功能,其他的功能要靠大家自己搭建去完了。
  2. 附上SpringBoot-Admin官方說明文檔:SpringBoot-Admin官方說明文檔
  3. 本篇博客源代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章