Spring-Boot快速集成Spring boot Admin 入门详解

Spring-Boot快速集成Spring Boot Admin 监控服务 (入门详解)

Spring Boot Admin 简介

官网介绍

codecentric’s Spring Boot Admin is a community project to manage and
monitor your Spring Boot ® applications. The applications register
with our Spring Boot Admin Client (via HTTP) or are discovered using
Spring Cloud ® (e.g. Eureka, Consul). The UI is just a Vue.js
application on top of the Spring Boot Actuator endpoints.


codecentric的Spring Boot Admin是一个社区项目,用于管理和监视您的Spring
Boot®应用程序。这些应用程序在我们的Spring Boot Admin Client中注册(通过HTTP),或者是通过Spring
Cloud®(例如Eureka,Consul)发现的。 UI只是Spring Boot Actuator端点之上的Vue.js应用程序

总之这玩意就是对运行中的sping-boot项目的监控组件。

在Spring Boot Admin中 对外部提供服务的项目中作为admin中的客户端,将项目注册到admin服务端上,在admin的服务端就可以统一监控这些部署的服务状态和配置。

就是这个样子
在这里插入图片描述

Admin Server 监控服务端实现

Admin Server 端实现是为了后续将服务注册到监控客户端中统一管理和监视。

可以新建一个正常 spring boot的web项目

完整的依赖

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>org.dlblog.admin</groupId>
	<artifactId>server</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>admin-server</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<spring-boot-admin.version>2.2.3</spring-boot-admin.version>
	</properties>

	<dependencies>
		<!-- spring boot web依赖 -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!-- spring boot admin 服务端依赖 -->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-server</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>de.codecentric</groupId>
				<artifactId>spring-boot-admin-dependencies</artifactId>
				<version>${spring-boot-admin.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

注意版本,若Spring-boot版本过低,启动会报错,
我这里 Spring Boot Admin 的版本是2.2.3 , Spring Boot 版本是2.3.0。之前使用的是2.1.7,启动报错,官网的解决办法就是升Spring Boot 版本。

添加好依赖还需要开启Spring-Boot对AdminServer的支持

@EnableAdminServer //开启AdminServer的支持
@SpringBootApplication
public class AdminServerApplication {

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

}

指定监控服务的配置

# tomcat configuration
server:
  port: 8082
  servlet :
    context-path:

# log level
logging.level:
  root: WARN
  org.springframework: DEBUG
  org.apache.coyote.http11.Http11InputBuffer: DEBUG
  sample.mybatis.mapper: DEBUG
  org.apache.ibatis: DEBUG

配置访问端口,当访问这个端口时,就可以看到admin管理画面。
在这里插入图片描述
可以看到当前监控服务端已经成功启动,但是还没有客户端注册进来。

Admin 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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>2.3.0.RELEASE</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>org.dlblog.admin</groupId>
	<artifactId>admin-client</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<name>admin-client</name>
	<description>Demo project for Spring Boot</description>

	<properties>
		<java.version>1.8</java.version>
		<spring-boot-admin.version>2.2.3</spring-boot-admin.version>
	</properties>

	<dependencies>
		<!--spring boot web依赖-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<!--spring boot admin 客户端依赖-->
		<dependency>
			<groupId>de.codecentric</groupId>
			<artifactId>spring-boot-admin-starter-client</artifactId>
		</dependency>
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>de.codecentric</groupId>
				<artifactId>spring-boot-admin-dependencies</artifactId>
				<version>${spring-boot-admin.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

注意Spring Boot 和Spring Boot Admin的版本关系

#admin客户端注册地址
spring.boot.admin.client.url: http://localhost:8082
management.endpoints.web.exposure.include: "*"
#监视服务名
spring.application.name: adminServer

# log level
logging.level:
  root: WARN
  org.springframework: DEBUG
  org.apache.coyote.http11.Http11InputBuffer: DEBUG
  sample.mybatis.mapper: DEBUG
  org.apache.ibatis: DEBUG

这里的 spring.boot.admin.client.url 中地址就时上面实现的Admin Server的地址。就是指定注册的地址,若是要注册到多个admin服务端上
用逗号分隔就可以

#admin客户端注册地址
spring.boot.admin.client.url: http://localhost:8082, http://localhost:10082
management.endpoints.web.exposure.include: "*"
#监视服务名
spring.application.name: adminServer

先启动admin 客户端的代码,在启动admin 服务端的代码, 客户端项目可以多放几个。
访问admin服务端的地址 我上面指定的是8082端口
在这里插入图片描述
可以看到我监控到两个服务。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
spring-boot 快速集成 Admin
最后附上 admin-server 通用源码
https://github.com/DavidLei08/Spring-Boot-dlblog/releases/

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要将nacos和spring-boot-admin集成,需要进行以下步骤: 1. 在pom.xml中添加以下依赖: ```xml <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.2.3</version> </dependency> ``` 2. 在application.properties中添加以下配置: ```properties spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 # nacos服务地址 spring.application.name=spring-boot-admin-server # 应用名 server.port=8080 # 服务端口 spring.boot.admin.server.url=http://localhost:${server.port} # spring-boot-admin服务地址 spring.boot.admin.client.url=http://localhost:${server.port} # spring-boot-admin客户端地址 management.endpoints.web.exposure.include=* # 开启所有端点 ``` 3. 在启动类上添加@EnableDiscoveryClient和@EnableAdminServer注解: ```java @SpringBootApplication @EnableDiscoveryClient @EnableAdminServer public class SpringBootAdminApplication { public static void main(String[] args) { SpringApplication.run(SpringBootAdminApplication.class, args); } } ``` 4. 在需要监控的应用中添加spring-boot-starter-actuator依赖,并在application.properties中添加以下配置: ```properties spring.boot.admin.client.url=http://localhost:8080 # spring-boot-admin服务地址 spring.boot.admin.client.username=admin # 认证用户名 spring.boot.admin.client.password=admin # 认证密码 ``` 5. 启动nacos和spring-boot-admin服务,然后启动需要监控的应用,即可在spring-boot-admin控制台中查看应用的监控信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值