在微服务环境中,因为我们的服务节点比较多,所以我们需要获取每个服务节点的健康信息来掌握整个系统的运行情况及问题解决,本文就来具体介绍下怎么实现SpringBoot项目中的监控服务

Actuator

  Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得,

1.创建SpringBoot项目

  创建一个普通的SpringBoot项目,并添加actuator的依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>复制代码

2.在全局配置文件中设置关闭安全限制

  在1.5以下版本中不需要设置

management.security.enabled=false复制代码

3.启动服务

  启动服务,发现控制台多了很多提示信息

Springboot之监控健康状况_Springboot

访问对应的弟子,比如health

Springboot之监控健康状况_Springboot_02

其他地址功能的说明

ID描述是否需要鉴权
actuator为其他端点提供“发现页面”。要求 Spring HATEOAS 在 classpath 路径上。需要
auditevents陈列当前应用程序的审计事件信息。需要
autoconfig展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。需要
beans显示应用程序中所有 Spring bean 的完整列表。需要
configprops显示所有配置信息。需要
dump所有线程。需要
env陈列所有的环境变量。需要
flywayShows any Flyway database migrations that have been applied.需要
health显示应用程序运行状况信息不需要
info显示应用信息。不需要
loggers显示和修改应用程序中的 loggers 配置。需要
liquibase显示已经应用的任何 Liquibase 数据库迁移。需要
metrics显示当前应用程序的“指标”信息。需要
mappings显示所有@RequestMapping 的 url 整理列表。需要
shutdown关闭应用(默认情况下不启用)。需要
trace显示跟踪信息(默认最后 100 个 HTTP 请求)。需要
SpringBootAdmin

  上面介绍的Actuator监控的信息返回的json数据,查看起来也不是太方便,所以我们来给大家介绍可视化的监控报表-Spring Boot Admin,Springboot Admin需要单独的服务来监控,所以我们先来搭建专门的监控的服务。

一.搭建监控服务

1.搭建服务

  服务端其实也是一个 SpringBoot 项目,所以创建一个SpringBoot服务。

Springboot之监控健康状况_Springboot_03

2.官方查看

官方地址:github.com/codecentric…

Springboot之监控健康状况_Springboot_04

因为客户端使用的SpringBoot是1.5.7所以此处也选择1.5.7,

Springboot之监控健康状况_Springboot_05

3.添加依赖及配置

添加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);
    }

}复制代码

4.启动服务

  改个端口,防止冲突

server.port=8085复制代码

Springboot之监控健康状况_Springboot_06

还没有监听服务所以里面是空的!

二.客户端

  需要监控的客户端就可以使用我们讲Actuator的项目,具体步骤官网也有说明。如下

1.客户端添加依赖

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>1.5.7</version>
</dependency>复制代码

2.修改配置文件

  application.properties中添加监控的服务

management.security.enabled=false
#http://localhost:8085 表示是 Spring Boot Admin 服务单的 IP 地址以及端口号
spring.boot.admin.url: http://localhost:8085复制代码

3.启动客户端

  启动客户端后,再刷新服务端监控页面,发现了服务,同时可视化相关的监控信息Springboot之监控健康状况_Springboot_07

Springboot之监控健康状况_Springboot_08

好了SpringBoot项目的监控服务我们就介绍到这儿,后面的微服务中还有很多地方要涉及到服务监控,到时我们再介绍其他应用相关的内容~