介绍
简介
Spring Boot Admin是一个开源社区项目,用于管理和监控SpringBoot应用程序。 应用程序作为Spring Boot Admin Client向为Spring Boot Admin Server注册(通过HTTP)或使用SpringCloud注册中心(例如Eureka,Consul)发现。 UI是的AngularJs应用程序,展示Spring Boot Admin Client的Actuator端点上的一些监控。常见的功能或者监控如下:
- 显示健康状况
显示详细信息,例如
- JVM和内存指标
- micrometer.io指标
- 数据源指标
- 缓存指标
- 显示构建信息编号
- 关注并下载日志文件
- 查看jvm系统和环境属性
- 查看Spring Boot配置属性
- 支持Spring Cloud的postable / env-和/ refresh-endpoint
- 轻松的日志级管理
- 与JMX-beans交互
- 查看线程转储
- 查看http跟踪
- 查看auditevents
- 查看http-endpoints
- 查看计划任务
- 查看和删除活动会话(使用spring-session)
- 查看Flyway / Liquibase数据库迁移
- 下载heapdump
- 状态变更通知(通过电子邮件,Slack,Hipchat,……)
- 状态更改的事件日志(非持久性)
相关链接
安装
Spring boot admin server 与 nacos 集成
官方上手指南 中演示了如何使用spring cloud 服务注册发现 自动发现注册了的spring boot 应用。根据该指南,这里提供一份集成公司内部nacos的spring boot admin项目,其中继承了镜像打包等功能。sba-nacos
具体使用方法可以查看该项目readme
Spring boot admin client 使用方式
sba-nacos中集成了spring boot admin client 具体事例可以查看此项目,以下简单介绍如何集成spring boot admin client 与 nacos
- 在build.gradle中引入 spring boot admin的依赖
plugins {id 'org.springframework.boot' version '2.1.9.RELEASE'id 'io.spring.dependency-management' version '1.0.8.RELEASE'id 'java'}ext {set('springCloudAlibabaVersion', "2.1.0.RELEASE")set('springBootAdminVersion', "2.1.5")}sourceCompatibility = '1.8'repositories {mavenCentral()}dependencies {implementation 'de.codecentric:spring-boot-admin-starter-client'implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'implementation 'org.springframework.boot:spring-boot-starter-security'testImplementation 'org.springframework.boot:spring-boot-starter-test'}dependencyManagement {imports {mavenBom "de.codecentric:spring-boot-admin-dependencies:${springBootAdminVersion}"mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"}}
- 在spring boot configuration中加入
@EnableDiscoveryClient
@Configuration@EnableAutoConfiguration@EnableDiscoveryClient@EnableAdminServerpublic class SpringBootAdminApplication {public static void main(String[] args) {SpringApplication.run(SpringBootAdminApplication.class, args);}@Configurationpublic static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().anyRequest().permitAll().and().csrf().disable();}}}
为了简易,在 SecurityPermitAllConfig 中暂时关闭安全设置,如果需要开启,可以查看spring boot admin 开启安全设置
- 在配置文件中配置服务发现
详细可以参考 nacos服务发现
示例:
spring:application:name: sba-nacoscloud:nacos:discovery:server-addr: docker.koal.com:8848//此处将ip 端口通过环境变量配置,方便docker容器使用ip: ${NACOS_CLIENT_IP:}port: ${NACOS_CLIENT_PORT:8080}config:server-addr: docker.koal.com:8848file-extension: yamlserver:port: 8080management:endpoints:web:exposure:include: "*"endpoint:health:show-details: ALWAYS
