1. 程式人生 > 程式設計 >Spring boot監控Actuator-Admin實現過程詳解

Spring boot監控Actuator-Admin實現過程詳解

Actuator是監控管理,不過沒有視覺化,這裡就引入了admin-ui來解決Spring Boot Admin 分為Client端和Server端Client端是客戶端Server端是spring-boot-admin來監控client的.先來一個Client客戶端程式碼;

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 
 <artifactId>spring-boot-demo-admin-client</artifactId>
 <version>1.0.0-SNAPSHOT</version>
 <packaging>jar</packaging>
 
 <name>spring-boot-demo-admin-client</name>
 <description>Demo project for Spring Boot</description>
 
 <parent>
  <groupId>com.xkcoding</groupId>
  <artifactId>spring-boot-demo-admin</artifactId>
  <version>1.0.0-SNAPSHOT</version>
 </parent>
 
 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>
 
 <dependencies>
  <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>
  </dependency>
 
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
  </dependency>
 
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
 </dependencies>
 
 <build>
  <finalName>spring-boot-demo-admin-client</finalName>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>
 
</project>

application.yml檔案,注意這裡的url一定跑配置到Server的路徑,不然找不到,有點型別erkura的註冊中心地址.

server:
 port: 8081
 servlet:
  context-path: /demo
spring:
 application:
  # Spring Boot Admin展示的客戶端專案名,不設定,會使用自動生成的隨機id
  name: spring-boot-demo-admin-client
 boot:
  admin:
   client:
    # Spring Boot Admin 服務端地址
    url: "http://localhost:8080/"
    instance:
     metadata:
      # 客戶端端點資訊的安全認證資訊
      user.name: ${spring.security.user.name}
      user.password: ${spring.security.user.password}
 security:
  user:
   name: xkcoding
   password: 123456
management:
 endpoint:
  health:
   # 端點健康情況,預設值"never",設定為"always"可以顯示硬碟使用情況和執行緒情況
   show-details: always
 endpoints:
  web:
   exposure:
    # 設定端點暴露的哪些內容,預設["health","info"],設定"*"代表暴露所有可訪問的端點
    include: "*"

Java檔案就隨便暴露個介面就行

package com.xkcoding.admin.client.controller;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
 
/**
 * <p>
 * 首頁
 * </p>
 *
 * @package: com.xkcoding.admin.client.controller
 * @description: 首頁
 * @author: yangkai.shen
 * @date: Created in 2018/10/8 2:15 PM
 * @copyright: Copyright (c) 2018
 * @version: V1.0
 * @modified: yangkai.shen
 */
@RestController
public class IndexController {
  @GetMapping(value = {"","/"})
  public String index() {
   return "This is a Spring Boot Admin Client.";
  }
}

接下來是Server服務端,作為監控平臺使用pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>
 
 <artifactId>spring-boot-demo-admin-server</artifactId>
 <version>1.0.0-SNAPSHOT</version>
 <packaging>jar</packaging>
 
 <name>spring-boot-demo-admin-server</name>
 <description>Demo project for Spring Boot</description>
 
 <parent>
  <groupId>com.xkcoding</groupId>
  <artifactId>spring-boot-demo-admin</artifactId>
  <version>1.0.0-SNAPSHOT</version>
 </parent>
 
 <properties>
  <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  <java.version>1.8</java.version>
 </properties>
 
 <dependencies>
  <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>
  </dependency>
 
  <dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-test</artifactId>
   <scope>test</scope>
  </dependency>
 </dependencies>
 
 <build>
  <finalName>spring-boot-demo-admin-server</finalName>
  <plugins>
   <plugin>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-maven-plugin</artifactId>
   </plugin>
  </plugins>
 </build>
 
</project>

application.yml

server:
 port: 8080 

執行服務端地址,發現已經檢測到了註冊過的客戶端

Spring boot監控Actuator-Admin實現過程詳解

可以看到客戶端的資訊

Spring boot監控Actuator-Admin實現過程詳解

http追蹤可以看到請求

Spring boot監控Actuator-Admin實現過程詳解

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。