本章概要

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

14.2 监控信息可视化

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

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><groupId>de.codecentric</groupId><artifactId>spring-boot-admin-starter-server</artifactId><version>2.0.2</version>
</dependency>

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

@SpringBootApplication
@EnableAdminServer
public class ActuatorApplication {public static void main(String[] args) {SpringApplication.run(ActuatorApplication.class, args);}
}

配置完成后,启动 Spring Boot 项目,“http://localhost:8080/index.html”

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

<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>2.0.2</version>
</dependency>

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

server.port=8081
spring.boot.admin.client.url=http://localhost:8080info.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.commanagement.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

MyHealth

@Component
public class MyHealth implements HealthIndicator {@Overridepublic Health health() {return Health.up().withDetail("msg", "网络连接正常...").build();}
}

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.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

在 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)。
默认情况下,当被监控应用的状态为 UNKNOWN 或者 UP 时不会发送报警邮件,这里配置表示被监控应用的任何变化都会发送报警邮件。
配置完成后,重新启动 AdminServer ,然后再重启被监控的应用 client ,就会收到应用上线的邮件报警。

此时关闭被监控的应用 client ,就会收到应用下线的邮件报警。

十四、应用监控(2)相关推荐

  1. ROS探索总结(十三)(十四)(十五)——导航与定位框架 move_base(路径规划) amcl(导航与定位)

    ROS探索总结(十三)--导航与定位框架 导航与定位是机器人研究中的重要部分.         一般机器人在陌生的环境下需要使用激光传感器(或者深度传感器转换成激光数据),先进行地图建模,然后在根据建 ...

  2. 淘宝从几百到千万级并发的十四次架构演进之路!

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:用好Java中的枚举,真的没有那么简单!个人原创+1博客:点击前往,查看更多 链接:https://segmen ...

  3. 淘宝服务端高并发分布式架构的十四次演进之路

    1.概述 本文以淘宝作为例子,介绍从一百个并发到千万级并发情况下服务端的架构的演进过程,同时列举出每个演进阶段会遇到的相关技术,让大家对架构的演进有一个整体的认知,文章最后汇总了一些架构设计的原则. ...

  4. DockOne微信分享(八十四):Docker在B站的实施之路

    本文讲的是DockOne微信分享(八十四):Docker在B站的实施之路[编者的话]B站一直在关注Docker的发展,去年成功在核心SLB(Tengine)集群上实施了Docker.今年我们对比了各种 ...

  5. PyTorch框架学习十四——学习率调整策略

    PyTorch框架学习十四--学习率调整策略 一._LRScheduler类 二.六种常见的学习率调整策略 1.StepLR 2.MultiStepLR 3.ExponentialLR 4.Cosin ...

  6. 《深入浅出DPDK》读书笔记(十四):DPDK应用篇(DPDK与网络功能虚拟化:NFV、VNF、IVSHMEM、Virtual BRAS“商业案例”)

    Table of Contents DPDK应用篇 DPDK与网络功能虚拟化 157.网络功能虚拟化 13.1.1起源 158.发展 159.OPNFV与DPDK NFV的部署 160.NFV的部署 ...

  7. go设置后端启动_Go语言基础(十四)

    Go语言基础(十四) 一.Redis 二.NSQ 三.Go module 四.Context......0 一.Redis Redis是一个key-value存储系统.和Memcached类似,它支持 ...

  8. 第十四章:监测和维护活动目录(四)

    上几篇:监测和维护活动目录(一) ,监测和维护活动目录(二) , 监测和维护活动目录(三)中,我们主要了解了对AD需要监控什么和如何监控 本篇则是讲述对AD如何维护,至此<WindowsServ ...

  9. 云计算设计模式(二十四)——仆人键模式

    云计算设计模式(二十四)--仆人键模式 使用一个令牌或密钥,向客户提供受限制的直接訪问特定的资源或服务,以便由应用程序代码卸载数据传输操作. 这个模式是在使用云托管的存储系统或队列的应用中特别实用,而 ...

  10. 第十四章_超参数调整

    文章目录 14.1 写在前面 14.2 超参数概述 14.2.1 什么是超参数,参数和超参数的区别 14.2.2 神经网络中包含哪些超参数 14.2.3 模型优化寻找最优解和正则项之间的关系 14.2 ...

最新文章

  1. POJ-1753 Flip Game 枚举 状态压缩
  2. AI:2020年6月23日北京智源大会演讲分享之智能信息检索与挖掘专题论坛——09:55-10:40刘兵教授《Open-World AI and Continual Learning》
  3. 分库分表 springboot+dubbo+mybatisPlus+shardingSphere
  4. tcode search_sap_menu 根据关键字搜索SAP menu
  5. ‘ping‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  6. 创建mysql制定字符集语句_创建数据库指定字符集语句
  7. java g1的并行_Java 11好用吗
  8. 字节跳动算法工程师总结:java抽象类和接口实验报告
  9. tomcat中间件的默认端口号_死磕Tomcat系列(1)——整体架构
  10. 祛除光盘上的小划痕/光盘的工作原理/光盘的正确使用方法
  11. 红帽集群套件RHCS四部曲(测试篇)
  12. ipv4或ipv6没有访问权限的解决办法
  13. TI-TMS320F28335学习详解(1)::DSP是什么
  14. 版权符号模糊解决办法
  15. 擦窗机器人毕业设计_家用擦玻璃清洁机器人结构设计毕业设计说明方案.doc
  16. 港科夜闻|香港科大再获[商科]评审全港第一!
  17. 如何估算视频传输所需带宽?
  18. 动态规划求解TSP(旅行商)问题
  19. 办公娱乐一站式服务 威联通TS-251 NAS评测
  20. c语言sno是什么缩写,对于教学数据库的三个基本表:S(Sno,Sname,Ssex),SC(Sno,Cno,Grade),C(Cno,Cname, Teacher), - 赏学吧...

热门文章

  1. 1089: 阶乘的最高位 ZZULIOJ
  2. linux NetworkManager和networking 冲突网络跳线
  3. 中国实践对接新营销时代 ,腾讯刘胜义对话“营销学之父”科特勒
  4. 武汉大学转专业计算机,武汉大学的转专业须知
  5. 利用分而治之求最大子列和
  6. 网站建设基本流程规范
  7. 《道德经》第四十二章
  8. CMPP发送短信代码对照表
  9. Jmeter(五)excel文件上传接口压力测试问题
  10. 294.思维导图大纲笔记 幕布 使用技巧