1 简介
目前,微服务大行其道,各大小公司争相学习模仿,把单体应用拆得七零八落。服务多了,运行的实例多了,给运维人员的压力就更大了。如果有十几个应用,单单做Health Check就已经够费时间的了。聪明的Springboot提供了Actuator接口,可以非常好获得应用的内部信息,然而针对数量庞大的服务却无能为力。
得益于开源社区的力量,我们有了Springboot Admin。它能对注册于服务发现的所有应用监控起来,功能包括健康检查、JVM内存、INFO信息、获得线程栈和堆栈信息、提醒(邮件、Slack、钉钉、自定义...)等。总之,它提供了非常丰富的监控功能,减轻运维人员的工作任务。
目前Springboot Admin(后面简称SBA)的最新版本为2.2.0,本文演示将使用该版本。
2 两种监控模式
使用SBA监控Client有两种模式,一种是在Client端引入spring-boot-admin-starter-client
依赖,配置好Server的地址信息就可以了。另一种模式是将所有Client端注册到服务发现(Eureka)组件中去,同时把Server端也注册,这样Server端就可以监控所有Client端了。
第二种模式是更方便的,不用对Client都添加依赖,后面的例子使用第二种模式。
服务端需要添加SBA的依赖和Eureka Client的依赖,如下:
<dependencies>
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>