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

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

《如何做监控?Google SRE 解密》

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

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

《监控实战Prometheus+Grafana》

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

1. Spring Boot 集成 Actuator

Actuator 是 Spring Boot 中一个用来实现系统健康检测的模块。

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

1.1. 引入依赖

<!-- 系统健康检测模块依赖 -->
<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 监控。

# 开启所有的端点
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 依赖。

<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. 编写监控服务端

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. 引入依赖

<!-- 引入监控客户端依赖-->
<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>2.6.2</version>
</dependency>

2.2.2. 添加配置

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

# 应用程序名称
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 集成监控篇,就写到这里,希望大家能够喜欢。

一起聊技术、谈业务、喷架构,少走弯路,不踩大坑,会持续输出更多精彩分享,欢迎关注,敬请期待!

历史系列文章:

玩转 Spring Boot 入门篇

玩转 Spring Boot 集成篇(MySQL、Druid、HikariCP)

玩转 Spring Boot 集成篇(MyBatis、JPA、事务支持)

玩转 Spring Boot 集成篇(Redis)

玩转 Spring Boot 集成篇(Actuator、Spring Boot Admin)相关推荐

  1. Spring Boot 集成 批处理框架Spring batch

    Spring Batch是一个轻量级的框架,完全面向Spring的批处理框架,用于企业级大量的数据读写处理系统.以POJO和Spring 框架为基础,包括日志记录/跟踪,事务管理. 作业处理统计工作重 ...

  2. Spring Boot第二篇:Spring Boot配置文件详解

    springboot采纳了建立生产就绪Spring应用程序的观点. Spring Boot优先于配置的惯例,旨在让您尽快启动和运行.在一般情况下,我们不需要做太多的配置就能够让spring boot正 ...

  3. Spring Boot集成Quartz注入Spring管理的类

    摘要: 在Spring Boot中使用Quartz时,在JOB中一般需要引用Spring管理的Bean,通过定义Job Factory实现自动注入. Spring有自己的Schedule定时任务,在S ...

  4. 【Spring第十篇】Spring整合Mybatis

    文章目录 1.配置数据源文件:在resources目录下创建db.properties 2.编写mybatis-config.xml文件 3.编写spring-dao.xml配置文件 4.将mybat ...

  5. 玩转 Spring Boot 应用篇(搭建菜菜的店铺)

    0.  0.0. 历史文章整理 玩转 Spring Boot 入门篇 玩转 Spring Boot 集成篇(MySQL.Druid.HikariCP) 玩转 Spring Boot 集成篇(MyBat ...

  6. spring boot 缓存_Spring Boot 集成 Redis 实现数据缓存

    Spring Boot 集成 Redis 实现数据缓存,只要添加一些注解方法,就可以动态的去操作缓存了,减少代码的操作. 在这个例子中我使用的是 Redis,其实缓存类型还有很多,例如 Ecache. ...

  7. Spring MVC集成slf4j-logback

    转自: Spring MVC集成slf4j-logback 1.  Spring MVC集成slf4j-log4j 关于slf4j和log4j的相关介绍和用法,网上有很多文章可供参考,但是关于logb ...

  8. Spring JSF集成

    Spring JSF集成 欢迎来到Spring JSF集成教程.JSF是一个基于组件的框架,非常注重用户界面.而Spring框架核心原则是依赖注入.因此,将JSF与Spring框架集成是有意义的,其中 ...

  9. Spring Boot集成CKFinder

    2019独角兽企业重金招聘Python工程师标准>>> Spring Boot集成CKFinder,实现浏览功能. 前言 上一篇记录了Spring Boot集成CKEditor,这里 ...

  10. springboot(十八):使用Spring Boot集成FastDFS

    上篇文章介绍了如何使用Spring Boot上传文件,这篇文章我们介绍如何使用Spring Boot将文件上传到分布式文件系统FastDFS中. 这个项目会在上一个项目的基础上进行构建. 1.pom包 ...

最新文章

  1. 图灵直播 | 25年后我们怎样评价JavaScript?
  2. SQL Sever索引
  3. Qt5 常见的控件类关系
  4. SAP Netweaver后台作业的几种状态
  5. html浏览器边框颜色,CSS设置字体和边框颜色时Chrome和其他主流浏览器差别的问题_html/css_WEB-ITnose...
  6. 企业销售管理现状分析与解决思路(转)
  7. ubuntu远程桌面连接windows系统
  8. Pycharm 主题背景色的配置
  9. 计算机说课大赛ppt,计算机基础说课大赛省一等奖说课课件PPT作品
  10. 无人机航拍高空全景图的四个步骤
  11. 【卸载神器——Geek】的下载安装使用教程
  12. SEO优化——向各大网站提交自己的网址,加快收录速度
  13. Android Killer反编译时遇到的异常
  14. 娱乐_3D相册(HTML)_七夕
  15. Bootstrap级联下拉菜单,你肯定用得到
  16. python读取excel内容和写入_Python读取和写入Excel文件
  17. 【搜集+亲测】无法注册Flash Player的Activex控件最终解决方法(亲测,WIN7 64位系统)
  18. navicat打开数据库某个表 报table 啥啥啥 doesn't exist
  19. 三国杀开源系列之四-工程目录分析107@365
  20. 积极响应号召_30多个“号召性用语”按钮模板下载

热门文章

  1. excel2016 android,新编Excel 2016应用大全(实战精华版)
  2. 卡BIN指的是发卡行识别码
  3. TCRT5000红外反射传感器
  4. PMP模拟题 | 每日一练,快速提分
  5. PDF转图片文字丢失问题解决
  6. java加密 js解密_【Java】JavaScript 加密 Java 解密
  7. python连接sap接口_python 连接SAP的方法
  8. Java二进制的符号位在哪一位_Java位运算符及二进制常识
  9. 【云计算学习教程】什么是中间件?常见中间件有哪些?
  10. 微型计算机应用领域思维导图,思维导图作用和应用领域有哪些