SpringBoot
是为了简化Spring
应用的创建、运行、调试、部署等一系列问题而诞生的产物,自动装配的特性让我们可以更好的关注业务本身而不是外部的XML配置,我们只需遵循规范,引入相关的依赖就可以轻易的搭建出一个 WEB 工程
一起来学SpringBoot | 第十四篇:强大的 actuator 服务监控与管理 中介绍了actuator
的作用,细心的朋友可能会发现通过http restful api
的方式查看信息过于繁琐也不够直观,效率低下,运维人员看到JSON数据更是一脸懵逼,当服务过多的时候查看起来就过于操蛋了,每个服务都需要调用不同的接口来查看监控信息,备受各种困扰因素的我默默翻了下全球最大男性交友平台
找到了spring-boot-admin
什么是SBA
SBA 全称 Spring Boot Admin
是一个管理和监控 Spring Boot
应用程序的开源项目。分为admin-server
与 admin-client
两个组件,admin-server
通过采集 actuator
端点数据,显示在 spring-boot-admin-ui
上,已知的端点几乎都有进行采集,通过 spring-boot-admin
可以动态切换日志级别、导出日志、导出heapdump
、监控各项指标 等等….
Spring Boot Admin
在对单一应用服务监控的同时也提供了集群监控方案,支持通过eureka
、consul
、zookeeper
等注册中心的方式实现多服务监控与管理…
导入依赖
在 pom.xml
中添加 spring-boot-admin
的相关依赖,这里只演示单机版本的,因此就自己监控自己了
1
|
<dependencies>
|
注意事项
如果要访问info
接口想获取maven
中的属性内容请记得添加如下内容
1
|
<build>
|
属性配置
在 application.properties
文件中配置actuator
的相关配置,其中info
开头的属性,就是访问info
端点中显示的相关内容,值得注意的是Spring Boot2.x
中,默认只开放了info、health
两个端点,剩余的需要自己通过配置management.endpoints.web.exposure.include
属性来加载(有include
自然就有exclude
,不做详细概述了)。这个management.endpoints.web.base-path
属性比较重要,因为Spring Boot2.x
后每个端点默认的路径是/actuator/endpointId
这样一来Spring Boot Admin
是无法正常采集的
application.properties
1
|
# 描述信息
|
application-dev.properties - 空
application-prod.properties
为了安全起见,应采用认证的方式
1
|
# 登陆所需的账号密码
|
主函数
添加上 @EnableAdminServer
注解即代表是Server
端,集成UI的
1
|
package com.battcn;
|
测试
完成准备事项后,启动Chapter14Application
访问 http://localhost:8080/login 看到登陆页面则代表一切正常,接着输入账号密码点击登陆即可…
由于篇幅原因大图就不放太多了,有兴趣的朋友可以直接fork
代码运行即可