栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring Boot Actuator 指标监控

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring Boot Actuator 指标监控

1、简介 2、SpringBoot Actuator 2.1介绍: 2.2实现: 2.3Actuator Endpoint 3、Spring Boot Admin 3.1、使用: 3.2、通过注册中心集成客户端 3.3、安全防护 3.4、邮件通知 4、定制 Endpoint 4.1、定制 Health 信息 4.2、定制info信息 4.3、定制Metrics信息 4.4 、定制Endpoint 1、简介

干嘛的:
主要运用在微服务架构,所以我建议你先学微服务,否则可能get不到它的用处,只有大型的分布式系统才会用到指标监控… Why:?

对于一个大型的几十个、几百个微服务构成的微服务架构系统,在线上时通常会遇到下面一些问题,比如:

  1. 如何知道哪些服务除了问题,如何快速定位? (健康状况)
  2. 如何统一监控各个微服务的性能指标(内存、jvm、并发数、线程池、Http请求统计)
  3. 如何统一管理各个微服务的日志?(切换线上日志等级,快速搜索日志…)
  4. 如何优雅管理服务下线(正在运行的线程不发生中断)

So: 在这种大型分布式应用的环境下,我们如何能够快速发现问题、快速解决问题, 必须要有监控平台、(链路追踪、日志)

2、SpringBoot Actuator

介绍:
SpringBoot自带监控功能Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等

实现:

1  
2  org.springframework.boot 
3  spring‐boot‐starter‐actuator 
4 

  1. 引入场景
  2. 访问 http://localhost:8080/actuator/**
  3. 暴露所有监控信息为HTTP
1 management: 
2  endpoints: 
3  enabled‐by‐default: true # 默认开启所有监控端点 
4  web: 
5  exposure: 
6  include: '*' # 以web方式暴露所有端点 
7 

测试
http://localhost:8080/actuator/beans
http://localhost:8080/actuator/configprops
http://localhost:8080/actuator/metrics
http://localhost:8080/actuator/metrics/jvm.gc.pause
http://localhost:8080/actuator/endpointName/detailPath

Health:监控状况

一个组件指标状态为Down则总状态信息Down,很多组件中都定制了Health子节点指标: 比如jdbc、redis、等等

shutdown:优雅关闭
注意需要web服务器的支持

1 server: 
2  shutdown: graceful

Metrics:运行时指标

Loggers:日志记录

1 logging: 
2  file: 
3  name: D:/logs/xushu.log
3、Spring Boot Admin

可视化监控平台, 是一个基于 Spring Boot Actuator 端点之上的 Vue.js 应用程序。

GitHub官方地址:https://github.com/codecentric/spring-boot-admin

3.1、使用:

1、设置Spring Boot Admin Server
创建服务器并引入依赖,如一个springboot项目
版本建议: Spring Boot 2.x=Spring Boot Admin 2.x (比如Spring Boot 2.3.x 可以用Spring Boot Admin 2.3.x)

2  de.codecentric 
3  spring‐boot‐admin‐starter‐server 
4  2.4.0‐SNAPSHOT 
5  
6  
7  org.springframework.boot 
8  spring‐boot‐starter‐web 
9  

通过添加@EnableAdminServer到配置中来引入Spring Boot Admin Server配置:

1 @SpringBootApplication 
2 @EnableAdminServer 
3 public class Boot05AdminserverApplication { 
4 public static void main(String[] args) { 
5  SpringApplication.run(Boot05AdminserverApplication.class, args); 
6  } 
7
8 } 

注册客户端应用程序并引入依赖,如一个springboot项目

1  
2  de.codecentric 
3  spring‐boot‐admin‐starter‐client 
4  2.3.1 
5  

配置Spring Boot Admin Server的URL,客户端连接Spring Boot Admin Server的地址

1 spring.boot.admin.client.url=http://localhost:8080
2 management.endpoints.web.exposure.include=*

若连接不上,可能是地址使用计算机名称作为地址,可以改变使用ip注册

1 spring: 
2  boot: 
3  admin: 
4  client: 
5  url: http://localhost:8080 
6  instance: 
7  prefer‐ip: true # 使用ip注册进来 
8  application: 
9  name: boot‐05‐web‐admin # 客户端名称 

访问 服务器的根目录如http://localhost:8080/ 即可浏览

3.2、通过注册中心集成客户端

如果你有成百上千个微服务, 这样配置未免太麻烦。如果您已经为您的应用程序使用了 Spring Cloud (Alibabanacos) Discovery,那么您就不需要 SBA 客户端。只需在 Spring Boot Admin Server 中添加一个 DiscoveryClient,剩下的工作由我们的 AutoConfiguration 完成。
下面的步骤使用 Nacos,但是也支持其他 Spring Discovery实现。

SBA服务端:

  1. 添加依赖
1  
2  
3  com.alibaba.cloud 
4  spring‐cloud‐starter‐alibaba‐nacos‐discovery 
5  
  1. 配置Nacos
1 spring: 
2  cloud: 
3  nacos: 
4  discovery: 
5  server‐addr: 127.0.0.1:8848 
6  username: nacos 
7  password: nacos 
8  application: 
9  name: spring‐boot‐admin‐server 
1 # 也会将SBA服务配置为客户端, 所以也可以配置自己的endpoint规则(可选) 
2 management: 
3  endpoints: 
4  web: 
5  exposure: 
6  include: '*' 
7  endpoint: 
8  health: 
9  show‐details: always 

SBA客户端:

  1. 依赖
    a. 只需添加actuator即可
1
2   
3  org.springframework.boot 
4  spring‐boot‐starter‐actuator 
5   
  1. 配置
    a. 如需公开更多端点:(不配置该选项则只显示(health和info端点)
1 management: 
2  endpoints: 
3  web: 
4  exposure: 
5  include: '*' 

该文章后续及配套资料+代码,关注我,免费领取

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/921861.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号