一、Actuator是什么
Actuator是SpringBoot中一个很强大的功能,它自带的监控功能可以对程序内部运行情况监控和管理,通过restful api请求进行监管、审计、收集系统的运行情况,如应用的监控状况、Bean加载情况、环境变量、日志信息、线程信息等。
Actuator还能与外部应用监控系统进行整合,比如Prometheus, Graphite, DataDog, Influx, Wavefront, New Relic等。这些应用监控系统提供了仪表盘、图标、分析和告警等功能,可以让你通过统一的接口来轻松的实现应用监控和管理你。
二、如何配置Actuator
Maven 依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>
Spring Boot2.0及以上的版本中,默认只开放了info、health两个端点(其内部内置了非常多的端点,如(health、info、beans、httptrace、shutdown)等等),如果需要开放其他端点需要手动配置,配置如下:
# 开启所有端点management.endpoints.web.exposure.include=*# 显示详细的 health 信息management.endpoint.health.show-details=always# 打开 shutdown 端点,通过 POST 访问该端点可以关闭应用management.endpoint.shutdown.enabled=true
然后在pom.xml文件中添加配置信息,info端口才会有信息,配置信息如下
<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><!-- 开启info端口获取maven中的属性 --><executions><execution><goals><goal>build-info</goal></goals></execution></executions></plugin></plugins></build>
env 端点,他的作用是显示 ConfigurableEnvironment 中的属性,应用获取环境信息,包括:环境变量、JVM属性、应用的配置配置、命令行中的参数 localhost:8080/actuator/env
mapping端点,url与控制器映射关系信息 localhost:8080/actuator/info
{"build": {"version": "0.0.1-SNAPSHOT","artifact": "springboot-actuator","name": "springboot-actuator","group": "com.example","time": "2020-05-06T04:012:36.793Z"}}
metrics 端点,提供了一些有用的应用程序指标(JVM 内存使用、系统CPU使用等),如内存的使用情况、HTTP请求统计以及外部资源指标等。
查看所有度量指标
/metrics:该端点用来返回当前应用的各类重要度量指标,比如:内存信息、线程信息以及垃圾回收信息等信息。可以通过actuator/metrics/{name} 来获取详细信息,例如/actuator/metrics/jvm.buffer.memory.usedlocalhost:8080/actuator/metrics
运行时改变特定日志日志等级
通过 POST 方式请求http://localhost:8080/actuator/loggers/(name),传以下参数
{"configuredLevel": "DEBUG"}
端点列表

获取endponit信息
127.0.0.1:8080/actuator/endpointName
安全建议
在使用Actuator时,一些不正确的使用或者一些不经意的疏忽,会引起严重的信息泄露等安全隐患事故。在代码审查的时候如果是springboot项目并且有actuator依赖的时候,应该需要对安全依赖及配置进行检查。也可作为一条规则添加到黑盒扫描器中进一步把控。其安全的做法是一定要引入security依赖,打开安全限制并进行身份验证。同时设置单独的Actuator管理端口并配置不对外网开放,这样操作基本上就没什么多大问题了。

原创声明:本文为【Java学习提升】原创博文,转载请注明出处。
本文来源于公众号:【Java学习提升】 专注于Java领域技术分享,Java知识体系学习、分享面试经验,让我们结伴而行,共同成长!
本文深入探讨SpringBoot的Actuator模块,介绍其监控和管理功能,包括如何配置、使用端点进行应用监控,并讨论安全实践。
1471

被折叠的 条评论
为什么被折叠?



