最近这一个月由于项目进度紧张,将近一个月没有动静。分享一下最近体会的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
  port: 8085
# 日志配置
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)

以上就是五分钟解锁springboot admin监控新技巧的详细内容,更多关于springboot admin监控的资料请关注www.887551.com其它相关文章!