SpringBoot + Actuator 应用监控

Spring Boot Actuator

Spring Boot Actuator,应用信息采集模块,它包含了许多生产级别的功能,例如健康检查、审计、指标收集、HTTP 请求追踪等,Spring Boot Actuator 将这些信息收集起来后,暴露给外部模块。例如 Spring Boot Actuator 通过 /health 端点(endpoints)提供了应用的健康信息,但是这些端点返回的数据是 JSON 格式的,不方便查看,也不方便分析,所以一般情况下,Spring Boot Actuator 都是和一些外部模块一起使用。

Actuator支持的端点信息

在这里插入图片描述
如果是 Web 应用,则再次基础上还支持如下端点:
在这里插入图片描述

Actuator应用监控配置

# Actuator应用监控
# 暴露所有已开启的接口
management.endpoints.web.exposure.include=*
# 配置 Actuator 访问路径前缀 默认前缀为 /actuator
management.endpoints.web.base-path=/
# 配置 Actuator 路径映射
management.endpoints.web.path-mapping.beans=bs
# 配置 Actuator 跨域支持
management.endpoints.web.cors.allowed-origins=*
management.endpoints.web.cors.allowed-methods=*
# 展示健康指示器详细信息
management.endpoint.health.show-details=always
# 自定义应用信息
info.app.encoding=@project.build.sourceEncoding@
info.app.java.source=@java.version@
info.app.java.target=@java.version@
info.author.name=zhangsan
info.author.email=zhangsan@163.com

示例

查看应用健康信息

GET:localhost:8080/health
{
    "status": "UP",
    "components": {
        "diskSpace": {
            "status": "UP",
            "details": {
                "total": 179448049664,
                "free": 20660342784,
                "threshold": 10485760,
                "exists": true
            }
        },
        "ping": {
            "status": "UP"
        }
    }
}

查看应用信息

GET:localhost:8080/info
{
    "app": {
        "encoding": "UTF-8",
        "java": {
            "source": "1.8",
            "target": "1.8"
        }
    },
    "author": {
        "name": "zhangsan",
        "email": "zhangsan@163.com"
    }
}

info端点查看git提交信息

需要插件,在POM文件中添加如下插件信息

<plugin>
    <groupId>pl.project13.maven</groupId>
    <artifactId>git-commit-id-plugin</artifactId>
    <version>4.9.10</version>
</plugin>

修改配置文件,展示全部git提交信息

# info端点展示git提交信息 full展示全部
management.info.git.mode=full

Actuator 监控信息可视化

Spring Boot Admin

如果是单体应用很多人可能会选择 Spring Boot Admin 作为监控数据可视化工具。

1. 添加admin-server依赖

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

2. 启动类上添加 @EnableAdminServer 注解

启动并访问项目。在浏览器输入地址 http://localhost:8083

在这里插入图片描述

Actuator 客户端配置

1. 添加admin-client依赖

<dependency>
    <groupId>de.codecentric</groupId>
    <artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-dependencies</artifactId>
            <version>${spring-boot.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-dependencies</artifactId>
            <version>${spring-boot-admin.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

2. 客户端配置admin-server地址

# springboot admin 客户端配置服务端 admin-server 的地址
spring.boot.admin.client.url=http://localhost:8083

启动客户端后,admin-server中就会显示客户端的监控信息
在这里插入图片描述
点击应用,可查看应用监控详细信息

在这里插入图片描述

Actuator 邮件报警

当admin-server监控到应用掉线,自动发送邮件提醒

1. 添加mail依赖

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

2. 配置邮件服务器

# 邮件服务器
spring.mail.host=smtp.qq.com
spring.mail.port=465
spring.mail.username=1872192281@qq.com
# 第三方客户端登录授权码(16位,此处隐私用*代替)
spring.mail.password=pubaczqvkez*****
spring.mail.default-encoding=utf-8
spring.mail.properties.mail.smtp.socketFactory.class=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

# admin-server 邮件发送配置
spring.boot.admin.notify.mail.from=1872192281@qq.com
spring.boot.admin.notify.mail.to=haojia091@outlook.com
# 忽视的状态,若为空,表示只要状态发生变化,就发送邮件
spring.boot.admin.notify.mail.ignore-changes=

停止Actuator客户端应用。admin-server中,服务变为离线,并发送邮件提醒。

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值