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提供安全校验。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值