Actuaotr是spring boot项目中非常强大的一个功能,有助于对应用程序进行监控和管理,通过restful api请求来监管、审计、收集应用的运行情况,针对微服务而言它是必不可少的一个环节。
spring-boot-actuator中已经内置了非常多的Endpoints(health、info、beans、httptrace、shutdown)等等,同时也允许我们自己扩展自己的端点.
但是这样监控也有一些问题:第一,所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口,并且接口返回的 JSON 信息不方便运营人员理解;第二,如果 Spring Boot 应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,操作非常繁琐低效。在这样的背景下,就诞生了另外一个开源软件:Spring Boot Admin。
Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源软件,每个应用都认为是一个客户端,通过 HTTP 或者使用 Eureka 注册到 admin server 中进行展示,Spring Boot Admin UI 部分使用 Vue.js 将数据展示在前端。
当然,如果就一个SpringBoot应用,使用Spring Boot Admin就显得多余了点,可以查看《SpringBoot入门建站全系列(二十九)Actuator服务监控及SpringBootMonitor单机监控页面》,这篇文章使用改造后的SpringBootMonitor对单机进行监控。
首发地址:
品茗IT-首发
如果大家正在寻找一个java的学习环境,或者在开发中遇到困难,可以加入我们的java学习圈,点击即可加入,共同学习,节约学习时间,减少很多在学习中遇到的难题。
下面讲述Spring Boot Admin的使用方法。
因为使用Spring Boot Admin,需要建立一个监控中心AdminServer,收集各个客户端上送的监控信息,因此,首先要建好AdminServer。
需要引入spring-boot-starter-web和spring-boot-admin-starter-server.
依赖如下:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>de.codecentricgroupId>
<artifactId>spring-boot-admin-starter-serverartifactId>
<version>2.1.5version>
dependency>
这里使用yaml文件写配置,配置文件application.yml:
application.yml:
server:
port: 8888
spring:
application:
name: AdminServer
这里,只需要配置端口和应用名即可。
使用main直接启动即可。需要使用注解@EnableConfigServer开启监控数据收集服务。
ConfigServerApplication:
package cn.pomit.springbootwork.config.server;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.config.server.EnableConfigServer;
@EnableConfigServer
@SpringBootApplication
public class ConfigServerApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigServerApplication.class, args);
}
}
需要引入spring-boot-starter-web和spring-boot-starter-actuator、spring-boot-admin-starter-client.
依赖如下:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>
<dependency>
<groupId>de.codecentricgroupId>
<artifactId>spring-boot-admin-starter-clientartifactId>
<version>2.1.5version>
dependency>
这里使用yaml文件写配置application.yml:
application.yml:
server:
port: 8111
spring:
application:
name: AdminClient
boot:
admin:
client:
url: http://localhost:8888
management:
endpoints:
web:
exposure:
#加载所有的端点,默认只加载了info、health
include: '*'
这里面,包含了端口、应用名、监控中心信息。
AdminClientApplication :
package cn.pomit.springbootwork.admin.client;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class AdminClientApplication {
public static void main(String[] args) {
SpringApplication.run(AdminClientApplication.class, args);
}
}
访问监控服务的地址:http://127.0.0.1:8888/#/applications, 注意,这个地址是AdminServer的,不是客户端的。
如上图所示,开启中的应用有一个,就是AdminClient。点击对应应用,可以进入详情界面:
品茗IT-博客专题:https://www.pomit.cn/lecture.html汇总了Spring专题、Springboot专题、SpringCloud专题、web基础配置专题。
Spring项目快速开发工具:
一键快速构建Spring项目工具
一键快速构建SpringBoot项目工具
一键快速构建SpringCloud项目工具
一站式Springboot项目生成
Mysql一键生成Mybatis注解Mapper
Spring组件化构建
SpringBoot组件化构建
SpringCloud服务化构建
喜欢这篇文章么,喜欢就加入我们一起讨论SpringCloud使用吧!