1. base path

我的项目须要用到spring-boot-admin(后简写为sba)做监控,没有独立域名,应用主域名+ingress做门路辨认,所以须要配合contextPath应用,如何配置呢?

应用tomcat的bio通信模型时,通过 server.servlet.context-path=/xxx 就能够了,然而因为sba应用了netty+webflux的nio模型,所以要用 spring.webflux.base-path=/xx 来指定。服务启动之后,就能够通过 http://ip:port/xx 来拜访了。

但这时候有个问题,因为sba连上注册核心默认是把本人也注册下来的,监控他人顺便监控本人,没有问题,然而通过控制台能够看到sba状态是不通的,为什么呢?

点进去能够看到,health-check的endpoint是 http://ip:port/actuator/health 这个actuator组件提供的默认查看门路。因为咱们的sba后面配了basePath,正确的查看门路应该是http://ip:port/xxx/actuator/health 如何更改呢?

查看源码能够晓得,sba是通过注册节点的元数据来获取节点的各项指标数据对应的endpoint的,所以在注册的时候带上对应的metadata就能够了,应用nacos时能够通过增加这个配置来指定:

spring:  cloud:    nacos:      discovery:        metadata:          'management.context-path': /sadmin/actuator

2. basic auth

sba我的项目,退出 spring-boot-starter-security 依赖包和如下配置:

spring:  security:    user:      name: admin      password: 123456

即可赋予sba控制台简略验证性能,十分好用。

然而如果sba监控的其余我的项目也应用了basic auth呢?申请的endpoint会被验证拦截,监控会全副生效。这时通过增加以下配置即可:

spring:  boot:    admin:      instance-auth:        service-map:          xxx: # 配置了验证的服务名            userName: admin # 用户名            userPassword: 123456 # 明码

3. mail notify

sba引入 spring-boot-starter-mail 包,在 spring.mail 节点增加发件服务器配置后,通过以下配置:

spring:  boot:    admin:      notify:        mail:          to: shoujianren1<name@domain.com>,shoujianren2<name2@domain.com>,          from: fajianren@domain.cn          enabled: true          ignore-changes: "UNKNOWN:UP"  # 哪些状态不告诉,能够应用*通配符

即可开启sba的检测节点状态变更时的邮件告诉性能。当然除了邮件告诉,sba还内置了其余多种IM软件告诉形式,不够用了本人扩大也很不便。

这种邮件告诉形式,应用的默认邮件模板,十分不灵便,如何自定义呢?

首先,先把默认模板拷贝进去,基于它间接改很省事。找到 sping-boot-admin-server 这个依赖jar包,模板文件就在 META-INF 目录下:

在咱们本人的我的项目里,创立同名目录构造,把文件粘贴进去就能够啦,要做什么改变就能够轻易改了