介绍
简介
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
@EnableAdminServer
public class SpringBootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminApplication.class, args);
}
@Configuration
public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests().anyRequest().permitAll()
.and().csrf().disable();
}
}
}
为了简易,在 SecurityPermitAllConfig
中暂时关闭安全设置,如果需要开启,可以查看spring boot admin 开启安全设置
- 在配置文件中配置服务发现
详细可以参考 nacos服务发现
示例:
spring:
application:
name: sba-nacos
cloud:
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:8848
file-extension: yaml
server:
port: 8080
management:
endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: ALWAYS