前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >玩转 Spring Boot 集成篇(Actuator、Spring Boot Admin)

玩转 Spring Boot 集成篇(Actuator、Spring Boot Admin)

作者头像
一猿小讲
发布2022-02-25 09:42:27
1.1K0
发布2022-02-25 09:42:27
举报
文章被收录于专栏:一猿小讲一猿小讲

系统上线后,如果离开了监控,就没法辨别一个系统是不是在正常提供服务,就好似系统在线上疯狂裸奔。

关于监控的轮子以及实现思想,曾经也多次分享过。

《如何做监控?Google SRE 解密

在监控落地的路上,助你一臂之力》

这些技术轮子,让监控落地成为现实!》

监控实战Prometheus+Grafana》

感兴趣的可以浏览历史关于监控的文章,本文将重点分享 Spring Boot 的监控模块。

1. Spring Boot 集成 Actuator

Actuator 是 Spring Boot 中一个用来实现系统健康检测的模块。 Actuator 提供一个 Restful 的 API 接口,可以将系统运行过程中的磁盘空间、线程数以及程序连接的数据库情况通过 JSON 返回,可以结合预警、监控模块进行实时系统监控。

1.1. 引入依赖

代码语言:javascript
复制
<!-- 系统健康检测模块依赖 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

加入依赖之后,会下载依赖包,所以需要让子弹飞一会儿,等抽根烟的功夫,再运行程序。

1.2. 体验功能

直接运行 Spring Boot main 函数,程序运行后,控制台输出如下:

若想自定义个性化 banner、修改内嵌容器以及修改默认端口,见入门篇,不过不影响本篇学习。此刻,重点关注 Exposing 1 endpoint(s) beneath base path '/actuator' 这句,说明监控模块已经集成进来了。

浏览器访问http://localhost:8888/actuator观之,查看默认提供的 endpoint。

通过上面提供的 /health 接口,可以判断应用服务是否健康。访问 http://localhost:8888/actuator/health 如下:

当然,Actuator 提供的功能远远不止这些,只是出于安全考虑,其余的 endpoint 默认被禁用了,如何开启呢?只需在 application.properties 文件中加入如下配置即可开启 HTTP 监控。

代码语言:javascript
复制
# 开启所有的端点
management.endpoints.web.exposure.include=*

再次访问,监控项会多很多,例如 env、metrics 等,感兴趣的可以逐个访问体验。

至此,Actuator 的监控就开启完毕。不过回头捋捋,面对如此庞大的监控功能,却只简单做了如下两步配置,便轻松开启,可谓快哉。

  • 引入 spring-boot-starter-actuator 依赖
  • 修改 application.properties 配置,开启所有的监控端点功能

对于 Actuator 的监控,本次了解到这里,接下来看看 Spring Boot Admin 监控。

2. 集成 Spring Boot Admin

Spring Boot Admin 用于监控基于 Spring Boot 开发的应用,它是在 Spring Boot Actuator 的基础上提供更简洁的可视化 WEB UI.

2.1. 创建监控服务端

创建一个 monitor 项目,用于采集应用的监控信息。

2.1.1. 引入依赖

在 monitor 项目的 pom.xml 文件中引入 spring-boot-admin-starter-server 依赖。

代码语言:javascript
复制
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.1.2. 编写监控服务端

代码语言:javascript
复制
package com.example.monitor;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@EnableAdminServer
@SpringBootApplication
public class MonitorApplication {

    public static void main(String[] args) {
        SpringApplication.run(MonitorApplication.class, args);
    }
}

此时使用 @EnableAdminServer 注解启动 Admin 监控服务。

2.1.3. 启动监控服务端

运行 MonitorApplication,控制台输出如下。

2.2. 客户端应用

2.2.1. 引入依赖

代码语言:javascript
复制
<!-- 引入监控客户端依赖-->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.6.2</version>
</dependency>

2.2.2. 添加配置

在 application.properties文件中加入如下配置。

代码语言:javascript
复制
# 应用程序名称
spring.application.name=App_Demo
# 开启所有的端点
management.endpoints.web.exposure.include=*
# 配置监控Server的服务地址
spring.boot.admin.client.url=http://localhost:8080

2.2.3. 运行客户端应用

2.3. 体验监控

浏览器访问 http://localhost:8080,效果如下。

3. 例行回顾

本文是 Spring Boot 项目集成监控篇的讲解,主要分享了如下部分:

玩转 Spring Boot 集成监控篇,就写到这里,希望大家能够喜欢。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-01-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一猿小讲 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档