• 十四、应用监控(2)


    本章概要

    • 监控信息可视化
    • 邮件报警

    14.2 监控信息可视化

    Spring Boot 中提供了监管信息管理段,用来实现监控信息的可视化,这样可以方便开发者快速查看系统运行情况,而不用一个一个地调用接口。
    创建 Spring Boot Web 工程,添加以下依赖

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
        <groupId>de.codecentricgroupId>
        <artifactId>spring-boot-admin-starter-serverartifactId>
        <version>2.0.2version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    创建成功后在启动类上添加 @EnableAdminServer 注解,表示启动 AdminServer

    @SpringBootApplication
    @EnableAdminServer
    public class ActuatorApplication {
        public static void main(String[] args) {
            SpringApplication.run(ActuatorApplication.class, args);
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    配置完成后,启动 Spring Boot 项目,“http://localhost:8080/index.html”
    在这里插入图片描述

    Admin 端将通过图表的方式展示监控信息。
    接下来开发 Client。Client 实际上就是一个个的服务,Client 将被注册到 AdminServer 上 然后 AdminServer 获取 Client 的运行数据并展示出来。
    再新建一个 Spring Boot 项目(Client),添加依赖

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-webartifactId>
    dependency>
    <dependency>
        <groupId>de.codecentricgroupId>
        <artifactId>spring-boot-admin-starter-clientartifactId>
        <version>2.0.2version>
    dependency>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    然后在 application.properties 中添加以下配置

    server.port=8081
    spring.boot.admin.client.url=http://localhost:8080
    
    info.app.encoding=@project.build.sourceEncoding@
    info.app.java.source=@java.version@
    info.app.java.target=@java.version@
    info.author.name=tianxiadiyizei
    info.author.email=tianxiadiyizei@qq.com
    
    management.endpoints.web.base-path=/
    management.endpoints.web.exposure.include=*
    management.endpoint.health.show-details=always
    management.health.status.order=FATAL,DOWN,OUT_OF_SERVICE,UP,UNKNOWN
    management.health.status.http-mapping.FATAL=503
    management.info.git.mode=simple
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    MyHealth

    @Component
    public class MyHealth implements HealthIndicator {
        @Override
        public Health health() {
            return Health.up().withDetail("msg", "网络连接正常...").build();
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    spring.boot.admin.client.url 表示配置 AdminServer 地址。
    配置完成后启动 Client 项目,此时在 AdminServer 上就可以看到 Client 的运行数据。
    下图展示了当前注册到 AdminServer 上的 Client 列表。
    在这里插入图片描述

    Wallboard 展示了 Client 的简略信息
    在这里插入图片描述

    单击实例名,即可看到 Client 运行的详细数据,一些常见的信息展示在 Details 选项卡中,其它选项卡都对应不同的端点数据。
    在这里插入图片描述

    Journal 中展示了项目运行日志,如下
    在这里插入图片描述

    14.3 邮件报警

    虽然使用 AdminServer 可以实现监控信息可视化,但是项目运维工程师不可能一天24小时盯着屏幕查看各个应用的运行状况,如果在应用运行出现问题时能够自动发送邮件通知运维工程师,就会方便很多。对此,Spring Boot 提供了相应的支持。
    修改上面的 Admin 工程,添加邮件依赖

    <dependency>
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-mailartifactId>
    dependency>
    
    • 1
    • 2
    • 3
    • 4

    在 application.properties 中配置邮件发送基本信息

    spring.mail.host=smtp.qq.com
    spring.mail.port=465
    spring.mail.username=aaa@qq.com
    spring.mail.password=授权码
    spring.mail.default-encoding=UTF-8
    spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
    spring.mail.properties.mail.debug=true
    #邮件发送者
    spring.boot.admin.notify.mail.from=aaa@qq.com
    #收件人
    spring.boot.admin.notify.mail.to=bbb@qq.com
    #抄送人
    spring.boot.admin.notify.mail.cc=ccc@qq.com
    #忽略掉的事件
    spring.boot.admin.notify.mail.ignore-changes=
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    关于邮件发送的配置及其他信息,详见十三、企业开发(1)
    默认情况下,当被监控应用的状态为 UNKNOWN 或者 UP 时不会发送报警邮件,这里配置表示被监控应用的任何变化都会发送报警邮件。
    配置完成后,重新启动 AdminServer ,然后再重启被监控的应用 client ,就会收到应用上线的邮件报警。
    在这里插入图片描述

    此时关闭被监控的应用 client ,就会收到应用下线的邮件报警。
    在这里插入图片描述

  • 相关阅读:
    [LeetCode周赛复盘] 第 112场双周赛20230903
    node、npm、nvm相关概念区别
    Jmeter(108)——Concurrency Thread Group
    【Linux】tmux文章索引
    walking机器人仿真教程-应用-使用直线路径规划器插件实现导航
    Centos7 yum安装git服务器
    什么是外链和内链?
    【新材料新能源行业可用】PFA容量瓶定容标准区分
    GFS分布式文件系统
    【ARM Coresight 系列文章19.2 -- Cortex-A720 AMU 详细介绍】
  • 原文地址:https://blog.csdn.net/GXL_1012/article/details/126412108