服务状态管理与监控

114 阅读1分钟

服务状态管理与监控

Spring Boot Actuator

简述

  • 提供了对SpringBoot应用程序(可以是生产环境)监视和管理的能力
  • 可以选择通过使用HTTP Endpoint或使用JMX来管理和监控SpringBoot应用程序
  • Spring Boot Actuator 允许你通过Endpoints对Spring Boot应用进行监控和交互

Endpoint

模式

  • WEB。web方式考虑到安全性默认只开启了/health
  • JMX

跨域访问配置

自定义端点(Endpoint)

  • 可以通过@JmxEndpoint或者@WebEndpoint注解来定义自己的endpoint,
  • 然后通过@ReadOperation, @WriteOperation或者@DeleteOperation来设置操作

依赖

<dependency>    
<groupId>org.springframework.boot</groupId>    
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

Metrics数据接入监控系统

  • 例如:Prometheus

SpringBoot Admin

简述

  • SpringBoot提供了Actuator对应用进行监控和管理,
  • 而Spring Boot Admin能够将 Actuator 中的信息进行界面化的展示,
  • 也可以监控所有 Spring Boot 应用的健康状况,提供实时警报功能

相关模块

服务端(Server)

依赖

<dependency>    
<groupId>de.codecentric</groupId>    
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>

相关注解

  • @EnableAdminServer
    • 启用SpringBoot Admin Server

客户端(Client)

依赖

<dependency>    
<groupId>de.codecentric</groupId>    
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>

配置

  • 配置SpringBoot Admin Server地址
  • 配置需要监控的Actuator端点

启用JMX管理

  • 默认是关闭的

  • 依赖

    <dependency>    
    	<groupId>org.jolokia</groupId>    
    	<artifactId>jolokia-core</artifactId>
    </dependency>
    
  • 配置

    spring.jmx.enabled: true
    

显示应用日志

  • 配置

    logging.file.name: 'spring-boot-application.log'
    logging.pattern.file: 'xxxxxxxxx'
    

设置通知与告警

  • 依赖

    <dependency>    
    	<groupId>org.springframework.boot</groupId>    
    	<artifactId>spring-boot-starter-mail</artifactId>
    </dependency>
    
  • 配置

    spring.mail.host=smtp.mail.com
    spring.boot.admin.notify.mail.to=admin@mail.com