Apache HertzBeat (incubating) 是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。
官网
https://hertzbeat.apache.org/zh-cn/
特点
- 集 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web服务器,云原生,网络,自定义等监控阈值告警通知一步到位。
- 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。
- 将
Http, Jmx, Ssh, Snmp, Jdbc, Prometheus
等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 K8s 或 Docker 等新的监控类型吗? - 兼容 Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。
- 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
- 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook Server酱 等方式消息及时送达。
- 提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。
HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。
强大的监控模版
HertzBeat 自身并没有去创造一种采集数据协议让监控对端来适配它。
而是充分使用了现有的生态,SNMP协议采集网络交换机路由器信息,JMX规范采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析API接口信息,IPMI协议采集服务器信息等等。
HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标数据。
内置监控类型
官方内置了大量的监控模版类型,方便用户直接在页面添加使用,一款监控类型对应一个YML监控模版
- 应用服务:Website, Port Telnet, Http Api, Ping Connect, Jvm, SiteMap, Ssl Certificate, SpringBoot2, FTP Server, SpringBoot3, Udp Port, Dns, Pop3, Ntp, Api Code, Smtp, Nginx
- 数据库:Mysql, PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, DM, OpenGauss, ClickHouse, IoTDB, Redis Cluster, Redis SentinelDoris BE, Doris FE, Memcached, NebulaGraph
- 操作系统:Linux, Ubuntu, CentOS, Windows, EulerOS, Fedora CoreOS, OpenSUSE, Rocky Linux, Red Hat, FreeBSD, AlmaLinux, Debian Linux
- 中间件:Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ, Spring Gateway, EMQX MQTT, AirFlow, Hive, Spark, Hadoop
- 云原生:Kubernetes, Docker
- 网络设备:CiscoSwitch, HpeSwitch, HuaweiSwitch, TpLinkSwitch, H3cSwitch
- 和更多自定义监控模版。
通知支持 Discord
Slack
Telegram
邮件
钉钉
微信
飞书
短信
Webhook
Server酱
。
强大自定义功能
用户都可以方便的通过修改监控模版来新增修改删除监控指标。
模版里面包含各个协议的使用配置,环境变量,指标转换,指标计算,单位转换,指标采集等一系列功能,帮助用户能采集到自己想要的监控指标。
无需 Agent
对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试升级了。
每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,监控数量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。
agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。
HertzBeat 的原理就是使用不同的协议去直连对端系统,采用 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent
| Exporter
等。
- 比如监控 linux操作系统, 在 HertzBeat 端输入IP端口账户密码或密钥即可。
- 比如监控 mysql数据库, 在 HertzBeat 端输入IP端口账户密码即可。 密码等敏感信息全链路加密
高性能集群
当监控数量指数级上升,采集性能下降或者环境不稳定容易造成采集器单点故障时,这时我们的采集器集群就出场了。
- HertzBeat 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。
- 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。
- 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。
云边协同
两地三中心,多云环境,多隔离网络,这些场景名词可能大家略有耳闻。
当需要用一套监控系统统一监控不同隔离网络的IT资源时,这时我们的云边协同就来啦。
在多个网络不相通的隔离网络中,在以往方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。
HertzBeat 提供的云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主服务统一调度管理展示。
易用友好
- 集 监控+告警+通知 All in one, 无需单独部署多个组件服务。
- 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。
- 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。
- 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。
- 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。
完全开源
- Apache 基金会孵化器下开源项目,Gitee GVP,使用Apache2协议,由自由开放的开源社区主导维护的开源协作产品。
- 无监控数量License,监控类型等伪开源限制。
- 基于
Java+SpringBoot+TypeScript+Angular
主流技术栈构建,方便的二次开发。 - 基于 HertzBeat 二次开发需保留版权。
使用体验总结
版本:v1.6.2
优点
- 极简易用:部署非常简单,用起来非常方便,需要配置的地方并不多,就能直接监控
- 界面简单:界面非常直观,没有非常多非常深的菜单,甚至用户什么的都是在配置文件中配置,需要的东西基本都在一级菜单中,用起来非常方便
- 模板巨多:基本上我工作中需要监控的服务、端口、证书、系统都有现成的监控模板
- 自定义状态页:快速构建强大的状态页面,轻松向用户传达产品服务的实时状态。
- api接口规范:api接口非常方便规范,能够轻松通过api接口获取监控数据,对于需要集成的小伙伴非常友好。
- 提示信息非常到位:在配置阈值规则或者消息通知模板的时候,会把各种可利用的变量都展示的一清二楚,配置起来毫无压力。
- 丰富详细的文档:HertzBeat拥有非常丰富的中文文档,无论是配置还是介绍都非常的详细丰富。
- 丰富的通知媒介:想到想不到的基本上都有。
- 完全开源
不足
- 分类粗放:从其他角度来说,这应该算是一个优点,为什么这里要放在不足中呢,因为当监控多了起来,不分类找起来会非常麻烦,虽然有搜索,但有时候会碰到记不太清楚的情况,就没法搜索了。无论是监控中心还是阈值规则,都没有做分类过滤,这是比较遗憾的点。
- 自定义看板:自定义看板一旦创建,就只能删除,无法修改,也无法将多个看板项放在同一页,这一点不太友好。
- 告警通知:告警通知的配置比较简单,只能一直通知,有时候只需要通知几次,之后就不要通知了,直到恢复了,然后通知已恢复,或者新建收敛策略,但是,这就又麻烦了一点,其实再配置通知的时候就可以直接配置的。
- 恢复消息无法自定义:这一点还是比较遗憾的,就比如,有时候恢复的时候还需要知道当前的状态值,那无法自定义就没办法获取,而且只是把异常通知的消息换成了恢复的消息,这个会产生误导。
- 状态页过于简单:自定义状态页面,这个非常好,但是也只是显示存活状态,如果可以指定监控项就太完美了。
- 容器监控:容器监控不太好,虽然在文档中看到有配置用户名密码之类的认证选项,但是,在配置监控的时候并不能配置这些,所以略微有点不友好。
- 历史记录查看: 历史记录只能查看 1小时、6小时、1天、1周、1月、3月,无法指定特定时间段,也无法统一指定时间,只能每个图表单独选择时间,不太友好。
- 标签问题:如果想分类告警,就只能依靠标签了,但是标签就需要单独再配置,就不太方便。
- 无法抓取日志:不是需要抓取大量的日志,只是需要抓一些特定的日志,然后根据日志内容创建告警,这点无法实现还是挺遗憾的。
- 页面的通知信息不太灵敏,测试发现不太能及时通知。
总的来说,HertzBeat还是非常推荐使用的。
标签:自定义,--,模版,采集器,HertzBeat,易用,监控,告警 From: https://www.cnblogs.com/guangdelw/p/18635995