作者: 追梦 1819
前一章 (SpringBoot 第二十二篇: 应用监控之 Actuator) 介绍了 SpringBoot 应用使用 Actuctor 进行监控. 文章最后也提出了一个问题, 是否可以将监控结果更好的展示个运维同学?
本章解答这个问题.
Spring Boot Admin 是一个管理和监控 Spring Boot 应用程序的开源项目. 分为 admin-server 与 admin-client 两个组件, admin-server 通过采集 actuator 端点数据, 显示在 spring-boot-admin-ui 上, 已知的端点几乎都有进行采集, 通过 spring-boot-admin 可以动态切换日志级别, 导出日志, 导出 heapdump, 监控各项指标 等.
Spring Boot Admin 在对单一应用服务监控的同时也提供了集群监控方案, 支持通过 eureka,consul,zookeeper 等注册中心的方式实现多服务监控与管理.
SpringBoot Admin 的使用
创建 admin-server
首先, 引入 maven 依赖:
- <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>de.codecentric</groupId>
- <artifactId>spring-boot-admin-server-ui</artifactId>
- </dependency>
为了便于区分, 定义端口号为 8081:
server.port=8081
在启动类上加注解 @EnableAdminServer .
即:
- package com.yanfei1819.adminserver;
- import de.codecentric.boot.admin.server.config.EnableAdminServer;
- import org.springframework.boot.SpringApplication;
- import org.springframework.boot.autoconfigure.SpringBootApplication;
- @SpringBootApplication
- @EnableAdminServer
- public class AdminServerApplication {
- public static void main(String[] args) {
- SpringApplication.run(AdminServerApplication.class, args);
- }
- }
我们先来感受一下 SpringBoot Admin 的界面:
页面中没有内容, 下面创建要监控的客户端.
创建 admin-client
引入 maven 依赖:
- <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>
设置其端口号为 8082:
- server.port=8082
- spring.boot.admin.client.url=http://localhost:8081
- # 激活所有的端点的 Web 方式请求. 如果不激活, 将看不到详细的监控信息.
- management.endpoints.Web.exposure.include=*
先启动 admin-server, 再启动 admin-client.
以下是相关的一些界面:
监控的首页:
Applications:
执行日志:
详细信息:
在以上的界面中, 几乎囊括了所有的监控信息. 读者感兴趣可以逐个详细了解. 此处因篇幅所限, 不作展开处理.
如果是需要监控多个客户端的信息, 只需要在客户端配置文件 application.properties 中配置:
- spring.boot.admin.client.url=http://localhost:8081
- # 激活所有的端点的 Web 方式请求. 如果不激活, 将看不到详细的监控信息.
- management.endpoints.Web.exposure.include=*
本章源码写了两个客户端, 文中为简化只演示了一个.
总结
上述文章只是介绍了 SpringBoot Admin 的相关应用, 在实际项目中, 可以做安全认证, 权限设置, 甚至消息通知等.
到目前为止, 本系列已经写了二十四篇. 一路使用的下来的感受是, 用比理解简单. 最重要的是理解, 理解思想, 原理(当然, 本系列由于针对的是 SpringBoot 入门的学习者, 在原理方面未作深入的详解. 后续将另开一个系列, 专攻原理解析), 方能使用起来得心应手, 碰到问题而不是只会复制, 粘贴, 问度娘.
说一句题外话. 这一篇与上一篇的时间相距较长. 主要是作者在这段时间大概学习了一下分布式, 高并发和 MySQL 这三块的知识点. 后面有时间也想将这些分享给大家.
最后, 欢迎大佬拍砖.
ps: 本系列的源码地址 https://github.com/yanfei1819/springboot-example .
来源: https://www.cnblogs.com/yanfei1819/p/11457867.html