开发者

HertzBeat 监控 SpringBoot 使用案例(最新整理)

开发者 https://www.devze.com 2025-08-30 10:24 出处:网络 作者: 天氰色等烟雨
目录HertzBeat 监控 SpringBoot 使用案例HertzBeat 是什么安装 HertzBeatSpringBoot 应用配置监控 SpringBoot 应用Grafana可视化集成 (可选)告警与通知联动小总结HertzBeat 监控 SpringBoot 使用案例
目录
  • HertzBeat 监控 SpringBoot 使用案例
    • HertzBeat 是什么
    • 安装 HertzBeat
    • SpringBoot 应用配置
    • 监控 SpringBoot 应用
    • Grafana可视化集成 (可选)
    • 告警与通知联动
    • 小总结

HertzBeat 监控 SpringBoot 使用案例

在云原生时代,Spring Boot应用的监控与可视化已然成为运维体系的核心环节,实时监控应用性能是保障系统稳定性的关键。

这篇文章将结合 HertzBeat 实现从指标采集、可视化到告警的一体化解决方案,并展示完整操作流程与监控实践。

HertzBeat 是什么

Apache HertzBeat (incuBATing) 一个拥有强大自定义监控能力,无需Agent的实时监控工具。网站监测,PING连通性,端口可用性,数据库,操作系统,中间件,API监控,阈值告警,告警通知(邮件微信钉钉飞书)。

github: https://github.com/apache/hertzbeat

安装 HertzBeat

生产环境中推荐使用 PostgreSQL + VictoriaMetrics 服务的方式部署 HertzBeat。

编程客栈

1、部署 HertzBeat

  • 下载安装包
  • 从 下载页面 下载您系统环境对应的安装包版本 apache-hertzbeat-xxx-incubating-bin.tar.gz
  • 解压安装包到主机,如: /opt/hertzbeat
- tar zxvf apache-hertzbeat-xxx-incubating-bin.tar.gz

2、快速安装 PostgreSQL + VictoriaMetrics 服务

  • docker 安装 PostgreSQL
- docker run -d --name postgresql -p 5432:5432 -v "$PWD/data:/var/lib/postgresql/data" -e POSTGRES_USER=root -e     POSTGRES_PASSWORD=123456 -e TZ=Asia/Shanghai postgres:15      
  • Docker 安装 VictoriaMetrics
- docker run -d -p 8428:8428 -v "$PWD/victoria-metrics-data:/victoria-metrics-data" --name victoria-metrics victoriametrics/victoria-metrics:v1.95.1

3、修改 HertzBeat 的配置文件

  • 切换元数据储存数据源
  • 修改位于 hertzbeat/config/application.yml 的配置文件,替换为 PostgreSQL 服务:
- spring:
    datasource:
      driver-class-name: org.postgresql.Driver
      username: root
      password: 123456
      url: jdbc:postgresql://postgresql:5432/hertzbeat
      hikari:
        max-lifetime: 120000
    jpa:
      show-sql: false
      database-platform: org.eclipse.persistence.platform.database.PostgreSQLPlatform
      database: postgresql
      properties:
        eclipselink:
          logging:
            level: SEVERE
  • 配置时序数据库服务
  • 同理,修改 hertzbeat/config/application.yml 的配置文件,开启 VictoriaMetrics 服务用于存储指标:
- warehouse:
    store:
      # 关闭默认JPA
      jpa:
        enabled: false
      # 启用 victoria-metrics
      victoria-metrics:
         enabled: true
         url: http://localhost:8428
         username: root
         password: root

4、启动

在上述解压好的安装目录 bin 下的启动脚本 startup.sh,Windows 环境下为 startup.bat

./startup.sh 

SpringBoot 应用配置

  • 开启Actuator监控
  • pom.XML添加依赖:
-  <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
   </dependency>
   <dependency>
       <groupId>io.micrometer</groupId>
       <artifactId>micrometer-registry-prometheus</artifactId>
   </dependency>

