Apache HertzBeat:AI 驱动的下一代开源实时可观测性系统
Apache HertzBeat 是一个 AI 驱动的开源实时可观测性系统,统一指标与日志采集、集中告警分发与智能管理分析。无需 Agent、支持高性能集群,兼容 Prometheus,提供强大的自定义监控与状态页构建能力,已收录于 CNCF Observability 全景图。
社区作者 · zZz
它解决什么问题
Apache HertzBeat 是 AI 驱动的下一代开源实时可观测性系统,提供统一的指标与日志采集、集中化告警分发、智能化管理与分析能力。其特点是无需 Agent、支持高性能集群,并提供强大的自定义监控和状态页搭建能力。
核心功能:
- 采集 + 分析 + 告警 + 通知一体化平台,在 HertzBeat AI 下提供新的 AI 交互与能力,并内置 MCP Server 能力。
- 统一指标平台:无 Agent、兼容 Prometheus,覆盖应用服务、程序、数据库、缓存、操作系统、大数据、中间件、Web 服务器、云原生、网络以及自定义监控等。
- 统一日志平台:通过 OTLP 协议无缝接入多种日志源上报。
- 统一告警平台:整合内部告警与各类外部告警源,统一告警处理与分析,支持灵活的实时与周期阈值规则、分组收敛、静默、抑制等。
- 统一消息分发:告警平台处理后的告警可通过 Email、Discord、Slack、Telegram、钉钉、企业微信、飞书、SMS、Webhook、ServerChan 等方式分发。
步骤 6 · 将 Http、Jmx、Ssh、Snmp、Jdbc、Prometheus 等协议配置化,只需在线配置模板 YML 文件即可采集任意指标,例如可仅通过在线配置快速适配 K8s 或
Docker 等新监控类型。
- 高性能:支持多采集器集群横向扩展、多隔离网络监控与云边协同。
- 提供强大的状态页构建能力,便于向用户传达服务的实时状态。
架构方面,官方仓库提供架构图(配图 2),品牌标识见配图 1,贡献者信息见配图 3,CNCF 全景图相关标识见配图 4、配图 5。
项目使用 Java(Spring、SpringBoot、Jpa、Maven、Assembly、Netty、Lombok、Sureness、Protobuf、HttpClient、Guava、SnakeYaml、JsonPath 等)与 TypeScript(Angular、NG-ZORRO、NG-ALAIN、NodeJs、Npm、Html、Less、Echarts、Rxjs、ZoneJs、MonacoEditor、SlickCarousel、Docusaurus 等)构建。
参考信息:官网 hertzbeat.apache.org;邮件列表 [email protected];Discord、微信群(添加好友 ahertzbeat)、微信公众号(ID:usthecom)、GitHub Discussion、Twitter、YouTube 等渠道可参与讨论。项目已收录于 CNCF Observability And Analysis - Observability Landscape。
适用对象:需要统一监控、日志与告警能力的运维/DevOps/SRE 团队、云原生与多隔离网络环境下的企业、希望以无 Agent 方式快速接入多种协议监控并自建状态页的开发者。
— 本文由 AI 根据公开来源辅助整理,命令、版本与许可证请在使用前到原始页面复核。
安装 / 开始使用
HertzBeat 支持通过源码、Docker 或安装包三种方式安装,CPU 支持 x86/arm64。
一、通过
Docker 快速安装步骤 1 · 一条命令启动:
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat- 访问 http://localhost:1157 开始使用,默认账号:admin/hertzbeat
步骤 3 · 部署采集器集群(可选):
docker run -d -e IDENTITY=custom-collector-name -e MANAGER_HOST=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector apache/hertzbeat-collector环境变量说明:-e IDENTITY=custom-collector-name 设置采集器唯一标识名称;-e MODE=public 设置运行模式(public 公共集群 或 private 私有云边协同);-e MANAGER_HOST=127.0.0.1 设置主 HertzBeat 服务端 IP;-e MANAGER_PORT=1158 设置主服务端端口,默认 1158。详细配置参考官方文档《Install HertzBeat via Docker》。
二、通过安装包安装
- 下载发布包 apache-hertzbeat-xx-bin.tar.gz。
- 配置 HertzBeat 配置文件 hertzbeat/config/application.yml(可选)。
- 运行命令 $ ./bin/startup.sh 或 bin/startup.bat。
- 访问 http://localhost:1157 开始使用,默认账号:admin/hertzbeat。
- 部署采集器集群(可选):
collector: dispatch: entrance: netty: enabled: true identity: ${IDENTITY:} mode: ${MODE:public} manager-host: ${MANAGER_HOST:127.0.0.1} manager-port: ${MANAGER_PORT:1158}
详细配置参考官方文档《Install HertzBeat via Package》。
- 在新机器上下载发布包 apache-hertzbeat-collector-xx-bin.tar.gz(JVM 采集器),或对应平台的原生采集器包,如 apache-hertzbeat-collector-native-xx-linux-amd64-bin.tar.gz 或 apache-hertzbeat-collector-native-xx-windows-amd64-bin.zip。
- 配置采集器配置文件 hertzbeat-collector/config/application.yml:唯一标识名称、运行模式(public 或 private)、hertzbeat manager-host、hertzbeat manager-port,示例:
- JDBC 驱动说明:若未在 ext-lib 中提供 JDBC 驱动,MySQL、MariaDB、OceanBase 可使用内置查询引擎,并可在原生采集器包上运行;TiDB 的 SQL 查询指标集遵循同样规则。若 ext-lib 中存在 mysql-connector-j,内置 server 采集器或 JVM 采集器在重启后会自动优先使用 JDBC 处理 MySQL、MariaDB、OceanBase;TiDB 的 SQL 查询指标集遵循同样规则,但其 HTTP 指标不变。Oracle 与 DB2 仍需要 JVM 采集器包,因为它们依赖外部 JDBC 驱动。
- 运行启动脚本:JVM 采集器包运行 $ ./bin/startup.sh 或 bin/startup.bat;Linux 或 macOS 原生采集器包运行 $ ./bin/startup.sh;Windows 原生采集器包运行 bin\startup.bat。
- 访问 http://localhost:1157,即可在仪表盘看到注册的新采集器。
三、通过源码启动
- 本地源码调试需要启动后端项目 hertzbeat-startup 和前端项目 web-app。
- 后端:需要 maven3+、java25、lombok,在 IDE 中添加 VM options:--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED,然后启动 hertzbeat-startup 服务。
步骤 3 · 前端:需要 nodejs 和 pnpm 环境,在 web-app 目录下执行
pnpm install,后端启动后执行
pnpm start。
详细步骤参考 CONTRIBUTING。
- 访问 http://localhost:4200 开始使用,默认账号:admin/hertzbeat。
四、通过 Docker-compose 安装全部组件 通过 docker-compose 部署脚本一次性安装 postgresql/mysql 数据库、victoria-metrics/iotdb/tdengine 数据库以及 hertzbeat。详细步骤参考官方文档《Install via Docker-Compose》。
五、通过 Kubernetes Helm charts 安装全部组件
通过
Helm chart 在 Kubernetes 集群中安装 HertzBeat 集群(hertzbeat+collector+postgresql+tsdb)。详细步骤参考 Artifact Hub。