SpringBoot中集成Actuator实现监控系统运行状态

场景

假设一个SpringBoot项目开发完毕部署到生产环境中,刚好出现线上问题,而运维希望能提供一些工具

帮助定位问题。

再假设应用部署成功,但是发现运行方式与预期不一致,通过查看日志,发现加载的Bean自动配置有误,

在生产环境中没法直接调试,用什么办法来解决问题。

SpringBoot提供了Actuator来支持这类需求。

若依前后端分离版手把手教你本地搭建环境并运行项目:

若依前后端分离版手把手教你本地搭建环境并运行项目_霸道流氓气质的博客-CSDN博客_若依前后端分离

在上面的基础上搭建起来项目。

注:

博客:
霸道流氓气质的博客_CSDN博客-C#,架构之路,SpringBoot领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、添加Actuator依赖

        
            org.springframework.boot
            spring-boot-starter-actuator
        

2、修改application.yml,修改端口号为9999(如果有必要,默认是8080)

#Actuator配置
management:
  server:
    #配置端口
    port: 9999

3、启动项目访问

http://localhost:9999/actuator/

SpringBoot中集成Actuator实现监控系统运行状态_第1张图片

默认只开启这几个端点。

如果在若依框架中访问时提示无法访问,需要放开鉴权

SpringBoot中集成Actuator实现监控系统运行状态_第2张图片

4、配置开启全部端点

#Actuator配置
management:
  server:
    #配置端口
    port: 9999
  #开放endpoints
  endpoints:
    web:
      exposure:
        #开放所有
        include: '*'

此时再访问

SpringBoot中集成Actuator实现监控系统运行状态_第3张图片

5、端点明细

HTTP 方法 路径 描述
GET /auditevents 显示应用暴露的审计事件 (比如认证进入、订单失败)
GET /beans 描述应用程序上下文里全部的 Bean,以及它们的关系
GET /conditions 就是 1.0 的 /autoconfig ,提供一份自动配置生效的条件情况,记录哪些自动配置条件通过了,哪些没通过
GET /configprops 描述配置属性(包含默认值)如何注入Bean
GET /env 获取全部环境属性
GET /env/{name} 根据名称获取特定的环境属性值
GET /flyway 提供一份 Flyway 数据库迁移信息
GET /liquidbase 显示Liquibase 数据库迁移的纤细信息
GET /health 报告应用程序的健康指标,这些值由 HealthIndicator 的实现类提供
GET /heapdump dump 一份应用的 JVM 堆信息
GET /httptrace 显示HTTP足迹,最近100个HTTP request/repsponse
GET /info 获取应用程序的定制信息,这些信息由info打头的属性提供
GET /logfile 返回log file中的内容(如果 logging.file 或者 logging.path 被设置)
GET /loggers 显示和修改配置的loggers
GET /metrics 报告各种应用程序度量信息,比如内存用量和HTTP请求计数
GET /metrics/{name} 报告指定名称的应用程序度量值
GET /scheduledtasks 展示应用中的定时任务信息
GET /sessions 如果我们使用了 Spring Session 展示应用中的 HTTP sessions 信息
POST /shutdown 关闭应用程序,要求endpoints.shutdown.enabled设置为true
GET /mappings 描述全部的 URI路径,以及它们和控制器(包含Actuator端点)的映射关系
GET /threaddump 获取线程活动的快照

6、访问其中一个端点url

http://localhost:9999/actuator/health

SpringBoot中集成Actuator实现监控系统运行状态_第4张图片

这表示当前Spring容器运行正常。

如果要看health端点的详细信息,需要配置

#Actuator配置
management:
  server:
    #配置端口
    port: 9999
  #开放endpoints
  endpoints:
    web:
      exposure:
        #开放所有
        include: '*'
  #查看详细的健康信息
  endpoint:
    health:
      show-details: always

SpringBoot中集成Actuator实现监控系统运行状态_第5张图片

7、同时还支持接口优雅关闭,默认是关闭的,需要配置开启

#Actuator配置
management:
  server:
    #配置端口
    port: 9999
  #开放endpoints
  endpoints:
    web:
      exposure:
        #开放所有
        include: '*'
  #查看详细的健康信息
  endpoint:
    health:
      show-details: always
    #开启接口优雅关闭
    shutdown:
      enabled: true

然后使用POST请求方式访问接口

http://localhost:9999/actuator/shutdown

SpringBoot中集成Actuator实现监控系统运行状态_第6张图片

你可能感兴趣的:(SpringBoot,springboot)