Springboot集成Actuator和SpringbootAdminServer监控

Springboot集成Actuator和SpringbootAdminServer监控 · 深入学习 · 看云

Actuator  安可忒为特尔

最近在学springclound,然后看书的时候,学习到通过actuator来监控springboot应用的各项指标。又因actuator只提供一组endpoints(restful接口),查看不直观,才有集成springboot admin server来通过界面查看监控。(当然还有其他的界面监控,比如很牛逼的普罗米修斯

一、springboot actuator介绍

Spring Boot Actuator可以帮助你监控和管理Spring Boot应用,比如健康检查、审计、统计和HTTP追踪等。所有的这些特性可以通过JMX或者HTTP endpoints来获得。

Actuator同时还可以与外部应用监控系统整合,比如 PrometheusGraphiteDataDogInfluxWavefrontNew Relic等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松的监控和管理你的应用。

示例:
http://localhost:9101/actuator/health

{
  "status": "UP",
  "components": {
    "db": {
      "status": "UP",
      "details": {
        "database": "SQLite",
        "result": 1,
        "validationQuery": "SELECT 1"
      }
    },
    "diskSpace": {
      "status": "UP",
      "details": {
        "total": 250790436864,
        "free": 64770326528,
        "threshold": 10485760
      }
    },
    "ping": {
      "status": "UP"
    },
    "redis": {
      "status": "UP",
      "details": {
        "version": "5.0.8"
      }
    }
  }
}

二、springboot admin server介绍

Actuator功能强大,便于其他应用使用端点(只需要简单的REST调用)。但是开发人员使用时就没那么方便了。对于开发人员,有良好的交互界面会更方便浏览监控数据和管理应用。这正是Spring Boot Admin做的工作。它为actuator端点提供了良好的交互界面,并提供了额外的特性。

Spring Boot Admin不是Spring团队提供的模块,它是由Codecentric公司创建的,代码在Github上公开。

示例:

三、springboot应用集成actuator

  1. pom.xml里添加依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. actuator相关配置
# 显示actuator详情
management.endpoint.health.show-details=always
# 解除浏览器访问路径,* 是所有,也可以指定为beans,health
management.endpoints.web.exposure.include=*
# 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离
management.server.port=9101
management.server.servlet.context-path=/

四、springboot应用集成springboot admin server

分为ServerClientServer可以理解为注册中心,Client则是将集成了actuator的springboot应用的注册到Server上,然后通过界面监控各项指标。

Server端

  1. 添加依赖
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>de.codecentric</groupId>
        <artifactId>spring-boot-admin-starter-server</artifactId>
        <version>${springboot.admin.version}</version>
    </dependency>
</dependencies>
  1. 启动类上添加@EnableAdminServer注解
@EnableAdminServer
@SpringBootApplication
public class StartupApplication {
    public static void main(String[] args) {
        SpringApplication.run(StartupApplication.class,args);
    }
}
  1. 启动后访问Server的端口http://127.0.0.1:9100

Client端

  1. 添加依赖
<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
    <version>${springboot.admin.version}</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. 添加配置
# 显示actuator详情
management.endpoint.health.show-details=always
# 解除浏览器访问路径,* 是所有,也可以指定为beans,health
management.endpoints.web.exposure.include=*
# 端点信息接口使用的端口,为了和主系统接口使用的端口进行分离
management.server.port=9101
management.server.servlet.context-path=/
spring.application.name=card-api
# 配置spring-boot-admin服务端的地址
spring.boot.admin.client.enabled=true
spring.boot.admin.client.url=http://localhost:9100
  1. 启动Client端后,就能看到界面上有示例连上

五、总结

  1. 为了监控springboot应用的各项指标,才有了springboot actuator项目。
  2. 为了更直观查看各项监控数据,就有了springboot admin server项目,其他的还有Prometheus
  3. springboot adminServerClient端都可以集成spring-security认证,提供安全性。
  4. 框架的版本一定要对应,不然启动的时候会出各种问题。spring和spring boot和spring cloud,以及spring boot admin的版本。可以通过mvn repo参考查看。(
  5. 我的版本:spring clound Hoxton.SR10 + spring boot 2.2.7 RELEASE + spring boot admin 2.2.4 )

参考资料

  1. Spring Boot Admin入门指南 - 简书
  2. 跟我学Spring Cloud(Finchley版)-03-监控:强大的Spring Boot Actuator | 周立的博客 - 关注Spring Cloud、Docker
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值