最近这一个月由于项目进度紧张,将近一个月没有动静。分享一下最近体会的springboot监控的一些心得体会,供一些规模不是很大的团队做一些监控。
适用场景:
1、项目规模不大
2、用户量不是很大、并发要求不强
3、无专门运维力量
4、精致的团队规模
对于一些常规的项目,或者企业职责分工不是非常明确的单位来说。往往一个系统从需求到设计,开发,测试到最终上线,运维。往往80%的任务由开发团队来完成。由此,开发人员除了要实现系统的功能,还要为客户进行问题咨询答疑以及生产问题解决。
试想,一个应用上线后,没有任何监控措施。跟开着一辆没有任何仪表盘的汽车一样,这样上路,任何人都没有安全感。如何在极简和追求效率上做平衡是一件特别值得思考的事情。
本文不会讲如何搭建企业的运维监控系统,有兴趣的可以去找找成熟的比如Zabbix、Prometheus,甚至比较简单的Wgcloud都能满足一定的需求,不在此赘述。本文讲解如何使用Springboot admin对spring boot项目进行应用监控。
一、Springboot admin 是啥?
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。常见的功能或者监控如下:
1、显示健康状况
2、显示构建信息编号
3、关注并下载日志文件
4、查看jvm系统和环境属性
5、轻松的日志级管理
6、与JMX-beans交互
7、查看线程转储
8、查看http跟踪
9、状态变更通知(通过电子邮件,Slack,Hipchat,…)
10、状态更改的事件日志(非持久性)
......
二、关键集成介绍
1、pom.xml 声明
<properties><java.version>1.8</java.version><spring-boot-admin.version>2.3.1</spring-boot-admin.version></properties>
2、spring-boot-admin 引入
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-client</artifactId><version>${spring-boot-admin.version}</version></dependency><dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>${spring-boot-admin.version}</version></dependency>
3、server配置
server# 服务器的HTTP端口,默认为8080 port8085# 日志配置logging# 已存在日志xml配置文件后,path与name 不生效 config classpath logback.xml spring boot admin# Spring Boot Admin Server 服务端的相关配置 context-path /admin # 配置 Spring
4、client配置
spring application name springboot-admin-monitor boot admin# Spring Boot Admin Client 客户端的相关配置 client# 设置 Spring Boot Admin Server 地址 url http //localhost $ server.port $ spring.boot.admin.context-path instance prefer-ip true # 注册实例时,优先使用 IP# Actuator 监控端点的配置项management endpoints web# Actuator 提供的 API 接口的根目录。默认为 /actuator base-path /actuator exposure# 需要开放的端点。默认值只打开 health 和 info 两个端点。通过设置 * ,可以开放所有端点。 include'*'# 已存在日志xml配置文件后,需要配置该项 endpoint logfile external-file ./logs/sys-console.log
三、相关监控实例
1、监控首页
2、应用监控信息查看
3、实时日志输出
4、动态调节日志级别
5、jvm
四、总结
以上介绍了在生产中如何采用springboot admin来监控你的应用,其实admin的监控功能远不止上文介绍的,还可以集成邮件通知,有外网使用钉钉的,也可以进行相应集成,比如在应用下线的时候可以进行相应的通知。个人比较喜欢的功能是日志web可视化,开发人员再也不需要通过客户端工具连到服务器上去看日志,提高了效率,同时可以动态调整日志的级别,也能高效管理日志输出。另外jvm的管理也能随时管理,提高定位问题的效率。希望对你有所帮助。
本文参考代码gitee链接:https://gitee.com/JavaLionLi/springboot-admin-demo(有帮助的话,可以给作者点个star)