SpringBoot 監控中心


1,SpringBoot 監控中心:

      針對微服務服務監控,服務器內存內存變化(對內存,線程,日志管理),檢測服務配置連接地址是否可用(模擬訪問,懶加載),故意將mysql 數據源連接密碼寫錯,啟動就會報錯 java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)

     統計有多少bean(Spring 容器的bean),統計SpringMVC 的@requestMapping(Http 接口),

     Actuator監控應用(沒有界面,返回json格式)

     AdminUi,底層使用的就是Actuator監控應用,實現可視化的界面

     應用場景:生產環境

2,為什么要使用SpringBoot 監控中心

Actuator是spring boot的一個附加功能,可幫助你在應用程序生產環境時監視和管理應用程序。可以使用HTTP的各種請求來監管,審計,收集應用的運行情況.特別對於微服務管理十分有意義.缺點:沒有可視化界面。

3,Actuator 的使用

    step1: 添加actuator 的依賴

        <!-- Actuator是spring boot的一個附加功能,可幫助你在應用程序生產環境時監視和管理應用程序。
        可以使用HTTP的各種請求來監管,審計,收集應用的運行情況.特別對於微服務管理十分有意義.缺點:沒有可視化界面。 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

     step2: 配置application.yml

#通過下面的配置啟用所有的監控端點,默認情況下,這些端點是禁用的;
management:
  endpoints:
    web:
      exposure:
        include: "*"

#單數據源
spring:
  profiles:
    active: prod
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/testdb
    username: root
    password: 123456
    driver-class-name: com.mysql.jdbc.Driver

4,訪問地址:

路徑 作用
/actuator/beans    顯示應用程序中所有Spring bean的完整列表。
/actuator/configprops    顯示所有配置信息。
/actuator/env    陳列所有的環境變量。
/actuator/mappings    顯示所有@RequestMapping的url整理列表。
/actuator/health    顯示應用程序運行狀況信息 up表示成功 down失敗
/actuator/info    查看自定義應用信息

 

 

Admin-Ui 分布式微服務監控中心

 

 

相當於啟動兩個服務,一個是Admin-Ui 的server,另一個是Admin-Ui需要監視的Server (可以稱做Client)

1,server 的maven 依賴

    <dependencies>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.0.0</version>
        </dependency>

<!--admin-ui的主要配置-->
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-webflux</artifactId> </dependency> <!-- Spring Boot Actuator對外暴露應用的監控信息,Jolokia提供使用HTTP接口獲取JSON格式 的數據 --> <dependency> <groupId>org.jolokia</groupId> <artifactId>jolokia-core</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency> </dependencies>

2,server 的配置文件:

spring:
  application:
    name: spring-boot-admin-server

3,server 的啟動類:

@Configuration
@EnableAutoConfiguration
@EnableAdminServer
public class AdminServerApplication {

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

 

4,被監控的服務(client)的配置maven 依賴

<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.0.RELEASE</version>
    </parent>
    <dependencies>
      <!--admin-ui的主要配置-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
        </dependency>

<dependency> <groupId>com.googlecode.json-simple</groupId> <artifactId>json-simple</artifactId> <version>1.1</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

5,被監控的服務(client)的配置文件,本身定義了server 是8081,監控自己的server(對本server 來說是client 8080)

spring:
  boot:
    admin:
      client:
        url: http://localhost:8080
server: 
  port: 8081
  
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

6,啟動類

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

兩個服務都啟動之后,登陸8080 端口,就看到admin-ui 的頁面了

 


免責聲明!

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



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