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
目录下:
在咱们本人的我的项目里,创立同名目录构造,把文件粘贴进去就能够啦,要做什么改变就能够轻易改了