配置application.yml暴露端点:

-  management:
     endpoints:
       web:
         exposure:
           include: '*'
       enabled-by-default: true
     metrics:
       export:
         prometheus:
           enabled: true

注意:如果你的项目里还引入了认证相关的依赖,比如 springboot-security ,那么 SpringBoot Actuator 暴露出的接口可能会被拦截,此时需要你手动放开这些接口,以 springboot-security 为例,需要在 SecurityConfig 配置类中加入以下代码:

-  public class SecurityConfig extends WebSecurityConfigurerAdapter{
       @Override
       protected void configure(HttpSecurity httpSecurity) throws Exception{
           httpSecurity
                   // 配置要放开的接口
                   .antMatchers("/actuator/**").permitAll()
             android      .antMatchers("/metrics/**").permitAll()
                   .antMatchers("/trace").permitAll()
                   .antMatchers("/heapdump").permitAll()
                   // ...
       }
   }
  • 验证端点
  • 请求URL: http://<your-host>:<port>/actuator 验证已启用的端点,http://<your-host>:<port>/actuator/prometheus 应返回指标数据。

监控 SpringBoot 应用

新增 AUTO 监控

系统导航至「监控中心」→「新增监控」→「AUTO」→「Prometheus任务」

HertzBeat 监控 SpringBoot 使用案例(最新整理)

填写关键参数

HertzBeat 监控 SpringBoot 使用案例(最新整理)

