Spring boot監控Actuator-Admin實現過程詳解
阿新 • • 發佈:2020-09-22
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
執行服務端地址,發現已經檢測到了註冊過的客戶端
可以看到客戶端的資訊
http追蹤可以看到請求
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。