前言
有时我们想实时监控我们的应用程序的运行状态,如实时显示一些指标数据,观察每时每刻访问的流量,或我们数据库的访问状态等。此时需要Actuator了。
使用Actuator其优点是,我们可以直接使用这种生产工具,而不需要自己去实现它们。Actuator使用这些信息可以自动帮助我们自动暴露HTTP或者是JMX beans实现的方式。最重要的是我们直接properties可以在文件中配置。
以下是如何实现的:
代码实现
创建一个springboot我用的是项目Springboot2.4的版本。
第一步:增加依赖性
<!<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency>依赖就这么简单。
第二步:配置
#改变应用程序的端口server.port=8081#1、actuator默认只打开info和health两个端点#以下配置可以打开所有端点:management.endpoints.web.exposure.include=*#2、打开健康监测数据management.endpoint.health.show-details=always#3、启用httptrace端点management.endpoint.httptrace.enabled=true#4、每次都要加一个actuator前缀太麻烦,改变端点前缀路径management.endpoints.web.base-path=/增加了几个配置。
现在我们可以直接访问。
第三步:直接访问
因为我们在前面配置了自己的base-path。所以不需要增加actuator前缀。现在访问:
http://localhost:8081/mappings
这样的画面会出现在我们的访问中,看起来有点难看,但有了这些信息,也可以格式化显示,目前还有很多开源项目可以自动实现。
其他端口如下:上述地址可以使用mappings改变一下。
EndPoints
auditevents | 披露当前应用程序的审计事件信息。 |
beans | 所有显示应用程序Spring bean完整列表。 |
caches | 暴露可用缓存。 |
conditions | 在配置和自动配置类别中显示及匹配或不匹配的原因。 |
configprops | 显示所有排序列表@ConfigurationProperties,检查配置属性,包括默认配置 |
env | 露出Spring各种环境变量的属性可以跟随/{name}检查具体值 |
flyway | 显示任何应用程序Flyway数据库迁移。 |
health | 显示健康信息的应用,2.0未来需要配置show-details打开k开关 |
httptrace | 显示HTTP跟踪信息,2.0以后需要手动打开 |
info | 在配置文件中定义显示任何应用信息 |
integrationgraph | 显示Spring Integration图。 |
loggers | 在应用程序中显示和修改记录器的配置。 |
liquibase | 显示任何应用程序Liquibase数据库迁移。 |
metrics | 显示指标信息,如内存用量和HTTP请求计数后,可以跟随/{name}查看具体值 |
mappings | 显示所有@RequestMapping整理路径列表。 |
scheduledtasks | 显示应用程序中的计划任务。 |
sessions | 允许从Spring Session在支持的会话存储中检索和删除用户会话。 |
shutdown | 允许正常关闭应用程序。 |
threaddump | 转储执行线程。 |
OK。基本上是这样。
为Actuator添加安全验证
比如我们的Actuator不想被无关人员看到口,可以配置Spring security添加登录。方法如下:
第一步:增加依赖性
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency>第二步:在properties在文件中添加配置
#5、如果别人看到端口信息,可以添加一个securityspring.security.user.name=fddspring.security.user.password=123456spring.security.user.roles=ADMIN这里设置的用户面是fdd,角色是密码123456ADMIN。
第三步:重新访问上述端口地址
重新访问相关端口地址,将重新定位到登录页面。使用配置好的用户名密码登录。
OK,这个比较简单。
本文转载自微信公众号「愚公要移山」,请注意以下二维码。转载本文请联系愚公移山微信官方账号。