SpringBoot整合Actuator

SpringBootActuator提供了很多生产级的特性,比如监控和度量SpringBoot应用程序。Actuator的这些特性可以通过众多REST接口、远程shell和JMX获得。Actuator也可以和一些外部的应用监控系统整合(Prometheus,Graphite,DataDog,Influx,Wavefront,NewRelic等),通过一个统一友好的界面,监视和管理你的应用程序。

开启监控引入maven依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency>1234复制代码类型:[java]    依赖引入之后可以直接启动程序并在浏览器访问:可以得到如下结果:(UP:代表应用正常、DOWN:代表应用不正常、UNKNOWN代表未知状态。)从上面的相应结果来看,我们得到的监控信息非常有限,想要更多信息的话,需要在application.yml中进行配置:management:  endpoint: health:   show-details: always# 自定义一些相关信息,暴露给调用者info:  app: name: family describe: java123456789复制代码类型:[java]    执行代码,在浏览器访问:http://localhost:8888/actuator/info还可以开放监控端点给服务调用者:management:  # 开放所有监控端点  endpoints: web:   exposure:  include: '*'123456复制代码类型:[java]management:  # 开放访问的服务端点  endpoints: web:   exposure:  include: beans,envmanagement:  # 不暴露对外开放的服务端点  endpoints: web:   exposure:  include: mappings123456789101112复制代码类型:[java]    开启端点和开放端点是不一样的,绝大部分的监控端点是默认开启的,少部分监控端点默认是不开启的,对于默认不启用的监控服务端点,一定要先开启:management:  endpoint: shutdown:   enabled: true1234复制代码类型:[java]    shutdown可以替换。Actuator提供的接口Actuator提供了13个接口,可以分为三大类:配置接口、度量接口和其它接口,具体如下表所示。HTTP 方法路径描述GET/autoconfig提供了一份自动配置报告,记录哪些自动配置条件通过了,哪些没通过GET/configprops描述配置属性(包含默认值)如何注入BeanGET/beans描述应用程序上下文里全部的Bean,以及它们的关系GET/dump获取线程活动的快照GET/env获取全部环境属性GET/env/{name}根据名称获取特定的环境属性值GET/health报告应用程序的健康指标,这些值由HealthIndicator的实现类提供GET/info获取应用程序的定制信息,这些信息由info打头的属性提供GET/mappings描述全部的URI路径,以及它们和控制器(包含Actuator端点)的映射关系GET/metrics报告各种应用程序度量信息,比如内存用量和HTTP请求计数GET/metrics/{name}报告指定名称的应用程序度量值POST/shutdown关闭应用程序,要求endpoints.shutdown.enabled设置为trueGET/trace提供基本的HTTP请求跟踪信息(时间戳、HTTP头等)服务保护缓存及跨域我们将服务端点开放时,面向的对象是用户而不是对外的所有人。所以要对角色进行控制,下面来给大家用SpringSecurity来配置实现对Actuator服务端点的保护。首先引入依赖:<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-security</artifactId></dependency>1234复制代码类型:[java]    之后在SpringSecurity权限管理配置,在Configuration文件夹下创建ActuatorSecurity.java:package com.example.demo.configuration;import org.springframework.context.annotation.Configuration;import org.springframework.security.config.annotation.web.builders.HttpSecurity;import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;@Configurationpublic class ActuatorSecurity extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception {  http.httpBasic().and() .authorizeRequests() // 有ACTUATOR_ADMIN角色标识的用户才能访问 .antMatchers("/actuator/*").hasRole("ADMIN") // 必须登录认证才能访问 .antMatchers("/actuator/*").authenticated(); }}123456789101112131415161718复制代码类型:[java]    在application.yml中配置,添加一个用户及其具有的角色spring:  security: user:   name: family   password: 123456   roles:  ADMIN1234567复制代码类型:[java]    在浏览器访问:http://localhost:8888/actuator/health服务端点缓存不带参数的端点请求SpringBoot会自动进行缓存,通过下面的配置可以设置缓存时间。management:  endpoint: beans:   cache:  time-to-live: 200s12345复制代码类型:[java]    如果端点添加了SpringSecurity保护,服务端点的响应结果将不会被缓存。我们前面一直默认使用“/actuator”作为服务访问的根路径,但是这会造成安全隐患,所以可以做一些个性化配置。management:  endpoints: web:   base-path: /family   path-mapping:  health: healthcheck123456复制代码类型:[java]    配置修改之后访问链接变成:http://localhost:8888/actuator/health

(0)

相关推荐

  • 如何用阿里云搭建个人网站

    欢迎访问我的押韵精灵,是一个在线查询押韵的诗.词.歌.字的工具网站,包含双押多押等. 本文记录下如何在阿里云上搭建该网站. 选型 现在利用云计算的能力,个人或者小型企业都能快速的搭建网站,笔者也曾经用 ...

  • 对比springboot官方插件和自定义插件,差异竟然是。。。

    原创 积木 编程阁楼 6天前 以前的文章中,我们聊过springboot自定义插件<定制一个属于自己的spring boot starter>,定制过程还是蛮简单的,我们简单回顾下当时定制 ...

  • Spring Boot 使用 Micrometer 集成 Prometheus 监控 Java 应用性能

    文章目录 1.Micrometer 介绍 2.环境.软件准备 3.Spring Boot 工程集成 Micrometer 4.配置 Prometheus 监控应用指标 5.配置 Grafana Das ...

  • SpringBoot实战项目教程,真TM香!

    本章内容  Spring Boot简化Spring应用程序开发  Spring Boot的基本特性  Spring Boot工作区的设置 以下知识点解析来自于<SpringBoot实战&g ...

  • SpringBoot-2.3镜像方案为什么要做多个layer

    内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS等: 背景 <体验SpringBoot(2.3)应用制作Docker镜像(官方方案)>一 ...

  • SpringBoot热部署配置

    背景: 因为开发过程中会遇到进场的调试程序代码,进行小部分的修改,但是每次都要自己进行重新启动项目,太麻烦,这里就可以用到SpringBoot自带的热部署机制进行相关的配置,和我之前使用的Go框架Be ...

  • 「Spring Boot 2.4 新特性」启动耗时详细监控

    背景 Spring Boot 项目随着项目开发过程中引入中间件数量的增加,启动耗时 逐渐增加. Spring 生态复杂,非官方插件并未严格按官方标准实现.例如 @Configuration 注解提供了 ...

  • 2020最新总结,大厂常问的SpringBoot高频面试题(30题+答案+学习导图)

    前言 今天跟大家分享下SpringBoot 常见高频面试题的知识. 下面是小编关于SpringBoot的知识点总结了一个思维导图,希望对大家所有帮助! 话不多说,下面我们开始正题: 1. 什么是Spr ...

  • Spring Boot Actuator从未授权访问到getshell

    前言 部门大佬在某src上挖到了这个漏洞,是一个比较老的洞了,我觉得有点意思,就动手在本地搭了个环境测试一下. Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块 ...

  • 新出 SpringBoot 2.5 更新功能变动说明

    前言 目前 Spring Boot 2.5.0 RC1 已经发布,其开发团队表示将在 5 月 20 日正式 GA.我们梳理了一下大家比较关系和感兴趣的一些变更. 一. 运行端点变更 Secure in ...