SpringBoot实战第十一章应用监控笔记
SpringBoot 提供了运行时的应用监控和管理功能,可以通过http,JMX, SSH协议来进行操作
Spring Initializr依赖为 Actuator,Web,HATEOAS
1. 监控和管理端点
端点名 | 描述 |
actuator | 所有EndPoint的列表,需加入spring HATEOAS |
autoconfig | 当前应用的所有自动配置 |
beans | 当前应用的所有Bean信息 |
configprops | 当前应用的所有配置属性 |
dump | 显示当前应用线程状态信息 |
env | 显示当前应用当前环境信息 |
health | 显示当前应用健康状况 |
info | 显示当前应用信息 |
metrics | 显示当前应用的各项指标信息 |
mappings | 显示所有的@RequestMapping映射的路径 |
shutdown | 关闭当前引用(默认关闭),不支持GET,支持POST |
trace | 显示追踪信息 |
2. 定制端点
1) 修改端点id,改变访问端点的URL地址: endpoints.端点名.id=新端点名
2) 开启和关闭端点: endpoints.端点名.enabled=true|false
3) 控制所有端点开关,可以在此之后进行单个的开操作: endpoints.enabled=false
4) 修改端点访问路径: management.context-path=/manage
5) 修改端点访问端口: management.port=8081 值为-1时关闭http端点
3. 自定义端点
继承AbstractEndpoint并且注册为Bean
4. 自定义HealthIndicator
实现HealthIndicator并且注册为Bean
Spring中内置的HealthIndicator:
名称 | 描述 |
DiskSpaceHealthIndicator | 检测低磁盘空间 |
DataSourceHealthIndicator | 检测DataSource连接是否能获得 |
ElasticsearchHealthIndicator | 检测Elasticsearch是否运行 |
JmsHealthIndicator | 检测JMS消息代理是否在运行 |
MailHealthIndicator | 检测邮件服务器是否在运行 |
MongoHealthIndicator | 检测MongoDB是否在运行 |
RabbitHealthIndicator | 检测RabbitMQ是否在运行 |
RedisHealthIndicator | 检测Redis是否在运行 |
SolrHealthIndicator | 检测Redis是否在运行 |
5. JMX对应用进行监控和管理
在控制台中打开Java内置的jconsole打开界面,选择当前程序的进程,进入Mbean标签
6. SSH访问
依赖为Remote Shell(spring-boot-starter-remote-shell)
使用SSH客户端访问