探索HertzBeat:一款强大且易用的国产开源实时监控告警系统,让您的监控体验前所未有的舒适与便捷
介绍
今天向大家推荐一款出色的国产开源实时监控告警系统: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的强大自定义、多类型支持、高性能、易扩展和低耦合的特性,旨在帮助开发者和团队快速搭建自己的监控系统。
安装与运行
- 在Docker环境下运行一条命令即可:
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat
。 - 通过浏览器访问
http://localhost:1157
,默认账户密码为admin/hertzbeat
。 - 部署采集器集群。
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、端口等参数,配置采集周期以及调度方式。
监控详情
展示监控的基本参数和实时数据报告,便于用户根据实时值参考配置告警阈值。
告警中心
直观展示当前告警情况,支持直接进行告警处理与批量操作。
阈值规则
用户可以设置监控的可用性状态阈值规则,以便在特定指标值超出预期时发出告警。
消息通知
通过不同的媒体渠道及时通知告警消息,确保接收者能够快速响应。