SpringBootAdmin搭建教程六:自定义配置属性

在上一篇中我们学习到了,SpringBootAdmin的客户端离线,上线发送邮件通知等知识,这里我们来学习 SpringBootAdmin 中的自定义配置属性。

自定义通知程序

您可以通过添加实现该Notifier接口的Spring Bean来添加自己的通知程序,最好通过扩展 AbstractEventNotifier或来添加AbstractStatusChangeNotifier
服务端代码配置:

/**
 * @author qrn
 * @version 1.0
 * @date 2021/4/12 16:25
 * 自定义通知程序:
 */
public class CustomNotifier extends AbstractEventNotifier{

    private static final Logger LOGGER = LoggerFactory.getLogger(LoggingNotifier.class);

    public CustomNotifier(InstanceRepository repository) {
        super(repository);
    }

    @Override
    protected Mono<Void> doNotify(InstanceEvent event, Instance instance) {
        return Mono.fromRunnable(() -> {
            if (event instanceof InstanceStatusChangedEvent) {
                LOGGER.info("Instance {} ({}) is {}", instance.getRegistration().getName(), event.getInstance(),
                        ((InstanceStatusChangedEvent) event).getStatusInfo().getStatus());
            }
            else {
                LOGGER.info("Instance {} ({}) {}", instance.getRegistration().getName(), event.getInstance(),
                        event.getType());
            }
        });
    }
}

自定义Http标头

如果您需要将自定义HTTP标头注入到对受监视应用程序的执行器端点的请求中,则可以轻松添加HttpHeadersProvider
在启动类中加入以下代码配置:SpringBootAdminServiceApplication

    /**
     * 自定义HTTP标头
     * @return
     */
    @Bean
    public HttpHeadersProvider customHttpHeadersProvider() {
        return (instance) -> {
            HttpHeaders httpHeaders = new HttpHeaders();
            httpHeaders.add("X-CUSTOM", "My Custom Value");
            return httpHeaders;
        };
    }

拦截请求和响应

您可以通过实现InstanceExchangeFilterFunction接口来拦截和修改对受监视应用程序的执行器端点的请求和响应。这对于审核或添加一些额外的安全检查很有用

   /**
     * 拦截请求和响应日志打印
     * @return
     */
    @Bean
    public InstanceExchangeFilterFunction auditLog() {
        return (instance, request, next) -> next.exchange(request).doOnSubscribe((s) -> {
            if (HttpMethod.DELETE.equals(request.method()) || HttpMethod.POST.equals(request.method())) {
                log.info("{} for {} on {}", request.method(), instance.getId(), request.url());
            }
        });
    }

自己定义log。打印日志排查

链接/嵌入外部页面

您可以非常简单地通过配置添加指向外部页面的链接,甚至可以嵌入它

spring:
  boot:
    admin:
      ui:
        external-views:
          - label: "🚀"
            url: http://codecentric.de
            order: 2000

自定义登录徽标

  1. 图片放在通过http提供服务的资源位置(例如/META-INF/spring-boot-admin-server-ui/assets/img/)。
  2. 使用以下属性来配置要使用的图标:
    • spring.boot.admin.ui.login-icon:用作登录页面上的图标。(例如assets/img/custom-login-icon.svg

自定义Favicon

可以使用自定义图标,该图标也用于桌面通知。当一个或多个应用程序关闭时,Spring Boot Admin使用一个不同的图标。

  1. 将网站图标(.png至少192x192像素)放在通过http提供服务的资源位置(例如/META-INF/spring-boot-admin-server-ui/assets/img/)。
  2. 使用以下属性来配置要使用的图标:
    • spring.boot.admin.ui.favicon:用作默认图标。(例如assets/img/custom-favicon.png
    • spring.boot.admin.ui.favicon-danger:在一项或多项服务中断时使用。(例如assets/img/custom-favicon-danger.png

自定义语言

spring.boot.admin.ui.available-languages:用作现有语言的过滤器。(e.g en,de out of existing de,en,fr,ko,pt-BR,ru,zh)

显示/隐藏视图

您可以非常简单地在导航栏中隐藏视图:

spring:
  boot:
    admin:
      ui:
        view-settings:
          - name: "journal"
            enabled: false

监视Spring Boot 1.5.x

可以使用Spring Boot Admin 2.x监视Spring Boot 1.5.x应用程序。旧的Spring Boot Admin Client可以在较新的服务器上注册。由于API稍有变化,因此您需要在旧客户端上设置以下属性:

  1. 重新配置Spring Boot Admin Client 1.5.x的api路径:

    application.yml

    spring.boot.admin.api-path: instances
    

由于在Spring Boot 2版本中某些执行器端点发生了变化,因此并非所有选项都可用(例如/metrics端点)。对于某些端点,我们提供了旧式转换器。

2.x进行的更改

使用者界面
  • 使用vue.js重写了ui
  • 将ui-login模块集成到主ui模块中
  • 删除了ui-activity模块,因为它很少使用
  • 删除了Hystrix-Dashboard集成(可能会更改)
  • 增加了对会话端点的支持
  • 添加了(经过消毒的)元数据的显示
  • 添加了重置日志级别的选项
  • 添加了墙板视图
后端服务
  • 将所有类移至spring.boot.admin.server包中
  • 与Spring Cloud相关的扩展已移至spring-boot-admin-server-cloud
  • 使用事件源原则重新设计了后端
  • 添加了应用程序概念(由1到n个实例组成)
  • 通过查询/actuator-index或通过OPTIONS请求进行探测,将端点检测移至后端
  • 使用WebClient将Zuul替换为自定义代理
  • 删除了对spring-cloud-starter的依赖
  • 加入CompositeHttpHeadersProvider到支持多HttpHeadersProviders在同一时间
  • 添加了“ InstanceExchangeFilterFunction”,可以拦截/修改对受监视实例的请求
  • 添加了对CloudFoundry的开箱即用支持
  • 增加了对Spring Boot 1.5.x执行器端点的支持,使用 LegacyEndpointConverters
  • 更新OpsGenieNotifier到api v2
  • 重写了MailNotifier以使用Thymeleaf模板

客户端

  • 将所有属性移到spring.boot.admin.client.spring.boot.admin.client.instance.
  • 将所有类移至spring.boot.admin.client包中
  • 添加了支持webflux应用程序
  • 添加了对CloudFoundry的开箱即用支持

项目代码Github地址:SpringBootAmdinDemo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值