赞
踩
springboot作为微服务框架,除了它强大的快速开发功能外,还有就是它提供了actuator模块,引入该模块能够自动为springboot应用提供一系列用于监控的端点,而且springcloud在实现各个微服务组件时,对其做了扩展,比如为api网关组件zuul提供了/routes
端点来返回路由信息。
在没有引入其他依赖之前,这些端点的内容较为简单,后续引入springcloud的各个组件后,返回值会变得更加丰富。
springboot引入actuator组件,我们可以通过http/jmx/ssh
来查看springboot应用的配置、各种指标、健康程度等。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
1、应用配置类
帮助我们轻松获取一些spring应用配置报告,包括
beans #springboot配置的bean信息
configprops #所有@ConfigurationProperties注解的配置信息,如文件上传的最大允许配置等
env
mappings #输出通过注解@RequestMapping设置的url映射,可以通过它来查看url对应的controller
2、度量指标类
提供应用程序运行过程中一些快照信息,比如内存情况、http请求统计等
metrics #springboot的性能指标,如已有内存、未占用内存等
dump #获取某一时刻虚拟机线程栈信息,用来诊断系统问题
health #默认输出磁盘空间、数据源、redis、elasticsearch的健康诊断信息
trace #http跟踪,能查看最近的http请求和响应。
如访问http://localhost:8080/health,up表示健康,对象正常,down表示异常。
3、操作控制类
endpoints.shutdown.enabled=true #关闭应用
只需要访问localhost:8080/shutdown
就可以关闭应用,所以线上使用时,需要对其加入一定的保护机制,比如定制actuator的端点路径
、整合spring security进行安全校验等。
1、springboot2默认并不启动所有的监控,需要做如下配置:
endpoints.default.web.enabled=true
2、只开启所需的端点
endpoints.enabled=false
endpoints.beans.enabled=true
3、定制端点访问端口、访问路径来保护应用
management.context-path=/manage
management.port=8081 #出于安全考虑,不暴露端点的端口到外部,就需要应用本身的业务端口和端点端口不同
management.port=-1 #关闭http端点
在控制台调用java内置的jconsole来实现jmx监控。
打开cmd,输入jconsole,选择应用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。