实时监控系统,无需 Agent,性能集群,兼容 Prometheus,自定义监控和状态页构建能力。

Discord Reddit Twitter OpenSSF Best Practices codecov Docker Pulls Artifact Hub YouTube Channel Subscribers Contribute with Gitpod

官网: hertzbeat.apache.org
邮件: 发送至 dev-subscribe@hertzbeat.apache.org 订阅邮件列表

🎡 介绍

Apache HertzBeat (incubating)是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。

特点

  • 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web 服务器,云原生,网络,自定义等监控阈值告警通知一步到位。
  • 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
  • Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等协议规范可配置化,只需在浏览器配置监控模板 YML 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 K8sDocker 等新的监控类型吗?
  • 兼容 Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。
  • 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
  • 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook Server酱 等方式消息及时送达。
  • 提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。

HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助用户快速搭建自有监控系统。


hertzbeat

hertzbeat

hertzbeat


🥐 模块

hertzBeat

⛄ 已支持

我们将监控采集类型(mysql,jvm,k8s)都定义为 yml 监控模板,用户可以导入这些模板来支持对应类型的监控!
欢迎大家一起贡献你使用过程中自定义的通用监控类型监控模板。

🐕 快速开始

  • 如果您是想将 HertzBeat 部署到内网环境搭建监控系统,请参考下面的部署文档进行操作。

🍞 HertzBeat 安装

HertzBeat 支持通过源码安装启动,Docker 容器运行和安装包方式安装部署,CPU 架构支持 x86/arm64。

方式一:Docker 方式快速安装
  1. docker 环境仅需一条命令即可开始

    docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat
    
  2. 浏览器访问 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 or private), 公共集群模式或私有云边模式。
    • -e MANAGER_HOST=127.0.0.1 : 配置连接主 HertaBeat 服务的对外 IP。
    • -e MANAGER_PORT=1158 : 配置连接主 HertzBeat 服务的对外端口,默认1158。

更多配置详细步骤参考 通过 Docker 方式安装 HertzBeat

方式二:通过安装包安装
  1. 下载您系统环境对应的安装包 hertzbeat-xx.tar.gz Download
  2. 配置 HertzBeat 的配置文件 hertzbeat/config/application.yml (可选)
  3. 部署启动 $ ./bin/startup.sh bin/startup.bat
  4. 浏览器访问 http://localhost:1157 即可开始,默认账号密码 admin/hertzbeat
  5. 部署采集器集群(可选)
    • 下载采集器安装包 hertzbeat-collector-xx.tar.gz 到规划的另一台部署主机上 Download
    • 配置采集器的配置文件 hertzbeat-collector/config/application.yml 里面的连接主 HertzBeat 服务的对外 IP,端口,当前采集器名称(需保证唯一性)等参数 identity mode (public or private) manager-host manager-port
      collector:
        dispatch:
          entrance:
            netty:
              enabled: true
              identity: ${IDENTITY:}
              mode: ${MODE:public}
              manager-host: ${MANAGER_HOST:127.0.0.1}
              manager-port: ${MANAGER_PORT:1158}
      
    • 启动 $ ./bin/startup.sh bin/startup.bat
    • 浏览器访问主 HertzBeat 服务 http://localhost:1157 查看概览页面即可看到注册上来的新采集器

更多配置详细步骤参考 通过安装包安装HertzBeat

方式三:本地代码启动
  1. 此为前后端分离项目,本地代码调试需要分别启动后端工程 manager 和前端工程 web-app
  2. 后端:需要 maven3+, java17lombok 环境,修改 YML 配置信息,添加JVM参数--add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED后启动 manager 服务即可。
  3. 前端:需要 nodejs npm angular-cli环境,待本地后端启动后,在 web-app 目录下启动 ng serve --open
  4. 浏览器访问 http://localhost:4200 即可开始,默认账号密码 admin/hertzbeat

详细步骤参考 参与贡献之本地代码启动

方式四:Docker-Compose 统一安装 hertzbeat+postgresql+tsdb

通过 Docker-Compose 部署脚本 一次性把 postgresql/mysql 数据库, victoria-metrics/iotdb/tdengine 时序数据库和 hertzbeat 安装部署。

详细步骤参考 通过 Docker-Compose 安装 HertzBeat

方式五:Kubernetes Helm Charts 部署 hertzbeat+collector+postgresql+tsdb

通过 Helm Chart 一次性将 HertzBeat 集群组件部署到 Kubernetes 集群中。

详细步骤参考 Artifact Hub

HAVE FUN

✨ Contributors

Thanks these wonderful people, welcome to join us:
贡献者指南

💬 社区交流

Channel

订阅邮件列表 : 发送邮件至 dev-subscribe@hertzbeat.apache.org 来订阅邮件列表.

Chat On Discord

微信交流群 : 加 ahertzbeat 好友邀请进群.

微信公众号 : 搜索 ID usthecom.

QQ交流群 : 群号 1035688434

Github Discussion

Reddit Community

Follow Us Twitter

Subscribe YouTube

Open-Source Project Build From Open-Source

HertzBeat is built on so many great open source projects, thanks to them!

  • 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 ...

Landscape

🛡️ License

Apache License, Version 2.0