返回

运筹帷幄!SpringBoot接入Admin全面告警剖析,优化运维新范式!

后端

SpringBoot Admin告警通知简介

SpringBoot Admin是一款功能强大的SpringBoot监控管理工具,可将Spring Boot应用程序的信息统一展示到一个界面,方便运维人员对应用程序进行监控和管理。其主要功能包括:

  • 查看应用程序的运行状态,如内存使用情况、线程数、JVM信息等。
  • 管理应用程序的日志,支持过滤和搜索日志信息。
  • 管理应用程序的堆转储,可以在需要时生成堆转储文件以进行问题诊断。
  • 提供告警通知功能,当应用程序出现问题时,可以通过邮件、短信或其他方式发送告警通知给运维人员。

服务端搭建与配置

1. 构建Admin服务

使用SpringBoot Admin提供了完整的构建项目工程pom.xml,导入项目的依赖,可参考如下:

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

添加上配置属性,即可构建Admin服务:

spring.boot.admin.server.port=8082
spring.boot.admin.client.url=http://localhost:8081

spring.boot.admin.server.port表示Admin服务的端口号,spring.boot.admin.client.url表示被监控的SpringBoot应用的地址。

2. 构建应用并添加客户端依赖

在应用的pom.xml中,添加SpringBoot Admin客户端依赖:

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

并配置Admin服务端的地址:

spring.boot.admin.client.url=http://localhost:8082

这样SpringBoot应用就能够被Admin服务监控了。

3. 启动Admin服务和应用

分别启动Admin服务和SpringBoot应用,即可在Admin服务端看到应用的状态信息了。

配置告警通知

SpringBoot Admin支持多种方式的告警通知,包括邮件、钉钉、微信等。这里以邮件通知为例,进行配置说明。

1. 配置邮件服务器信息

在SpringBoot应用的application.properties文件中,配置邮件服务器的信息:

spring.mail.host=smtp.qq.com
spring.mail.port=25
spring.mail.username=admin@qq.com
spring.mail.password=admin123

注意:根据不同的邮件服务商,需要配置不同的参数值。

2. 配置告警通知规则

在SpringBoot Admin服务端的application.properties文件中,配置告警通知规则:

spring.boot.admin.notify.mail.enabled=true
spring.boot.admin.notify.mail.recipients=admin@qq.com
spring.boot.admin.notify.mail.text=SpringBoot应用[%s]出现问题,状态为[%s],详情请访问[%s]

spring.boot.admin.notify.mail.enabled表示是否启用邮件告警通知,spring.boot.admin.notify.mail.recipients表示接收告警通知的邮箱地址,spring.boot.admin.notify.mail.text表示告警通知的文本内容。

3. 测试告警通知

在SpringBoot应用中制造一个异常,如抛出一个异常或让应用退出,在Admin服务端即可看到告警通知了。

结语

SpringBoot Admin的「告警通知」功能可以帮助运维人员快速接入告警通知,从而快速了解系统中出现的异常情况并及时进行处理,有效地提高系统稳定性与可靠性。希望本文能够帮助运维工程师轻松配置告警通知功能,掌握SpringBoot Admin告警通知的全套技术栈。