SpringBoot的Actuator是如何进行服务监控与管理

一、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知识体系学习、分享面试经验,让我们结伴而行,共同成长!

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值