使用 Spring Boot Admin 监控应用(随记)
2021-04-27 本文已影响0人
简楼
前言
生产上对 Web 应用 的监控是十分必要的。
对于 Spring Boot 应用来说我们可以通过一个轻量级的监控工具 Spring Boot Admin (SBA) 来进行监控。
Spring Boot Admin 功能
- 显示健康状况,显示应用度量指标详情,例如
- JVM和内存指标
- micrometer度量
- 数据源指标
- 缓存指标
- 显示构建信息编号
- 关注并下载日志文件
- 下载
heapdump
- 查看
jvm
系统和环境属性 - 查看 Spring Boot 配置属性
- 支持 Spring Cloud 的环境端点和刷新端点 ``
- 支持 K8s 易用的日志级别管理
- 与
JMX-beans
交互 - 查看线程转储
- 查看
http
跟踪 - 查看
auditevents
- 查看
http-endpoints
- 查看计划任务
- 查看和删除活动会话(使用 Spring Session )
- 查看
Flyway
/Liquibase
数据库迁移 - 状态变更通知(通过电子邮件,Slack,Hipchat等,支持钉钉)
- 状态更改的事件日志(非持久化)
创建admin-server模块
- 在pom.xml中添加相关依赖:
<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>
- 在application.yml中进行配置:
spring:
application:
name: admin-server
server:
port: 9301
- 在启动类上添加@EnableAdminServer来启用admin-server功能:
@EnableAdminServer
@SpringBootApplication
public class AdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(AdminServerApplication.class, args);
}
}
创建admin-client模块
*在pom.xml中添加相关依赖:
<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>
- 在application.yml中进行配置:
spring:
application:
name: admin-client
boot:
admin:
client:
url: http://localhost:9301 #配置admin-server地址
server:
port: 9305
management:
endpoints:
web:
exposure:
include: '*'
endpoint:
health:
show-details: always
logging:
file: admin-client.log #添加开启admin的日志监控
- 启动admin-server和admin-client服务。
监控信息演示
-
访问如下地址打开Spring Boot Admin的主页:http://localhost:9301
image.png
-
点击wallboard按钮,选择admin-client查看监控信息;
-
监控信息概览;
image.png -
度量指标信息,比如JVM、Tomcat及进程信息;
image.png -
环境变量信息,比如系统属性、系统环境变量以及应用配置信息;
image.png -
查看所有创建的Bean信息;
image.png -
查看应用中的所有配置信息;
image.png -
查看日志信息,需要添加以下配置才能开启;
logging:
file: admin-client.log #添加开启admin的日志监控
image.png
-
查看JVM信息;
image.png -
查看可以访问的Web端点;
image.png -
查看HTTP跟踪信息;
image.png
结合注册中心使用
Spring Boot Admin结合Spring Cloud 注册中心使用,只需将admin-server和注册中心整合即可,admin-server 会自动从注册中心获取服务列表,然后挨个获取监控信息。