码迷,mamicode.com
首页 > 编程语言 > 详细

SpringBoot与监控

时间:2020-11-25 12:30:21      阅读:6      评论:0      收藏:0      [点我收藏+]

标签:事件   ons   次数   垃圾   monit   depend   htm   logger   yml   

SpringBoot与监控

本文只是介绍最基本的使用

1、SpringBootAdmin是什么?

  • Spring Boot Admin 是由 codecentric 组织开发的开源项目,使用 Spring Boot Admin 可以管理和监控你的 Spring Boot 项目。它分为客户端和服务端两部分,客户端添加到你的 Spring Boot 应用增加暴漏相关信息的 HTTP 接口,然后注册到 Spring Boot Admin 服务端,这一步骤可以直接向服务端注册,也可以通过 Eureka 或者 Consul 进行注册。而 Spring Boot Admin Server 通过 Vue.js 程序监控信息进行可视化呈现。并且支持多种事件通知操作

2、SpringBootAdmin的作用?

  • 应用运行状态,如时间、垃圾回收次数,线程数量,内存使用走势。
  • 应用性能监测,通过选择 JVM 或者 Tomcat 参数,查看当前数值。
  • 应用环境监测,查看系统环境变量,应用配置参数,自动配置参数。
  • 应用 bean 管理,查看 Spring Bean ,并且可以查看是否单例。
  • 应用计划任务,查看应用的计划任务列表。
  • 应用日志管理,动态更改日志级别,查看日志。
  • 应用 JVM 管理,查看当前线程运行情况,dump 内存堆栈信息。
  • 应用映射管理,查看应用接口调用方法、返回类型、处理类等信息。

3、源代码和官方手册(官方手册私以为是最好的学习资料)

4、环境准备

  • nacos:2.1.0
  • spring-boot-admin-starter-server:2.2.2
  • spring-boot-starter-web:2.2.2
  • spring-boot-starter-actuator:2.2.2
  • spring-boot-admin-starter-client:2.2.2
  • JDK:1.8
  • 开发工具:IDEA 2019.3

5、搭建admin端

5.1、pom

        <!--nacos-->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
        </dependency>
        <!--admin端的依赖-->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>

5.2、yml

server:
  port: 9000

spring:
  application:
    name: cloud-monitoring-admin
  cloud:
    nacos:
      discovery:
      #配置Nacos地址
        server-addr: localhost:18848 
   
# 测试暴露所有端点
management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

5.3、启动类

@SpringBootApplication( exclude = {DataSourceAutoConfiguration.class})
@EnableDiscoveryClient
//该注解启动监控
@EnableAdminServer
public class MonitoringAdminApplication {
    public static void main(String[] args) {
        SpringApplication.run(MonitoringAdminApplication.class,args);
    }
}

5.4、启动nacos和监控admin端

  • 该服务以经注册在nacos上

技术图片

技术图片

6、搭建client端

6.1、pom

        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.2.2</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

6.2、yaml

server:
  port: 9002

spring:
  application:
    name: cloud-monitoring-client-02
  cloud:
    nacos:
      discovery:
        server-addr: localhost:18848 #配置Nacos地址

#监控暴漏所有端点
management:
  endpoints:
    web:
      exposure:
        include: ‘*‘
  endpoint:
    health:
      show-details: ALWAYS
    #      启动日志任务
    logfile:
      enabled: true

#日志的配置
logging:
  file:
    name: RiestSpringWeb.log.2020-11-20.0.log
  pattern:
  #日志格式
    file: ‘%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(%5p) %clr(${PID}){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n%wEx‘

6.3、启动类

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
@EnableDiscoveryClient
public class MonitoringClient02Application {
    public static void main(String[] args) {
        SpringApplication.run(MonitoringClient02Application.class, args);
    }
}

6.4、启动client

  • 已经被监控

技术图片

6.5、日志的动态设置

  • 可以看到启动日志已经输出到web见面

技术图片

  • 动态设置日志输出级别

技术图片

7、配置邮件通知功能(admin端配置)

7.1、加入邮件以及模板引擎的依赖(admin的pom)

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

7.2、加入邮件配置

server:
  port: 9000

spring:
  application:
    name: cloud-monitoring-admin
  cloud:
    nacos:
      discovery:
        server-addr: localhost:18848 #配置Nacos地址
# 开启springbootadmin的邮件任务
  boot:
    admin:
      notify:
        mail:
          # 逗号分隔的邮件收件人列表
          to: 2575101192@qq.com
          # 开启邮箱通知
          enabled: true
          # 不需要发送通知的状态:从状态A:到状态B
          ignore-changes: {"UNKNOWN:UP"}
          # 逗号分隔的抄送收件人列表
          # cc: 2575101192@qq.com
          # 发件人
          from: 2575101192@qq.com
          #邮件模板
          template: "classpath:templates/RegisterSuccess.html"
  mail:
    host: smtp.qq.com
    port: 465
    username: 2575101192@qq.com
    default-encoding: utf-8
#    密码配置成授权码
    password: qq邮箱授权码
    properties:
      mail:
        smtp:
          ssl:
            enable: true

management:
  endpoints:
    web:
      exposure:
        include: "*"
  endpoint:
    health:
      show-details: ALWAYS

7.3、qq邮箱设置拿到授权码

技术图片

技术图片

7.4、写一个简单的模板(在admin 的resource/templates/RegisterSuccess.html

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>注册成功通知</title>
</head>
<body>
<p>您好!
</p>
<p>
    springbootadmin监控:<br/>
    标题: xxx应用下线 <br/>
    请检查!!!
</p>
</body>
</html>

7.5、启动admin的client

技术图片

7.6、关闭client端

后续收到对应的邮件通知

技术图片

 TO BE CONTINUED

SpringBoot与监控

标签:事件   ons   次数   垃圾   monit   depend   htm   logger   yml   

原文地址:https://www.cnblogs.com/dgjword/p/14016016.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!