Spring Boot Admin 2.0 监控Spring Cloud服务(Finchley版本)

一、简介

Spring Boot Admin 在Spring Boot Actuator 的基础上提供简介的可视化WEB UI,用来管理Spring Boot应用程序的一个简单的界面,提供如下的功能:

  • 显示 name/id 和版本
  • 显示在线状态
  • Logging 日志级别管理
  • MX beans 管理
  • Threads 会话和线程管理
  • Trace 应用请求跟踪
  • 应用运行参数信息,如:
  • Java 系统属性
  • Java 环境变量属性
  • 内存信息
  • Spring 环境属性

本文将以Spring Boot Admin 2.0 与 Eureka整合展示Spring Boot Admin 2.0 的使用。
下面我介绍一下使用到的相关应用:

服务端口服务说明
eureka-server8100服务注册与发现中心
config-server8101配置中心
codedict8102代码字典微服务(监控客户端)
admin8103spring boot admin监控服务(监控服务端)

这里我主要讲解spring boot admin服务端与客户端的搭建,服务注册发现和配置中心的搭建不再做赘述。

二、Spring Boot Admin服务端搭建

1. 添加相关依赖
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-server</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <!--JMX-bean 管理-->
        <dependency>
            <groupId>org.jolokia</groupId>
            <artifactId>jolokia-core</artifactId>
        </dependency>
2. 启动类
@EnableAdminServer
@EnableEurekaClient
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class AdminCustomApplication extends SpringBootServletInitializer {
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(AdminCustomApplication.class);
  }

  public static void main(String[] args) {
    SpringApplication.run(AdminCustomApplication.class, args);
  }
}
3. 安全控制
@Profile("secure")
@Configuration
public class SecuritySecureConfig extends WebSecurityConfigurerAdapter {
  private final String adminContextPath;

  public SecuritySecureConfig(AdminServerProperties adminServerProperties) {
    this.adminContextPath = adminServerProperties.getContextPath();
  }

  @Override
  protected void configure(HttpSecurity http) throws Exception {
    SavedRequestAwareAuthenticationSuccessHandler successHandler = new SavedRequestAwareAuthenticationSuccessHandler();
    successHandler.setTargetUrlParameter("redirectTo");

    http.authorizeRequests()
            .antMatchers(adminContextPath + "/assets/**").permitAll()
            .antMatchers(adminContextPath + "/login").permitAll()
            .anyRequest().authenticated()
            .and()
            .formLogin().loginPage(adminContextPath + "/login").successHandler(successHandler).and()
            .logout().logoutUrl(adminContextPath + "/logout").and()
            .httpBasic().and()
            .csrf().disable();
  }
}

这里为Spring Boot Admin配置了登录控制。

4. 配置文件
#服务名
spring.application.name=admin
spring.cloud.config.profile=dev2
#配置上下文路径
server.servlet.context-path=/admin
#注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka-server/eureka

#为监控端点加前缀,这样才可以收集到监控信息
#eureka.instance.metadata-map.management.context-path=/admin/actuator
#eureka.instance.health-check-url=http://localhost:${server.port}/admin/actuator/health
#eureka.instance.status-page-url=http://localhost:${server.port}/admin/actuator/info
#eureka.instance.home-page-url=http://localhost:${server.port}
eureka.instance.lease-renewal-interval-in-seconds=10
eureka.instance.health-check-url-path=/admin/actuator/health
eureka.client.registry-fetch-interval-seconds=5

eureka.instance.metadata-map.user.name=user
eureka.instance.metadata-map.user.password=password

#暴露actuator的所有端点
management.endpoints.web.exposure.include=*
#health endpoint是否必须显示全部细节。默认情况下, /actuator/health 是公开的,并且不显示细节
management.endpoint.health.show-details=always

#配置登录名,密码和安全策略
spring.profiles.active=secure
spring.security.user.name=user
spring.security.user.password=password

#通过服务连接配置中心
#spring.cloud.config.discovery.enabled=true
#spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.uri = http://localhost:8080/config-server
#配置文件获取失败快速返回
spring.cloud.config.failFast=true

spring.jmx.default-domain=admin

5. 启动admin服务

登录界面
主界面

三、Spring Boot Admin 客户端

1. 添加依赖
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
2. 配置文件
#服务名
spring.application.name=codedict
spring.cloud.config.profile=dev2
#配置上下文路径
server.servlet.context-path=/codedict
#注册中心
eureka.client.serviceUrl.defaultZone=http://localhost:8080/eureka-server/eureka

#为监控端点加前缀,这样才可以收集到监控信息
eureka.instance.metadata-map.management.context-path=/codedict/actuator
eureka.instance.health-check-url=http://localhost:${server.port}/codedict/actuator/health
eureka.instance.status-page-url=http://localhost:${server.port}/codedict/actuator/info
eureka.instance.home-page-url=http://localhost:${server.port}

#Actuator 在 spring boot 2.0 版本后,只暴露了两个端点,下面开启所有端点
management.endpoint.health.show-details=always
management.endpoints.web.exposure.include=*

#通过服务连接配置中心
#spring.cloud.config.discovery.enabled=true
#spring.cloud.config.discovery.serviceId=config-server
spring.cloud.config.uri = http://localhost:8080/config-server
#配置文件获取失败快速返回
spring.cloud.config.failFast=true

这里只展示与本节内容相关的配置。

3. 查看监控信息

服务上线
监控信息
监控信息

其它详细信息可以参考官网

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值