监控安全获取运行时数据的几种方式/Spring Admin

1,167 阅读1分钟

通过Micrometer获取运行时数据

收集度量指标micrometer,提供了探针客户端instrumentation clients,看成是度量的门面,和底层使用的监控系统monitor system无关

特性

  • 多维度度量——支持tag,tag非常重要
  • 预置大量探针——缓存、classloader、GC、cpu利用率、线程池
  • 与spring深度整合,可以集成spring mvc、restTemplate和webclient等

支持的监控系统

  • 多维的——Prometheus/Influx,在有维度的监控系统中,tag非常重要
  • 层次的——JMX

一些核心度量指标

核心接口:Meter

内置实现:

  • Gauge/TimeGauge cpu使用率
  • Timer/LongTaskTimer/FunctionTimer 计时器
  • Counter/FunctionCounter 计数器
  • DistributionSummary 分布统计

MicroMeter in Spring Boot 2.x

一些URL:
/actuator/metrics
/actuator/prometheus
对http请求的统计 /actuator/metrics/http.server.requests

一些配置项

实例

优化:集中展示应用程序Actuator相关的内容

**第三方Spring Boot Admin ** 可以为Spring Boot应用程序提供一套管理界面,不用每次通过url访问,还可以变更通知,通过弹窗等形式提醒
/instances是客户端向服务端注册实例信息的url
/actuator/**是客户端监控自己状态

服务端

  • spring-boot-admin-starter-server
  • spring-boot-starter-web
  • @EnableAdminServer

客户端

  • spring-boot-admin-starter-client
  • spring-boot-starter-web
  • spring-boot-starter-actuator
  • 配置服务端和Endpoint
    • spring.boot.admin.client.url=http://localhost:8080
    • management.endpoints.web.exposure.include=*

安全控制SBA+Spring security

  • spring-boot-starter-security
  • 服务端配置
    • spring.security.user.name
    • spring.security.user.password

启动类SbaServerApplication.java如下

  • 客户端配置
    //指定客户端连接服务端,即访问server时用到的url的用户名和密码
    • spring.boot.admin.client.username
    • spring.boot.admin.client.password
      //instance的用户名/密码,连接自身actuator endpoint
    • spring.boot.admin.client.instance.metadata.user.name
    • spring.boot.admin.client.instance.metadata.user.password