Actuator 是 Spring Boot 提供的对应用系统的自省和监控的集成功能, 可以对应用系统进行配置查看, 相关功能统计等.
使用 Actuator
引入依赖即可
- Maven:
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- Gradle:
- compile('org.springframework.boot:spring-boot-starter-actuator')
- Endpoints
列举一些主要的 endpoints
配置文件属性介绍
地址和端口的配置
management.port: 指定访问这些监控方法的端口, 与逻辑接口端口分离. 如果不想将这些暴露在 http 中, 可以设置 management.port = -1
management.address: 指定地址, 比如只能通过本机监控, 可以设置 management.address = 127.0.0.1
敏感信息访问限制
根据上面表格, 鉴权为 false 的, 表示不敏感, 可以随意访问, 否则就是做了一些保护, 不能随意访问.
endpoints.mappings.sensitive=false
这样需要对每一个都设置, 比较麻烦. 敏感方法默认是需要用户拥有 ACTUATOR 角色, 因此, 也可以设置关闭安全限制:
management.security.enabled=false
或者配合 Spring Security 做细粒度控制.
自定义系统信息
可以通过访问 / info 获取信息, 需要在配置文件设置
- info:
- aaa:
- name: xxx
- email: xxx@qq.com
- bbb:
- age: 25
- hobbies: running
- build:
- artifact: "@project.artifactId@"
- name: "@project.name@"
- version: "@project.version@"
此时访问 localhost:8080/info 返回一下信息
如果使用 maven, 可以访问 pom.xml 文件的信息, 用法如下:
// 获取 pom.xml 中 project 节点下 artifactId 属性 artifact: "@project.artifactId@"
其他
/shutdown 这个需要 post 方式, 通过请求来关闭应用. 这个操作比较敏感, 要想真正生效, 需要以下配置:
endpoints.shutdown.enabled: true
我们可以通过实现 HealthIndicator 接口, 编写自己的 / health 方法逻辑. 也可以增加自定义监控方法.
查看详细介绍, 请移步 官方文档 http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#production-ready
来源: https://juejin.im/post/5afbe1856fb9a07acc11e5a4