SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin

一、Spring Boot Admin

Spring Boot Admin 是一个管理和监控Spring Boot 应用程序的开源软件,项目github地:https://github.com/codecentric/spring-boot-admin。

Spring Boot Admin 是一个针对spring-boot的actuator接口进行UI美化封装的监控工具,UI部分使用AngularJs将数据展示在前端。通过Admin可以浏览所有被监控spring-boot项目的基本信息,详细的Health信息、内存信息、JVM信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改logger的level等功能。

在Spring Cloud微服务体系中,Spring Boot Admin 作为Server端,其他的要被监控的应用作为Client端,服务信息通过Eureka获取。

二、示例演示

继续我们的项目,因为Admin分为Server端与Client端,我们先创建我们的Server端admin-server。

新创建一个项目,取名admin-server,pom文件中除了必要的Web和Eureka依赖外,还需要引入spring-boot-admin-starter-server(2.0.2)、spring-boot-admin-server-ui(2.0.2)、spring-boot-starter-actuator依赖,这些是必须的,然后加入spring-boot-starter-security,它为我们的Admin UI提供安全校验。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第1张图片

核心启动类上,@SpringBootApplication就不解释了,@EnableAdminServer开启Admin声明,因为需要从Eureka获取服务信息,所以@EnableEurekaClient注册到Eureka上。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第2张图片

核心启动类里,除了入口main方法外,还提供了SecurityPermitAllConfig和SecuritySecureConfig的配置,这个是官方给出的配置,从命名上就可以看出是与安全有关的。SecurityPermitAllConfig表示不进行安全验证,本地开发可以使用,而SecuritySecureConfig则需要口令才可以访问Admin。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第3张图片

配置文件中,项目本身的配置和注册到Eureka的配置和一般的微服务没有任何区别,但是需要注意的是,在配置注册Eureka上时,需要额外添加health-check-url-path指明健康监测的url路径。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第4张图片

接下来是Admin的配置,management配置指明了需要暴露访问的信息,我们使用*暴露了所有。接下来是安全配置,对应着启动类的配置,其中profiles为insecure不进行任何安全校验,而为secure则需要我们提供账号密码进行验证,账号密码这里设置为user与password,并且将此口令同步给Eureka,使得其他服务可以享用该口令。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第5张图片

这样admin-server就搭建完成了,启动然后访问http://localhost:10870,我们可以看到如下的界面,因为我们的配置的是需要认证访问。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第6张图片

输入账号密码登陆,进入后几乎一篇空白,因为当注册到Eureka后,服务信息需要从注册列表获取,甚至Admin自身的信息也是如此,所以我们去启动Eureka。启动之后,我们会发现Admin界面发生了变化,出现了admin-server的信息。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第7张图片

因为Admin是注册到Eureka上的,所以可以展示admin-server,而eureka-server并未注册其本身,所以这里无法展示。

点击admin-server可以查看详细信息,就是前面介绍里所说的基本信息、Health信息、内存信息、JVM信息、垃圾回收信息、日志信息、日志级别修改等,具体的这里就不做深入描述了,留给大家自行查阅。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第8张图片

Server已经搭建,那Client端怎么配置呢,前面也说了,Client端就是被监控的服务,那怎么配置user-server与book-server呢?

Admin已经注册到Eureka上,从注册列表中获取服务信息,而user-server与book-server也已经注册,理论上Admin就已经可以获取到服务信息,所以只需要赋予它权限即可。

所以在被监控服务的配置文件中,我们需要添加management.endpoint.health.show-details: ALWAYS来允许获取健康信息。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第9张图片

这样,Client端就改造完成了。我们启动user-server与book-server,然后在Admin界面就可以看到对应的详细服务信息了。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第10张图片

在日志信息模块,我们进行请求访问,实时日志也会展示,并且还提供下载功能,方便我们进行日志查看,且配合日志级别的动态修改,生产问题的排查也变得更加容易。

SpringCloud系列:14.微服务管理和监控系统Spring Boot Admin_第11张图片

源码地址: https://github.com/imyanger/springcloud-project/tree/master/p12-admin

你可能感兴趣的:(SpringCloud学习系列)