介绍

今天向大家推荐一款出色的国产开源实时监控告警系统:HertzBeat(赫兹跳动)。该系统拥有强大的自定义监控能力、高性能集群,并与Prometheus兼容,无需Agent,满足多种监控需求。

图片

系统特点

  • 一体化监控解决方案:集成监控、告警与通知功能,支持对应用服务、数据库、操作系统等多种类型的监控阈值告警通知。
  • 用户友好性:完全无须安装Agent,通过WEB页面操作,简单易用,零学习成本。
  • 灵活的协议配置:支持HTTP、JMX、SSH、SNMP、JDBC、Prometheus等多种协议的配置,只需在浏览器定义监控模板的YML文件,便可轻松适配K8s或Docker等新监控类型。
  • 高性能支持:可实现多采集器集群横向扩展,支持多隔离网络监控与云边协同。
  • 自由告警规则:支持邮件、Discord、Slack、Telegram等多种通知方式,确保信息及时送达。

HertzBeat以其强大的自定义、丰富的类型支持、高效的性能和灵活的扩展性,助力开发者和团队快速搭建自有监控系统。此外,我们还提供SAAS版本的监控云服务,中小型团队和个人无需部署监控系统,只需登录即可免费使用。

强大的监控模板

HertzBeat的核心特点在于其自定义监控能力,无需Agent。我们接下来将介绍HertzBeat独特的监控模板设计,它是实现高级特性的基础。

HertzBeat并未创造新的数据采集协议,而是充分利用现有的生态。通过SNMP协议获取网络设备信息,JMX规范采集Java应用数据,JDBC规范获取数据库信息,SSH执行脚本获取输出,HTTP(结合JsonPath或Prometheus)解析API接口,IPMI协议获取服务器信息等。HertzBeat通过抽象规范化这些标准协议,使得用户能够通过编写YML格式的监控模板,自由定义所需的指标数据采集。

图片

您是否能够想象,用户只需在UI页面编写监控模板,点击保存后,便可立刻适配K8s或Docker等新的监控类型?

图片

内置监控类型

系统内置了大量监控模板,用户可以在页面轻松添加使用,每种监控类型均对应一个YML监控模板。

图片

强大的自定义功能

通过前面提到的监控模板,用户可以轻松地增加、修改或删除监控指标。不论是官方内置的还是用户自定义的监控模板,用户均可根据需求进行灵活配置。

图片

无需Agent

对于曾使用过多种监控系统的用户而言,安装和调试Agent常常令人头疼。为了监控不同的应用,往往需要在每台主机上安装多个Agent,这使得管理变得复杂。

HertzBeat的原理在于直接连接被监控的系统,通过PULL方式拉取数据,无需在目标主机上安装Agent或Exporter。例如,若要监控Linux操作系统,只需在HertzBeat端输入IP、端口、账户和密码即可实现监控;监控MySQL数据库时,只需提供相应的连接信息,整个过程安全且高效。

高性能集群

当监控数量激增时,采集性能可能会下降,甚至导致单点故障。这时,采集器集群的支持便显得尤为重要。

HertzBeat支持部署采集器集群,通过横向扩展来显著提高可监控数量和采集性能。监控任务会在集群内自动调度,若某个采集器出现故障,系统会无缝迁移采集任务到其他节点。单机模式与集群模式的切换也极为简便,无需额外组件的部署。

图片

云边协同

在多地三中心、多云环境和多隔离网络的场景下,HertzBeat提供了云边协同的能力。用户无需在每个隔离网络都部署监控系统,HertzBeat通过在多个隔离网络中部署边缘采集器,收集监控数据并上报给主服务,实现统一调度和管理。

图片

易用友好

  • 集成监控、告警与通知功能,无需单独部署多个组件服务。
  • 全面支持UI界面操作,任何监控的新增、修改或告警阈值配置均可通过WEB界面完成。
  • 无需Agent,只需在WEB界面输入IP、端口、账户及密码等参数即可。
  • 只需一个监控模板YML,自动生成对应的监控管理页面及数据图表页面。

完全开源

HertzBeat是Dromara开源社区的顶级项目,遵循Apache2协议,由自由开放的社区主导维护。无监控数量和类型的限制,便于二次开发。

HertzBeat已被CNCF云原生全景图收录

图片

HertzBeat的强大自定义、多类型支持、高性能、易扩展和低耦合的特性,旨在帮助开发者和团队快速搭建自己的监控系统。

安装与运行

  1. 在Docker环境下运行一条命令即可:docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/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 tancloud/hertzbeat-collector
  • -e IDENTITY=custom-collector-name:设置采集器的唯一标识符名称,确保多个采集器名称不重名。
  • -e MODE=public:配置运行模式(公共或私有)。
  • -e MANAGER_HOST=127.0.0.1:设置连接主HertzBeat服务的对外IP。
  • -e MANAGER_PORT=1158:设置连接主HertzBeat服务的对外端口,默认是1158。

效果展示

登录页面

HertzBeat的用户管理由sureness.yml配置文件维护,用户可通过该文件新增或修改用户信息,角色权限等。默认账户密码为admin/hertzbeat。

图片

概览页面

该页面展现全球监控类别数量分布,用户可直观查看当前监控类型及数量,并可以跳转至对应监控类型进行管理。

图片

监控中心

支持对应用服务、数据库、操作系统等的监控管理,用户能够方便地进行监控的新增、修改、删除等操作。

图片

新增或修改监控

用户可设置监控实例的IP、端口等参数,配置采集周期以及调度方式。

图片

监控详情

展示监控的基本参数和实时数据报告,便于用户根据实时值参考配置告警阈值。

图片

告警中心

直观展示当前告警情况,支持直接进行告警处理与批量操作。

图片

阈值规则

用户可以设置监控的可用性状态阈值规则,以便在特定指标值超出预期时发出告警。

图片

消息通知

通过不同的媒体渠道及时通知告警消息,确保接收者能够快速响应。

图片

相关链接