介绍

简介

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,……)
  • 状态更改的事件日志(非持久性)

相关链接

官方上手指南
github

安装

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

  1. 在build.gradle中引入 spring boot admin的依赖
  1. plugins {
  2. id 'org.springframework.boot' version '2.1.9.RELEASE'
  3. id 'io.spring.dependency-management' version '1.0.8.RELEASE'
  4. id 'java'
  5. }
  6. ext {
  7. set('springCloudAlibabaVersion', "2.1.0.RELEASE")
  8. set('springBootAdminVersion', "2.1.5")
  9. }
  10. sourceCompatibility = '1.8'
  11. repositories {
  12. mavenCentral()
  13. }
  14. dependencies {
  15. implementation 'de.codecentric:spring-boot-admin-starter-client'
  16. implementation 'org.springframework.boot:spring-boot-starter-web'
  17. implementation 'com.alibaba.cloud:spring-cloud-starter-alibaba-nacos-discovery'
  18. implementation 'org.springframework.boot:spring-boot-starter-security'
  19. testImplementation 'org.springframework.boot:spring-boot-starter-test'
  20. }
  21. dependencyManagement {
  22. imports {
  23. mavenBom "de.codecentric:spring-boot-admin-dependencies:${springBootAdminVersion}"
  24. mavenBom "com.alibaba.cloud:spring-cloud-alibaba-dependencies:${springCloudAlibabaVersion}"
  25. }
  26. }
  1. 在spring boot configuration中加入@EnableDiscoveryClient
  1. @Configuration
  2. @EnableAutoConfiguration
  3. @EnableDiscoveryClient
  4. @EnableAdminServer
  5. public class SpringBootAdminApplication {
  6. public static void main(String[] args) {
  7. SpringApplication.run(SpringBootAdminApplication.class, args);
  8. }
  9. @Configuration
  10. public static class SecurityPermitAllConfig extends WebSecurityConfigurerAdapter {
  11. @Override
  12. protected void configure(HttpSecurity http) throws Exception {
  13. http.authorizeRequests().anyRequest().permitAll()
  14. .and().csrf().disable();
  15. }
  16. }
  17. }

为了简易,在 SecurityPermitAllConfig 中暂时关闭安全设置,如果需要开启,可以查看spring boot admin 开启安全设置

  1. 在配置文件中配置服务发现
    详细可以参考 nacos服务发现
    示例:
  1. spring:
  2. application:
  3. name: sba-nacos
  4. cloud:
  5. nacos:
  6. discovery:
  7. server-addr: docker.koal.com:8848
  8. //此处将ip 端口通过环境变量配置,方便docker容器使用
  9. ip: ${NACOS_CLIENT_IP:}
  10. port: ${NACOS_CLIENT_PORT:8080}
  11. config:
  12. server-addr: docker.koal.com:8848
  13. file-extension: yaml
  14. server:
  15. port: 8080
  16. management:
  17. endpoints:
  18. web:
  19. exposure:
  20. include: "*"
  21. endpoint:
  22. health:
  23. show-details: ALWAYS