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

本文介绍如何使用SpringBootAdmin(SBA)监控SpringBoot应用,包括服务端和客户端的配置,以及通过图形化界面展示应用监控信息的方法。SBA支持集群监控,可自动从Eureka等注册中心获取应用信息。

通过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.youkuaiyun.com/t2080305/article/details/81625433

1,server模块:

pom.xml

 

<!-- 服务端:带UI界面 -->
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-server</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

配置文件,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

 

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>2.1.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>

配置文件:

 

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。

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值