1.说明

本文详细介绍Spring Boot集成Actuator监控管理的方法,
基于已经创建好的Spring Boot工程,
然后引入Actuator依赖,
介绍监控管理相关功能的使用。
Spring Boot提供的准生产环境下的应用监控和管理功能,
可以通过HTTP,JMX协议来进行操作,
自动获得审计、运行状态及度量指标等信息。
本文主要介绍通过HTTP进行监控和管理,
另外通过配置SSL,能够支持HTTPS协议操作。

2.引入依赖

修改pom.xml文件,
引入spring-boot-starter-actuator依赖:

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

实际使用的版本是2.3.1.RELEASE,
后面的演示说明都是基于这个版本。

3.启动服务

配置文件和启动类都无需修改,
只要是一个Spring Boot微服务就行。
在application.yml文件指定了服务启动端口,
方便后面使用HTTP访问:

server:port: 8011

启动成功日志:

.   ____          _            __ _ _/\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \\\/  ___)| |_)| | | | | || (_| |  ) ) ) )'  |____| .__|_| |_|_| |_\__, | / / / /=========|_|==============|___/=/_/_/_/:: Spring Boot ::        (v2.3.1.RELEASE)17:17:10.366 [restartedMain] INFO  com.yuwen.spring.actuator.ActuatorApplication - Starting ActuatorApplication on yuwen-asiainfo with PID 9740 (D:\Code\Learn\SpringBoot\spring-boot-demo\actuator\target\classes started by yuwen in D:\Code\Learn\SpringBoot\spring-boot-demo\actuator)
17:17:10.371 [restartedMain] INFO  com.yuwen.spring.actuator.ActuatorApplication - No active profile set, falling back to default profiles: default
17:17:10.425 [restartedMain] INFO  org.springframework.boot.devtools.env.DevToolsPropertyDefaultsPostProcessor - Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
17:17:10.425 [restartedMain] INFO  org.springframework.boot.devtools.env.DevToolsPropertyDefaultsPostProcessor - For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
17:17:11.107 [restartedMain] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat initialized with port(s): 8011 (http)
17:17:11.118 [restartedMain] INFO  org.apache.coyote.http11.Http11NioProtocol - Initializing ProtocolHandler ["http-nio-8011"]
17:17:11.118 [restartedMain] INFO  org.apache.catalina.core.StandardService - Starting service [Tomcat]
17:17:11.118 [restartedMain] INFO  org.apache.catalina.core.StandardEngine - Starting Servlet engine: [Apache Tomcat/9.0.36]
17:17:11.164 [restartedMain] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring embedded WebApplicationContext
17:17:11.164 [restartedMain] INFO  org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext - Root WebApplicationContext: initialization completed in 738 ms
17:17:11.326 [restartedMain] INFO  org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor - Initializing ExecutorService 'applicationTaskExecutor'
17:17:11.497 [restartedMain] INFO  org.springframework.boot.devtools.autoconfigure.OptionalLiveReloadServer - LiveReload server is running on port 35729
17:17:11.500 [restartedMain] INFO  org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver - Exposing 2 endpoint(s) beneath base path '/actuator'
17:17:11.513 [restartedMain] INFO  org.apache.coyote.http11.Http11NioProtocol - Starting ProtocolHandler ["http-nio-8011"]
17:17:11.526 [restartedMain] INFO  org.springframework.boot.web.embedded.tomcat.TomcatWebServer - Tomcat started on port(s): 8011 (http) with context path ''
17:17:11.566 [restartedMain] INFO  com.yuwen.spring.actuator.ActuatorApplication - Started ActuatorApplication in 1.414 seconds (JVM running for 2.41)
17:17:12.939 [RMI TCP Connection(9)-127.0.0.1] INFO  org.apache.catalina.core.ContainerBase.[Tomcat].[localhost].[/] - Initializing Spring DispatcherServlet 'dispatcherServlet'
17:17:12.939 [RMI TCP Connection(9)-127.0.0.1] INFO  org.springframework.web.servlet.DispatcherServlet - Initializing Servlet 'dispatcherServlet'
17:17:12.942 [RMI TCP Connection(9)-127.0.0.1] INFO  org.springframework.web.servlet.DispatcherServlet - Completed initialization in 3 ms

请注意如下日志:

Exposing 2 endpoint(s) beneath base path '/actuator'

说明在基本路径'/actuator'下暴露2个端点。

4.通过日志查看暴露的端点

上面的日志只说明了暴露了2个端点,
具体对外暴露的端点可以通过配置日志查看。

