前言
有时候我们想要实时监控我们的应用程序的运行状态,比如实时显示一些指标数据,观察每时每刻访问的流量,或者是我们数据库的访问状态等等。这时候就需要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改变一下就可以了。
OK。基本上是这样。
为Actuator添加安全验证
比如我们的Actuator的端口不想被无关人员看到,于是就可以配置Spring security添加登录。方式如下:
第一步:添加依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency>
第二步:在properties文件中添加配置
#5、端口信息被别人看到了咋办,可以添加个security spring.security.user.name= fdd spring.security.user.password= 123456 spring.security.user.roles= ADMIN
这里设置的用户面是fdd,密码123456,角色是ADMIN。
第三步:重新访问上面的端口地址
重新访问相关端口地址,就会被重定向到登录页面。使用配置好的用户名密码登录即可。
OK,这个比较简单。