1. 概述

随着系统规模的扩大,组件数量也随之增加,这意味着系统中潜在的故障点也更多。因此,建立一套系统的监控机制变得尤为关键。一个可行的方案是使用像 Apache HertzBeat 这样的实时监控系统

在本教程中,我们将了解 Apache HertzBeat 的基本功能,并通过实际演示展示如何监控一个 PostgreSQL 数据库实例。

2. Apache HertzBeat 简介

Apache HertzBeat 是一个开源的一体化监控平台,集成了监控所需的多个核心模块,包括数据采集、数据存储、可视化、告警通知和 Web 界面。与常见的模块化监控方案(如 Grafana + Prometheus)相比,HertzBeat 更倾向于“开箱即用”的设计理念。

HertzBeat 采用 无代理(agentless)架构,直接连接目标系统获取监控数据,无需在每个节点上部署代理程序。这种设计减少了运维中管理多个 agent 的负担。

此外,HertzBeat 针对不同目标系统定义了专门的监控器(Monitor),通过这些监控器直接向目标系统发起查询,获取指标数据,避免了部署额外 Exporter 的需求。

3. 快速上手

Apache HertzBeat 支持多种部署方式,包括使用 Helm 安装、Docker 容器运行等。

3.1 安装

我们以 Docker 容器方式快速部署:

$ docker run -d -p 1157:1157 -p 1158:1158 \
    --restart=always \
    --name hertzbeat apache/hertzbeat

✅ 上述命令启动了 HertzBeat 容器,并映射了两个端口:1157(Web UI)和 1158(API)。默认用户名为 admin,密码为 hertzbeat

3.2 基本导航

启动后,访问 http://localhost:1157 进入 Web 界面:

Homepage

首页显示了当前所有监控任务和告警信息。左侧导航栏列出了 HertzBeat 的主要功能模块。

3.3 监控器(Monitor)

监控器是 HertzBeat 中最基本的单元,用于定义从目标系统拉取监控数据的策略。每个监控器都针对特定类型的服务设计,比如 PostgreSQL、JMX、MySQL 等。

例如,PostgreSQL 监控器会连接数据库并执行 SQL 查询,收集缓存命中率、事务统计等指标。而 JMX 监控器则可以直接连接 JVM 应用,收集类加载、线程数、堆内存等信息。

3.4 阈值(Threshold)与告警(Alarm)

阈值是预设的规则,用于判断采集到的指标是否异常。一旦触发阈值,就会触发告警通知。

HertzBeat 支持两种类型的阈值:

  • 实时阈值(Real-time Threshold):每次指标更新时立即评估,适用于对响应速度要求高的场景。
  • 定时阈值(Scheduled Threshold):周期性评估,适用于计算成本较高的聚合指标。

4. 配置 PostgreSQL 监控与告警规则

4.1 创建 PostgreSQL 监控任务

步骤如下:

  1. 进入 Monitoring Center
  2. 点击左上角 New Monitor
  3. 在搜索框中选择 PostgreSQL DB

填写数据库连接信息和采集策略:

创建监控任务表单

点击 Detect 测试连接,成功后点击 OK 保存。

4.2 查看监控详情

返回 Monitoring Center 页面,可以看到新增的 postgres_monitoring 任务。点击任务名称进入详情页:

监控详情页面

页面分为两个视图:

  • 实时数据视图:显示当前采集到的最新值
  • 历史图表视图:展示过去一段时间内的指标变化趋势

指标按类别分组展示,如缓存命中率、缓冲区信息等。

4.3 创建 PostgreSQL 阈值规则

接下来,我们为 PostgreSQL 监控任务创建一个阈值规则,用于检测数据库是否不可用。

步骤如下:

  1. 进入左侧菜单 Threshold
  2. 点击 New,选择 Real-time Monitor
  3. 设置监控指标为 PostgreSQL DB / Monitor Availability

配置如下:

  • 阈值条件:当可用性为 DownUnreachable 时触发告警
  • 告警等级:Critical
  • 触发次数:连续3次异常后触发

实时阈值设置

4.4 触发告警

我们手动停止 PostgreSQL 服务,模拟数据库不可用场景。稍等片刻后,进入 Alarm Center 查看告警信息:

告警页面

可以看到告警已触发,显示了触发告警的阈值和具体异常指标数据。

5. 总结

在本教程中,我们了解了 Apache HertzBeat 的核心功能和架构设计,重点介绍了其无代理架构和一体化监控能力。

我们还演示了如何创建 PostgreSQL 监控任务、配置阈值规则并验证告警机制的有效性。通过这些步骤,你可以快速构建一个实时监控系统,帮助你及时发现并响应系统异常。

如果你正在寻找一个开箱即用、无需复杂集成的监控平台,Apache HertzBeat 是一个非常值得尝试的选择。


原始标题:Real-Time Monitoring Using Apache HertzBeat