springboot之actuator监控
actuator是spring boot的一个附加功能,可帮助你在应用程序生产环境时监视和管理应用程序。可以使用HTTP的各种请求来监管,审计,收集应用的运行情况.0特别对于微服务管理十分有意义.
如何使用
如果要启用springboot的actuator功能,只需要在pom中添加如下依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
什么是endpoint
Endpoints是actuator非常重要的部分,用来监视程序,和应用交互(如检查信息,)
ID 描述 是否需要鉴权
actuator 为其他端点提供“发现页面”。要求Spring HATEOAS在classpath路径上。 需要
auditevents 陈列当前应用程序的审计事件信息。 需要
autoconfig 展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。 需要
beans 显示应用程序中所有Spring bean的完整列表。 需要
configprops 显示所有配置信息。 需要
dump dump所有线程。 需要
env 陈列所有的环境变量。 需要
flyway Shows any Flyway database migrations that have been applied. 需要
health 显示应用程序运行状况信息 不需要
info 显示应用信息。 不需要
loggers 显示和修改应用程序中的loggers配置。 需要
liquibase 显示已经应用的任何Liquibase数据库迁移。 需要
metrics 显示当前应用程序的“指标”信息。 需要
mappings 显示所有@RequestMapping的url整理列表。 需要
shutdown 关闭应用(默认情况下不启用)。 需要
trace 显示跟踪信息(默认最后100个HTTP请求)。 需要
注意
引入依赖之后,直接访问 http://localhost:8080/health 会显示401未授权,最简单的方法是关闭授权校验
在application.yml中配置
management:
security:
enabled: false
当然这样是很不安全的哈,所以我们推荐使用spring security进行权限控制
需要我们在pom中引入
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
然后配置application.yml 如下
# 安全验证的账号密码
security:
user:
name: demo
password: actuator
然后我们可以用配置中的账号进行登陆,然后将获取的Authorization放在请求头即可.
我们可以通过实现InfoContributor来定义我们自己的info相应体
@Component
public class CustomContributor implements InfoContributor {
@Override
public void contribute(Info.Builder builder) {
builder.withDetail("custom","this is my custom").build();
}
}
参考文档
https://docs.spring.io/spring-boot/docs/1.5.9.BUILD-SNAPSHOT/reference/htmlsingle