Spring boot监控Actuator-Admin实现过程详解
手撕高达的村长 人气:0本文着重讲解了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
运行服务端地址,发现已经检测到了注册过的客户端
可以看到客户端的信息
http追踪可以看到请求
加载全部内容