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 界面:
首页显示了当前所有监控任务和告警信息。左侧导航栏列出了 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 监控任务
步骤如下:
- 进入 Monitoring Center
- 点击左上角 New Monitor
- 在搜索框中选择 PostgreSQL DB
填写数据库连接信息和采集策略:
点击 Detect 测试连接,成功后点击 OK 保存。
4.2 查看监控详情
返回 Monitoring Center 页面,可以看到新增的 postgres_monitoring
任务。点击任务名称进入详情页:
页面分为两个视图:
- 实时数据视图:显示当前采集到的最新值
- 历史图表视图:展示过去一段时间内的指标变化趋势
指标按类别分组展示,如缓存命中率、缓冲区信息等。
4.3 创建 PostgreSQL 阈值规则
接下来,我们为 PostgreSQL 监控任务创建一个阈值规则,用于检测数据库是否不可用。
步骤如下:
- 进入左侧菜单 Threshold
- 点击 New,选择 Real-time Monitor
- 设置监控指标为 PostgreSQL DB / Monitor Availability
配置如下:
- 阈值条件:当可用性为 Down 或 Unreachable 时触发告警
- 告警等级:Critical
- 触发次数:连续3次异常后触发
4.4 触发告警
我们手动停止 PostgreSQL 服务,模拟数据库不可用场景。稍等片刻后,进入 Alarm Center 查看告警信息:
可以看到告警已触发,显示了触发告警的阈值和具体异常指标数据。
5. 总结
在本教程中,我们了解了 Apache HertzBeat 的核心功能和架构设计,重点介绍了其无代理架构和一体化监控能力。
我们还演示了如何创建 PostgreSQL 监控任务、配置阈值规则并验证告警机制的有效性。通过这些步骤,你可以快速构建一个实时监控系统,帮助你及时发现并响应系统异常。
如果你正在寻找一个开箱即用、无需复杂集成的监控平台,Apache HertzBeat 是一个非常值得尝试的选择。