Apache HertzBeat (incubating)是一个易用友好的开源实时监控告警系统,无需 Agent,高性能集群,兼容 Prometheus,提供强大的自定义监控和状态页构建能力。HertzBeat的强大自定义,多类型支持,高性能,易扩展,低耦合,快速搭建自有监控告警系统。

官网:https://hertzbeat.apache.org/

Gitee https://gitee.com/dromara/hertzbeat

Github https://github.com/dromara/hertzbeat

产品特点

  • 监控+告警+通知 为一体,支持对应用服务,应用程序,数据库,缓存,操作系统,大数据,中间件,Web 服务器,云原生,网络,自定义等监控阈值告警通知一步到位。

  • 易用友好,无需 Agent,全 WEB 页面操作,鼠标点一点就能监控告警,零上手学习成本。

  • Http, Jmx, Ssh, Snmp, Jdbc, Prometheus 等协议规范可配置化,只需在浏览器配置监控模版 YML 就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款 K8sDocker 等新的监控类型吗?

  • 兼容 Prometheus 的系统生态并且更多,只需页面操作就可以监控 Prometheus 所能监控的。

  • 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。

  • 自由的告警阈值规则,邮件 Discord Slack Telegram 钉钉 微信 飞书 短信 Webhook Server酱 等方式消息及时送达。

  • 提供强大的状态页构建能力,轻松向用户传达您产品服务的实时状态。

强大的监控模版

HertzBeat 自身并没有去创造一种采集数据协议让监控对端来适配它。而是充分使用了现有的生态,SNMP协议采集网络交换机路由器信息,JMX规范采集JAVA应用信息,JDBC规范采集数据集信息,SSH直连执行脚本获取回显信息,HTTP+(JsonPath | prometheus等)解析API接口信息,IPMI协议采集服务器信息等等。

HertzBeat 使用这些已有的标准协议或规范,将他们抽象规范可配置化,最后使其都可以通过编写YML格式监控模版的形式,来制定模版使用这些协议来采集任何想要的指标数据。

官方内置了大量的监控模版类型,方便用户直接在页面添加使用,一款监控类型对应一个YML监控模版

无需 Agent

对于使用过各种系统的用户来说,可能最麻烦头大的不过就是各种 agent 的安装部署调试升级了。
每台主机得装个 agent,为了监控不同应用中间件可能还得装几个对应的 agent,监控数量上来了轻轻松松上千个,写个批量脚本可能会减轻点负担。
agent 的版本是否与主应用兼容, agent 与主应用的通讯调试, agent 的同步升级等等等等,这些全是头大的点。

HertzBeat 的原理就是使用不同的协议去直连对端系统,采用 PULL 的形式去拉取采集数据,无需用户在对端主机上部署安装 Agent | Exporter 等。

  • 比如监控 linux操作系统, 在 HertzBeat 端输入IP端口账户密码或密钥即可。

  • 比如监控 mysql数据库, 在 HertzBeat 端输入IP端口账户密码即可。
    密码等敏感信息全链路加密

高性能集群

当监控数量指数级上升,采集性能下降或者环境不稳定容易造成采集器单点故障时,这时我们的采集器集群就出场了。

  • HertzBeat 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。

  • 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。

  • 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。hertzbeat

云边协同

两地三中心,多云环境,多隔离网络,这些场景名词可能大家略有耳闻。当需要用一套监控系统统一监控不同隔离网络的IT资源时,这时我们的云边协同就来啦。

  • HertzBeat 支持部署边缘采集器集群,与主 HertzBeat 服务云边协同提升采集能力。

在多个网络不相通的隔离网络中,在以往方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。
HertzBeat 提供的云边协同能力,可以在多个隔离网络部署边缘采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主服务统一调度管理展示。

易用友好

  • 监控+告警+通知 All in one, 无需单独部署多个组件服务。

  • 全UI界面操作,不管是新增监控,修改监控模版,还是告警阈值通知,都可在WEB界面操作完成,无需要修改文件或脚本或重启。

  • 无需 Agent, 监控对端我们只需在WEB界面填写所需IP端口账户密码等参数即可。

  • 自定义友好,只需一个监控模版YML,自动生成对应监控类型的监控管理页面,数据图表页面,阈值配置等。

  • 阈值告警通知友好,基于表达式阈值配置,多种告警通知渠道,支持告警静默,时段标签告警级别过滤等。

完全开源

  • Apache 基金会孵化器下开源项目,Gitee GVP,使用Apache2协议,由自由开放的开源社区主导维护的开源协作产品。

  • 无监控数量License,监控类型等伪开源限制。

  • 基于Java+SpringBoot+TypeScript+Angular主流技术栈构建,方便的二次开发。

  • 开源不等同于免费,基于HertzBeat二次开发需保留页面脚注,版权等。

安装配置

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

方式一:Docker 方式快速安装

  1. docker 环境仅需一条命令即可开始

docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat apache/hertzbeat
  1. 浏览器访问 http://localhost:1157 即可开始,默认账号密码 admin/hertzbeat

  2. 部署采集器集群(可选)

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。

方式二:通过安装包安装

  1. 下载您系统环境对应的安装包 hertzbeat-xx.tar.gz GITHUB Release

  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 到规划的另一台部署主机上 GITHUB Release

  • 配置采集器的配置文件 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 查看概览页面即可看到注册上来的新采集器

登录

浏览器访问 http://localhost:1157 默认账户密码 admin/hertzbeat

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

hertzbeat

概览页面

  • 全局概览页面,分类展示了当前监控大类别数量分布,用户可直观查看当前的监控类型与数量并点击跳转至对应监控类型进行维护管理。

  • 展示当前注册的采集器集群状态,包括采集器的上线状态,监控任务,启动时间,IP地址,名称等。

  • 下发展示了最近告警信息列表,告警级别分布情况,告警处理率情况。

hertzbeat

监控中心

  • 监控入口,支持对应用服务,数据库,操作系统,中间件,网络,自定义等监控的管理。

  • 以列表的形式展示当前已添加的监控,支持对监控的新增,修改,删除,取消监控,导入导出,批量管理等。

  • 支持标签分组,查询过滤,查看监控详情入口等。

hertzbeat

文章作者: 阳光•雨
本文链接:
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阳光•雨
Linux
喜欢就支持一下吧