修改log4j2.xml日志级别为Trace:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN"><Appenders><Console name="Console" target="SYSTEM_OUT"><PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/></Console></Appenders><Loggers><Root level="TRACE"><AppenderRef ref="Console"/></Root></Loggers>
</Configuration>

重启服务可以看到如下日志:

17:20:34.665 [restartedMain] INFO  org.springframework.boot.actuate.endpoint.web.EndpointLinksResolver - Exposing 2 endpoint(s) beneath base path '/actuator'
17:20:34.666 [restartedMain] TRACE org.springframework.beans.factory.support.DefaultListableBeanFactory - Eagerly caching bean 'webEndpointServletHandlerMapping' to allow for resolving potential circular references
17:20:34.666 [restartedMain] TRACE org.springframework.beans.factory.support.DefaultListableBeanFactory - Invoking afterPropertiesSet() on bean with name 'webEndpointServletHandlerMapping'
17:20:34.666 [restartedMain] TRACE org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping - Register "{GET /actuator/health, produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}" to java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
17:20:34.666 [restartedMain] TRACE org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping - Register "{GET /actuator/health/**, produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}" to java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
17:20:34.666 [restartedMain] TRACE org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping - Register "{GET /actuator/info, produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}" to java.lang.Object org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping$OperationHandler.handle(javax.servlet.http.HttpServletRequest,java.util.Map<java.lang.String, java.lang.String>)
17:20:34.667 [restartedMain] TRACE org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping - Register "{GET /actuator, produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}" to public java.util.Map<java.lang.String, java.util.Map<java.lang.String, org.springframework.boot.actuate.endpoint.web.Link>> org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping$WebMvcLinksHandler.links(javax.servlet.http.HttpServletRequest,javax.servlet.http.HttpServletResponse)

可以看到有4个URL服务端点:

