1:简介
2:基于Maven的项目:
3.端点
3.1 端点简介
3.2 端点开启
3.3 默认暴露的
3.4控制暴露的端点:
4: 保护端点
4.1 加入POM 依赖
4.2 配置用户名密码
配置权限:
4.3 通过配置的方式允许所有匿名用户访问
4:健康信息与自定义健康状况:
4.1 健康信息显示设置
4.2 spring boot 自动配置的健康指标
4.3自定义健康状况
5: 自定义应用程序信息
6: 自定义管理端点路径
1:简介
将应用程序投入生产时帮助您监视和管理应用程序。您可以选择使用HTTP端点或JMX(Java Management Extensions)管理和监视应用程序。审核,运行状况和指标收集也可以自动应用于您的应用程序。
目的: 实现对服务的监控与管理
DevOps: 是开发 与 运维的总称
2:基于Maven的项目:
<code><dependencies> <dependency> <groupid>org.springframework.boot/<groupid> <artifactid>spring-boot-starter-actuator/<artifactid> /<dependency>/<dependencies>/<code>
<code>dependencies { compile("org.springframework.boot:spring-boot-starter-actuator")}/<code>
3.端点
health端点映射 访问: http://localhost:8888/actuator/health
3.1 端点简介
如果您的应用程序是Web应用程序(Spring MVC,Spring WebFlux或Jersey),则可以使用以下附加端点:
3.2 端点开启
除shutdown端点均处于启用状态。要配置端点的启用,请使用其management.endpoint.
management.endpoint.shutdown.enabled=true
management.endpoints.enabled-by-default=false # 禁用所有端点management.endpoint.info.enabled=true #开启info端点
3.3 默认暴露的
3.4控制暴露的端点:
默认暴露 health info 端点
# 公开端点
management.endpoints.jmx.exposure.include=health,info# 闭塞端点management.endpoints.web.exposure.include=* // 暴露所有端点management.endpoints.web.exposure.exclude=env,beans //开放自定义端点
4: 保护端点
4.1 加入POM 依赖
<code><dependencies> <dependency> <groupid>org.springframework.boot/<groupid> <artifactid>spring-boot-starter-actuator/<artifactid> /<dependency>/<dependencies>/<code>
4.2 配置用户名密码
<code>dependencies { compile("org.springframework.boot:spring-boot-starter-actuator")}/<code>
配置权限:
继承 WebSecurityConfigurerAdapter
<code>@Configuration(proxyBeanMethods = false)public class ActuatorSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests((requests) -> requests.anyRequest().hasRole("ENDPOINT_ADMIN")); http.httpBasic(); }}/<code>
然后配置 ENDPOINT_ADMIN
<code>spring.security.user.roles=ENDPOINT_ADMINmanagement.endpoints.web.exposure.include=*spring.security.user.name=rootspring.security.user.password=root/<code>
4.3 通过配置的方式允许所有匿名用户访问
该配置允许未经身份验证的端点访问
<code>该配置允许未经身份验证的端点访问@Configuration(proxyBeanMethods = false)public class ActuatorSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { http.requestMatcher(EndpointRequest.toAnyEndpoint()).authorizeRequests((requests) -> requests.anyRequest().permitAll()); }}/<code>
4:健康信息与自定义健康状况:
4.1 健康信息显示设置
<code>management.endpoint.health.show-details=always // 显示详细信息management.endpoint.health.show-details=when_authorized // 授权后才能访问management.endpoint.health.show-details=never // 不显示/<code>
4.2 spring boot 自动配置的健康指标
HealthIndicators在适当的情况下,Spring Boot会自动配置以下内容:
4.2.1: 禁用它们。
# 禁用全部management.health.defaults.enabled=false
# 禁用rabbitmanagement.health.rabbit.enabled=false
4.3自定义健康状况
注册实现该HealthIndicator接口的Spring bean 。您需要提供该health()方法的实现并返回Health响应
<code><dependency> <groupid>org.springframework.boot/<groupid> <artifactid>spring-boot-starter-security/<artifactid> /<dependency>/<code>
下表显示了内置状态的默认状态映射:
5: 自定义应用程序信息
<code># 通过info 关键字定义 info.* = xxxinfo.helloworld=helloworldinfo.jdk.version=1.8返回:{"helloworld":"helloworld","jdk":{"version":"1.8"}}/<code>
6: 自定义管理端点路径
<code>management.endpoints.web.base-path=/manager# 原地址http://localhost:8080/actuator/health# 改变后地址http://localhost:8080/manager/health/<code>
閱讀更多 人工創智 的文章