在微服务环境中,因为我们的服务节点比较多,所以我们需要获取每个服务节点的健康信息来掌握整个系统的运行情况及问题解决,本文就来具体介绍下怎么实现SpringBoot项目中的监控服务
Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得,
创建一个普通的SpringBoot项目,并添加actuator的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在1.5以下版本中不需要设置
management.security.enabled=false
启动服务,发现控制台多了很多提示信息
访问对应的弟子,比如health
其他地址功能的说明
ID | 描述 | 是否需要鉴权 |
---|---|---|
actuator | 为其他端点提供“发现页面”。要求 Spring HATEOAS 在 classpath 路径上。 | 需要 |
auditevents | 陈列当前应用程序的审计事件信息。 | 需要 |
autoconfig | 展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。 | 需要 |
beans | 显示应用程序中所有 Spring bean 的完整列表。 | 需要 |
configprops | 显示所有配置信息。 | 需要 |
dump | 所有线程。 | 需要 |
env | 陈列所有的环境变量。 | 需要 |
flyway | Shows any Flyway database migrations that have been applied. | 需要 |
health | 显示应用程序运行状况信息 | 不需要 |
info | 显示应用信息。 | 不需要 |
loggers | 显示和修改应用程序中的 loggers 配置。 | 需要 |
liquibase | 显示已经应用的任何 Liquibase 数据库迁移。 | 需要 |
metrics | 显示当前应用程序的“指标”信息。 | 需要 |
mappings | 显示所有@RequestMapping 的 url 整理列表。 | 需要 |
shutdown | 关闭应用(默认情况下不启用)。 | 需要 |
trace | 显示跟踪信息(默认最后 100 个 HTTP 请求)。 | 需要 |
上面介绍的Actuator监控的信息返回的json数据,查看起来也不是太方便,所以我们来给大家介绍可视化的监控报表-Spring Boot Admin,Springboot Admin需要单独的服务来监控,所以我们先来搭建专门的监控的服务。
服务端其实也是一个 SpringBoot 项目,所以创建一个SpringBoot服务。
官方地址:https://github.com/codecentric/spring-boot-admin
因为客户端使用的SpringBoot是1.5.7所以此处也选择1.5.7,
添加admin的依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>1.5.7</version>
</dependency>
启动器中放开
@SpringBootApplication
@EnableAdminServer
public class SpringbootAdminServerApplication {
public static void main(String[] args) {
SpringApplication.run(SpringbootAdminServerApplication.class, args);
}
}
改个端口,防止冲突
server.port=8085
还没有监听服务所以里面是空的!
需要监控的客户端就可以使用我们讲Actuator的项目,具体步骤官网也有说明。如下
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>1.5.7</version>
</dependency>
application.properties中添加监控的服务
management.security.enabled=false
#http://localhost:8085 表示是 Spring Boot Admin 服务单的 IP 地址以及端口号
spring.boot.admin.url: http://localhost:8085
启动客户端后,再刷新服务端监控页面,发现了服务,同时可视化相关的监控信息
好了SpringBoot项目的监控服务我们就介绍到这儿,后面的微服务中还有很多地方要涉及到服务监控,到时我们再介绍其他应用相关的内容~