GET /actuator/health
GET /actuator/health/**
GET /actuator/info
GET /actuator

其中一个是/actuator自己,
/actuator下面有3个URL,
但是/health和/health/**其实是1个端点,
所以日志中说是在基本路径下暴露2个端点。

5.通过HTTP查看暴露的端点

浏览器访问监控管理提供的基本路径:

http://localhost:8011/actuator

同样可以看到暴露出来的所有端点:

{"_links": {"self": {"href": "http://localhost:8011/actuator","templated": false},"health": {"href": "http://localhost:8011/actuator/health","templated": false},"health-path": {"href": "http://localhost:8011/actuator/health/{*path}","templated": true},"info": {"href": "http://localhost:8011/actuator/info","templated": false}}
}

6.查看health端口

访问上面查询出的health端口:

http://localhost:8011/actuator/health

返回结果:

{"status": "UP"
}

代表监控的微服务状态是正常运行的。

7.查看info端口

访问上面查询出的info端口:

http://localhost:8011/actuator/info

返回结果:

{}

返回结果为空,
因为还没有在application.yml中设置参数。

8.新增info参数

在application.yml中新增info参数:

info:description: spring boot actuator

在info下新增description参数,
重启服务后访问info端口:

http://localhost:8011/actuator/info

返回结果:

{"description": "spring boot actuator"
}

可以看到新增的参数能够查询出来了,
实际上在info下可以新增任意参数,
都能够通过info端点查询出来。

9.参考文档

Spring Boot Actuator: Production-ready Features

http://www.taodudu.cc/news/show-1250982.html

相关文章:

  • SpringBoot集成Actuator端点配置
  • SpringBoot集成Actuator健康指示器health
  • gRPC创建Java RPC服务
  • ProtoBuf3语法指南(Protocol Buffers)_上
  • ProtoBuf3语法指南(Protocol Buffers)_下
  • gPRC基本介绍
  • Log4j2日志框架集成Slf4j日志门面
  • XML解析的四种方式
  • XML解析和创建的JAXB方式
  • 【转载】JSON介绍
  • Elasticsearch单机安装Version7.10.1
  • Drools创建Maven工程
  • Java二、八、十、十六进制介绍
  • Drools集成SpringBoot
  • Drools集成SpringBootStarter
  • Jsonschema2pojo从JSON生成Java类(Maven)
  • YangTools从YANG生成Java类(Maven)
  • GitBash添加tree命令
  • SpringBoot集成Maven工程
  • SpringBoot开发Restful接口
  • Notepad++便签模式
  • SpringBoot集成Cache缓存(Ehcache缓存框架,注解方式)
  • PowerDesigner生成数据库刷库脚本
  • PowerDesigner生成数据库设计文档
  • Eclipse配置国内镜像源
  • PingInfoView批量PING工具
  • Git合并两个不同的仓库
  • Guava事件处理组件Eventbus使用入门
  • Junit4集成到Maven工程
  • Redis集成到Maven工程(Jedis客户端)

SpringBoot集成Actuator监控管理相关推荐

  1. SpringBoot:Actuator 监控管理工程各项信息

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 在微服务体系中,有很多工程相互作用,如果其中某一个Down 了,可能就不是那么容易快速定位 bug ...

  2. SpringBoot集成Actuator端点配置

    1.说明 Actuator端点可以监控应用程序并与之交互. Spring Boot包括许多内置的端点, 比如health端点提供基本的应用程序运行状况信息, 并允许添加自定义端点. 可以控制每个单独的 ...

  3. springboot集成Actuator

    Actuator监控端点,主要用来监控与管理. 原生端点主要分为三大类:应用配置类.度量指标类.操作控制类. 应用配置类:获取应用程序中加载的配置.环境变量.自动化配置报告等与SpringBoot应用 ...

  4. springboot整合Actuator监控

    springboot整合Actuator监控. 1.简要说明: Actuator提供了对springboot应用程序监视和管理的能力,可以选择通过使用HTTP Endpoint或者使用JMX来管理和监 ...

  5. springboot集成druid监控

    springboot集成druid监控 引入pom依赖 <!-- druid数据库连接池 --> <dependency><groupId>com.alibaba& ...

  6. SpringBoot集成Actuator健康指示器health

    1.说明 本文详细介绍Actuator提供的HealthIndicators, 即健康指示器的配置使用, 利用自动配置的健康指标, 检查正在运行的应用程序的状态, 以及自定义健康指标的方法. 监控软件 ...

  7. SpringBoot笔记:SpringBoot集成SpringbootAdmin监控

    文章目录 SpringBootAdmin是什么 接入配置 server端配置 client端配置 测试效果 SpringBootAdmin是什么 Spring Boot Admin 是一个管理和监控 ...

  8. SpringBoot中Actuator监控

    Actuator监控路径 修改pom.xml文件 修改application.yml 创建自定义的健康信息 也可以通过修改配置文件,进行配置:

  9. SpringBoot 集成Spring Boot Actuator 监控管理

    spring-boot-starter-actuator功能简介 根据应用依赖和配置自动创建出来的监控和管理端点.通过这些端点,我们可以实时获取系统应用的各项监控指标. spring-boot-sta ...

最新文章

  1. android 贝塞尔曲线点击区域,白话经典贝塞尔曲线及其在 Android 中的应用
  2. 获取mysql所有用户权限_python 获取mysql数据库列表以及用户权限
  3. 构造函数可以实例化对象
  4. 透过性别看世界_透过树林看森林
  5. 保定有国家承认的计算机学校吗,河北省122所大学名单,不在名单内的都是国家不承认的野鸡学校...
  6. shmmax单位_kernel.shmmax ,kernel.shmmni 和kernel.shmall
  7. 查找CSDN误删除博客方法
  8. matlab连通域分割_MATLAB车牌识别之7个字符切割浅谈【抽丝剥茧】
  9. 论文笔记_SLAM_Review_Visual simultaneous localization and mapping: a survey
  10. python 二分类的实例_Python深度学习案例1--电影评论分类(二分类问题)
  11. glnxa64 matlab 什么版本_Matlab 2014a 免费版-Matlab2014 Mac版下载 V2014b免费版-PC6苹果网...
  12. 计算机毕业设计ssm基于SSM框架的人力资源管理系统89kq5系统+程序+源码+lw+远程部署
  13. sql服务器注册表被禁用,彻底删除SQL Server注册表信息
  14. 软件渗透测试:定义、需求、过程
  15. 【WordPress】添加备案信息
  16. GP技术的展望——道生一,一生二
  17. c#用canny算子做边缘提取_matlab-如何进行边缘检测/边缘提取(对弹孔进行边缘检测)
  18. B-spline Curves 学习之B样条曲线定义(4)
  19. 【摸鱼神器】UCode Cms管理系统 内置超好用的代码生成器 解决多表连接痛点
  20. 学习日志--1.html

热门文章

  1. 即时通讯推送保障及网络优化详解(一)
  2. cool 软件 —— Carnac(实时桌面显示按键)
  3. 记那些年在asp.net mvc上挖过的坑
  4. Python开发【第二篇】:Python基本数据类型
  5. Nodejs 使用express模块创建一个服务器
  6. JavaScript学习笔记(四)--复杂数据类型Object
  7. 使用java实现打印功能_java实现打印功能有没有比较好的方式?
  8. SetTimeout(延迟计时器)
  9. C语言判断点是否在矩阵内
  10. java pcm16位_Java – 将16位带符号的pcm音频数据数组转换为双数组