服务监控之spring-boot-admin
程序员文章站
2022-10-08 21:21:00
一、概述 开始阅读这篇文章之前,建议先阅读下 "《SpringBoot 之Actuator》" ,该篇文章提到 Spring Boot Actuator 提供了对单个Spring Boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了Spring Boot应用的整个生 ......
一、概述
开始阅读这篇文章之前,建议先阅读下《springboot 之actuator》,该篇文章提到 spring boot actuator 提供了对单个spring boot的监控,信息包含:应用状态、内存、线程、堆栈等等,比较全面的监控了spring boot应用的整个生命周期。但是美中不足的是:
- 所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口,并且接口返回的 json 信息不方便运营人员理解;
- 如果spring boot 应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,操作非常繁琐低效。
在这样的背景下,就诞生了另外一个开源软件:spring boot admin。那么什么是 spring boot admin 呢?spring boot admin 是一个针对 spring boot actuator 进行ui美化封装的监控工具。集群的每个应用都认为是一个客户端(或者说实例),通过http或者使用 eureka 注册到 spring boot admin server中进行展示,spring boot admin ui 使用angularjs将数据展示在前端。
下面将给大家介绍如何使用spring boot admin对spring boot应用进行监控。
二、spring-boot-admin-starter-server
下面介绍 spring-boot-admin-server 的构建,要监控的每个客户端(或者说实例),都可以把 actuator 数据注册到 server 中进行 ui 渲染展示。
1. pom.xml
<dependency> <groupid>de.codecentric</groupid> <artifactid>spring-boot-admin-starter-server</artifactid> <version>2.1.5</version> </dependency>
2. application.yml
server: port: 3333 spring: application: name: monitor
3. application.java
@springbootapplication @enableadminserver public class application { public static void main(string[] args) { springapplication.run(application.class); } }
做完以上动作,我们一个 spring-boot-admin-server 项目就搭建好了。
三、spring-boot-admin-starter-client
我们已经有了一个 spring-boot-admin-server,现在要做的就是如何把客户端(或者说实例)的 actuator 数据注册到 server 中。
1. pom.xml
<dependency> <groupid>de.codecentric</groupid> <artifactid>spring-boot-admin-starter-client</artifactid> <version>2.1.5</version> </dependency>
2. application.yml
spring: application: name: dubbo-provider boot: admin: enabled: true client: instance: name: ${spring.application.name} prefer-ip: true url: http://127.0.0.1:3333 management: endpoints: web: exposure: include: '*'
如此,我们就把客户端(或者说实例)的 actuator 数据注册到 server 中了。