目标Host:SpringBoot 应用服务器地址(不带协议头,例如: https://, http:// )

端口:应用服务端口(例如: 8080)

端点路径/actuator/prometheus

使用标签分类来管理任务,如添加env=test等业务相关标签

查看检测指标数据

点击进入新建监控,可以查看指标数据详情及指标历史图表等。

HertzBeat 监控 SpringBoot 使用案例(最新整理)

HertzBeat 监控 SpringBoot 使用案例(最新整理)

Grafana可视化集成 (可选)

Grafana 部署

启用 Grafana 可嵌入功能, 并开启匿名访问:

参考: https://grafana.com/blog/2023/10/10/how-to-embed-grafana-dashboards-into-web-applications/ 修改配置文件grafana.ini中的allow_embedding = true 修改配置文件grafana.ini中的[auth.anonymous]true 或者通过docker运行Grafana,使用以下命令:

-  docker run -d --name grafana -p 3000:3000 -v "$PWD/grafana:/var/lib/grafana" -e "GF_AUTH_PROXY_ENABLED=true" -e "GF_AUTH_ANONYMOUS_ENABLED=true" -e "GF_AUTH_ANONYMOUS_ORG_ROLE=Admin" -e "GF_USERS_VIEWERS_CAN_EDIT=true" -e "GF_SECURITY_ALLOW_EMBEDDING=true" grafana/grafana:10.4.18
-  [auth.proxy]
   enabled = true
   [auth.anonymous]
   enabled = true
   org_role = Admin
   [users]
   viewers_can_edit = true
   [security]
   allow_embedding = true
环境变量grafana.ini配置段配置键名功能说明
GF_AUTH_PROXY_ENABLED=true[auth.proxy]enabled启用反向代理认证模式,允许通过HTTP头传递用户身份
GF_AUTH_ANONYMOUS_ENABLED=true[auth.anonymous]enabled开启匿名访问,无需登录即可访问Grafana界面
GF_AUTH_ANONYMOUS_ORG_ROLE=Admin[auth.anonymous]org_role设置匿名用户的默认jfMoqBdL权限为管理员(Admin),赋予所有操作权限
GF_USERS_VIEWERS_CAN_EDIT=true[users]viewers_can_edit允许"Viewer"角色的用户编辑仪表盘(通常仅限"Editor"或"Admin"角色有此权限)
GF_SECURITY_ALLOW_EMBEDDING=trpythonue[security]allow_embedding允许通过iframe等方式将Grafana面板嵌入第三方页面

在HertzBeat中配置Grafana

在 HertzBeat 的配置文件application.yml中,配置 Grafana 数据源:

-  grafana:
     enabled: true
     url: http://127.0.0.1:3000
     username: admin
     password: admin

在 HertzBeat 监控中嵌入 Grafana 仪表盘

配置启用 Grafana 后,重启 HertzBeat 服务,在新增的 AUTO 监控中启用并上传 Grafana 模板。比如:Grafana 数据源选择hertzbeat-victoria-metrics,然后在仪表盘点击:「Share」→「Export」→「Save to file」下载模板并上传至 HertzBeat 监控中。

HertzBeat 监控 SpringBoot 使用案例(最新整理)

查看 Grafana 图表

进入新增 AUTO 监控页面,点击 Grafana 图标按钮,即可查看 Grafana 图表。

HertzBeat 监控 SpringBoot 使用案例(最新整理)

告警与通知联动

HertzBeat告警配置

系统页面 -> 告警 -> 阈值规则 -> 新增 -> 新增阈值

HertzBeat 监控 SpringBoot 使用案例(最新整理)

填写关键参数

HertzBeat 提供了 实时计算计划周期 两种类型的阈值规则设置,这里我们以 计划周期 阈值规则为例。

  • 阈值名称:阈值规则名称
  • 阈值规则:填写指标监测的规则(支持 PromQL
  • 执行周期:周期性执行阈值计算的时间间隔
  • 告警级别:触发阈值的告警级别,从低到高依次为: 警告-warning,严重-critical,紧急-emergency
  • 触发次数:设置触发阈值多少次之后才会发送告警
  • 告警内容:填写指标监测的告警内容

设置阈值规则

  • 比如监测 SpringBoot 应用程序的 CPU 占用,添加阈值规则:system_cpu_usage{job="Jolly_Vulture_43vT"} > 0.01,当然,可以设置的阈值规则有很多,用户可以根据自身需求设置更丰富的告警规则。

HertzBeat 监控 SpringBoot 使用案例(最新整理)

最终可以在告警中心看到已触发的告警。

HertzBeat 监控 SpringBoot 使用案例(最新整理)

告警通知

系统页面 -> 消息通知 -> 通知媒介 -> 新增接收对象

HertzBeat 监控 SpringBoot 使用案例(最新整理)

消息通知 -> 通知策略 -> 新增告警通知策略 -> 将刚才配置的接收人启用通知

HertzBeat 监控 SpringBoot 使用案例(最新整理)

OK 当阈值触发后我们就可以收到对应告警消息啦,如果没有配通知,也可以在告警中心查看告警信息。

小总结

通过简洁的配置,用户几分钟之内就可搭建完整的监控体系,这充分体现了 HertzBeat 的几点优势:

  • 无需部署 Exporterjs 和 Agent 即可监控 Spring Boot Actuator 端点,支持自定义指标采集与告警规则。
  • 轻量化:相比传统 Prometheus + AlertManager 组合,HertzBeat 简化了部署和维护流程。
  • 无缝集成 Grafana,HertzBeat 将采集的时序数据实时推送至 Grafana 构建可视化仪表盘。
  • 监控+告警+通知功能整合联动,全协议覆盖 + 实时/周期阈值检测 + 多通道通知(钉钉/飞书/Webhook等)。

监控springboot应用的实践就到这里,当然对hertzbeat来说这个功能只是冰山一角,如果您觉得hertzbeat这个开源项目不错的话,欢迎在 GitHub 上点亮小星星哦✨

github: https://github.com/apache/hertzbeat

到此这篇关于HertzBeat 监控 SpringBoot 使用案例(最新整理)的文章就介绍到这了,更多相关HertzBeat SpringBoot使用内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.devze.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号