java web 之springboot教程之三十一----Actuator 和spring-boot-admin

通过restful api的方式查看信息过于繁琐,也不直观,效率低下。当服务过多的时候看起来就过于麻烦,每个服务都需要调用不同的接口来查看监控信息。

springboot核心注解参考:https://www.ctolib.com/topics-138637.html

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等注册中心的方式实现多服务监控与管理

参考官网文档:http://codecentric.github.io/spring-boot-admin/2.0.0/

在 Spring Boot 项目中,Spring Boot Admin 作为 Server 端,其他的要被监控的应用作为 Client 端

首先创建多模块springboot项目,参考https://blog.csdn.net/t2080305/article/details/81625433

1,server模块:

pom.xml

 



    de.codecentric
    spring-boot-admin-starter-server
    2.1.0


    org.springframework.boot
    spring-boot-starter-actuator


    org.springframework.boot
    spring-boot-starter-thymeleaf


    org.springframework.boot
    spring-boot-starter-web



    org.projectlombok
    lombok
    true


    org.springframework.boot
    spring-boot-starter-test
    test

配置文件,application.properties:

 

server.port = 8000
spring.application.name=Spring Boot Admin Server
spring.boot.admin.url=http://localhost:${server.port}
spring.jackson.serialization.indent_output=true

启动类:

 

package com.sba.server;

import de.codecentric.boot.admin.server.config.EnableAdminServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Created by Chen Xiang
 * Date: 2019/4/28
 * Proj: multisba
 */
@SpringBootApplication
@EnableAdminServer
@Slf4j
public class SbaServerApplication {
    public static void main(String[] args) {
        SpringApplication.run(SbaServerApplication.class, args);
    }
}

启动,就可以通过localhost:8000访问服务器。

 

2,客户端:

pom.xml

 


    de.codecentric
    spring-boot-admin-starter-client
    2.1.0


    org.springframework.boot
    spring-boot-starter-thymeleaf


    org.springframework.boot
    spring-boot-starter-web



    org.projectlombok
    lombok
    true


    org.springframework.boot
    spring-boot-starter-test
    test

配置文件:

 

server.port=8001
spring.application.name=Admin Client
spring.boot.admin.client.url=http://localhost:8000  
management.endpoints.web.exposure.include=*
  • spring.boot.admin.client.url 配置 Admin Server 的地址
  • management.endpoints.web.exposure.include=* 打开客户端 Actuator 的监控。

启动类:

 

package com.sba.client;

import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

/**
 * Created by Chen Xiang
 * Date: 2019/4/28
 * Proj: multisba
 */
@SpringBootApplication
@Slf4j
public class SbaClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(SbaClientApplication.class, args);
    }
}

客户端启动之后,就可以在服务器端看到了。

Spring Boot Admin 以图形化的形式展示了应用的各项信息,这些信息大多都来自于 Spring Boot Actuator 提供的接口。

如果我们使用的是单个 Spring Boot 应用,就需要在每一个被监控的应用中配置 Admin Server 的地址信息;如果应用都注册在 Eureka 中就不需要再对每个应用进行配置,Spring Boot Admin 会自动从注册中心抓取应用的相关信息。

如果我们使用了 Spring Cloud 的服务发现功能,就不需要在单独添加 Admin Client 客户端,仅仅需要 Spring Boot Server ,其它内容会自动进行配置。可以使用Eureka。

 

你可能感兴趣的:(JavaWeb,springboot)