重磅更新,HertzBeat 集群版发布,易用友好的开源实时监控系统!
什么是 HertzBeat?
HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。
特点
- 集 监控+告警+通知 为一体,支持对应用服务,数据库,操作系统,中间件,云原生,网络等监控阈值告警通知一步到位。
- 易用友好,无需
Agent
,全WEB
页面操作,鼠标点一点就能监控告警,零上手学习成本。 - 将
Http,Jmx,Ssh,Snmp,Jdbc
等协议规范可配置化,只需在浏览器配置监控模版YML
就能使用这些协议去自定义采集想要的指标。您相信只需配置下就能立刻适配一款K8s
或Docker
等新的监控类型吗? - 高性能,支持多采集器集群横向扩展,支持多隔离网络监控,云边协同。
- 自由的告警阈值规则,
邮件
Discord
Slack
Telegram
钉钉
微信
飞书
短信
Webhook
等方式消息及时送达。
HertzBeat
的强大自定义,多类型支持,高性能,易扩展,低耦合,希望能帮助开发者和团队快速搭建自有监控系统。
当然我们也提供了对应的 SAAS版本监控云服务,中小团队和个人无需再为监控自有资源而去部署一套监控系统,登录即可免费开始。
Github: https://github.com/dromara/hertzbeat
Gitee: https://gitee.com/dromara/hertzbeat
集群版来啦
我们之前的hertzbeat一直是单机版本,组件代码模块化但不支持采集器独立部署,所支持的监控数量上限受到了单节点的天然限制,且无法应对多个隔离网络的资源的统一纳管。
经过一个多月的迭代,我们重写了采集任务调度,采集器独立部署,设计单机版和集群版用同一套代码方便后续的维护升级,单机集群两种模式可相互切换无感知。最终很高兴,集群版如期与大家见面了。
集群版不仅仅给我们带来了更强大的监控性能,更有云边协同等功能让人充满想象。
高性能集群
- 支持部署采集器集群,多采集器集群横向扩展,指数级提高可监控数量与采集性能。
- 监控任务在采集器集群中自调度,单采集器挂掉无感知故障迁移采集任务,新加入采集器节点自动调度分担采集压力。
- 单机模式与集群模式相互切换部署非常方便,无需额外组件部署。
云边协同
支持部署边缘采集器集群,与主 HertzBeat 服务云边协同提升采集能力。
在多个网络不相通的隔离网络中,在以往的方案中我们需要在每个网络都部署一套监控系统,这导致数据不互通,管理部署维护都不方便。
HertzBeat 提供云边协同能力,可以在多个隔离网络部署边缘采集器,添加监控时指定采集器,采集器在隔离网络内部进行监控任务采集,采集数据上报,由主 HertzBeat 服务统一调度管理展示。
这多用于多个隔离数据中心或不同厂商云资源和云下资源的统一监控场景。
为什么要开源集群版?
往往一些做需要商业化的开源产品的策略会是单机版作为玩具给小玩家们的入门使用,然后集群版作为闭源产品给有需求的氪金玩家付费使用。这样的模式是可以说非常不错的且值得肯定的,即保证开源也得到了收益,也适用于很多开源项目的发展策略,可能会在商业路径上走得更通顺点。
网络上有些人会对这样的分单机和集群版的开源项目嗤之以鼻,觉得它们是伪开源,开源是噱头,他们觉得开源应该什么都开源免费出来,开源团队什么都应该无私奉献出来。。。。很无语这类人,有投入才有回报,当你免费使用着开源软件并得到价值的时候,是否应该想一想你付出给开源软件了什么而不是一味的索取。
那回到正题,我们又为什么要开源集群版?仅因为热爱开源?如果说我们还在少年可能这话你信,但一个快奔30还有家庭责任的人说出这话你信吗,我自己都不信😂。
首先我们来看看开源能带来什么,或者为什么要做开源。最开始全职开源的想法很简单,做自己喜欢的开源产品(已实现),程序员的梦想能部署在成千上万的服务器上(看下载量已实现),然后基于此开源产品挣钱(暂未哭)。
- 用户流量。开源项目免费提供给用户和开发者,吸引用户使用,宣传等方面都有优势。
- 用户信任。开源的产品天生容易获取用户的信任和使用耐心,或者说降低用户的信任门槛。
- 社区协作。开源的产品可以吸引到顶级贡献者一起贡献,接收用户的反馈issue,pr贡献等,在社区的驱动下使开源项目越来越好,正向反馈后也会有更多人参与和使用。社区协作我觉得这是开源的意义,而且这样不仅仅只是程序员之间的贡献代码协作,用户都是协作对象(比如我们这个项目有大量的运维朋友贡献代码和文档),如果是仅仅代码开源而不社区协作,那还不如放个安装包给别人免费使用下载就好。
- 产品生态。这对一些需要生态的产品是需要的,比如hertzbeat,需要支持对接各种类型协议的监控类型,大量的监控模版。一个好的开源项目生态才能吸引到其它贡献者贡献和分享,在生态中互通有无,最终大家在生态中都受益。这在闭源程序中是很难做到的。
上面几点,重在社区协作和产品生态,这也是开源集群版的原因,只有卷开源产品卷自己到更强的产品力,比如集群这一技术特性天生会吸引到开发者(而且集群本身就是我们社区协作的产物),会吸引到更多的用户和贡献者使用反馈大家一起迭代,社区驱动进而正向促进开源项目和满足用户功能体验。
而对于开源商业化,开源商业化的前提是得有个真正好的,受欢迎,被广泛使用的开源产品,然后在此基础上做商业化挣钱。
对了这里再说下开源不等同于免费,如果基于HertzBeat二次开发修改了logo,名称,版权等,请先找我们授权否则会有法律风险,我们有权利追诉破坏开源并因此获利的团队个人的全部违法所得。
免费使用不是白嫖,破坏开源的这种才是,目前发现大量白嫖怪,小心点哈你们。我每年正月初七都会祝你们用这些钱吃的安心,住的放心,玩的开心哈,做个人吧。(仅个人言论不代表社区)
尝试部署集群版
docker
环境仅需一条命令即可开始
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat tancloud/hertzbeat
或者使用 quay.io (若 dockerhub 网络链接超时)
docker run -d -p 1157:1157 -p 1158:1158 --name hertzbeat quay.io/tancloud/hertzbeat
-
浏览器访问
http://localhost:1157
即可开始,默认账号密码admin/hertzbeat
-
部署采集器集群
docker run -d -e IDENTITY=custom-collector-name -e MANAGER_IP=127.0.0.1 -e MANAGER_PORT=1158 --name hertzbeat-collector tancloud/hertzbeat-collector
-e IDENTITY=custom-collector-name
: 配置此采集器的唯一性标识符名称,多个采集器名称不能相同,建议自定义英文名称。-e MANAGER_IP=127.0.0.1
: 配置连接主HertaBeat服务的对外IP。-e MANAGER_PORT=1158
: 配置连接主HertzBeat服务的对外端口,默认1158。
更多配置详细步骤参考 通过Docker方式安装HertzBeat
更多的 v1.4.0 版本更新
更多版本新功能更新欢迎探索,感谢社区小伙伴们的辛苦贡献,爱心💗!
- [doc] add v1.3.2 publish doc by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1075
- remove elasticsearch unused param index by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1080
- feature support monitoring apache airflow by @luoxuanzao in https://github.com/dromara/hertzbeat/pull/1081
- add luoxuanzao as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1083
- [collector] bugfix sshd cannot use private key to connect by @gcdd1993 in https://github.com/dromara/hertzbeat/pull/1084
- bugfix update dashboard alerts cards height not consist by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1087
- Feature#serverchan by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1092
- bugfix dm database monitoring connect error by @lisongning in https://github.com/dromara/hertzbeat/pull/1094
- add lisongning as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1096
- update alert rule operator display “<=” to “>=” by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1097
- [doc] add custom monitoring relate document by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1098
- add YutingNie as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1103
- Remove unreachable status by @YutingNie in https://github.com/dromara/hertzbeat/pull/1102
- 139 auto update alert status by @l646505418 in https://github.com/dromara/hertzbeat/pull/1104
- feat: aviator fn for str contains, exists & matches by @mikezzb in https://github.com/dromara/hertzbeat/pull/1106
- add mikezzb as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1107
- bugfix common alarm do not need monitorId tag existed by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1108
- bugfix extern alert do not have labels mapping inner monitor by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1111
- feature: support apache spark metrics monitoring by @a-little-fool in https://github.com/dromara/hertzbeat/pull/1114
- add a-little-fool as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1116
- [Feature]Add third report of TenCloud by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1113
- [Feature]Add third report of TenCloud (#1113) by @zqr10159 in https://github.com/dromara/hertzbeat/pull/1119
- [manager] fix: can query by tags when tagValue is null by @l646505418 in https://github.com/dromara/hertzbeat/pull/1118
- bugfix the notification template environment variable display error by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1120
- add littlezhongzer as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1127
- feature:monitor brearer token api, ignore letter case to comparison by @littlezhongzer in https://github.com/dromara/hertzbeat/pull/1122
- docs: enhance README by @mikezzb in https://github.com/dromara/hertzbeat/pull/1128
- Update app-oracle.yml by @ChenXiangxxxxx in https://github.com/dromara/hertzbeat/pull/1129
- add ChenXiangxxxxx as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1130
- fix alarm silence strategy setting failed by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1131
- support run sql script file in jdbc protocol config by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1117
- bugfix return old cache json file when upgrade version by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1137
- support ssh protocol config choose if reuse connection by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1136
- feat(web): alert threshold UI support matches & contains by @mikezzb in https://github.com/dromara/hertzbeat/pull/1138
- support hertzbeat metrics collector cluster by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1101
- add collector card in dashboard by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1147
- bugfix: linux collect warning: bad syntax, perhaps a bogus ‘-’ by @Mr-zhou315 in https://github.com/dromara/hertzbeat/pull/1151
- add Mr-zhou315 as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1157
- support config timezone locale language region on web ui by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1154
- bugfix monitoring template app name already exists by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1152
- bugfix can not startup when error monitoring template yml file by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1153
- tags also deleted when the monitor is deleted by @Ceilzcx in https://github.com/dromara/hertzbeat/pull/1159
- monitoring param host with http head will not be error reported by @littlezhongzer in https://github.com/dromara/hertzbeat/pull/1155
- [script] feature update build.sh and Dockerfile: detect app version a… by @XimfengYao in https://github.com/dromara/hertzbeat/pull/1162
- add XimfengYao as a contributor for code by @allcontributors in https://github.com/dromara/hertzbeat/pull/1163
- [doc] add collector clusters document by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1161
- [hertzbeat] release hertzbeat version v1.4.0 by @tomsun28 in https://github.com/dromara/hertzbeat/pull/1168
⛄ 已支持
我们将监控采集类型(mysql,jvm,k8s)都定义为yml监控模版,用户可以导入这些模版来支持对应类型的监控!
欢迎大家一起贡献你使用过程中自定义的通用监控类型监控模版。
- Site Monitor, Port Availability, Http Api, Ping Connectivity, Jvm, SiteMap Full Site, Ssl Certificate, SpringBoot, FTP Server
- Mysql, PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, Damon, OpenGauss, ClickHouse, IoTDB, Redis Cluster
- Linux, Ubuntu, CentOS, Windows
- Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ
- Kubernetes, Docker
- Huawei Switch, HPE Switch, TP-LINK Switch, Cisco Switch
- and more for your custom monitoring.
- Notifications support
Discord
Slack
Telegram
Mail
Pinning
WeChat
FlyBook
SMS
Webhook
. - 和更多自定义监控模版。
- 通知支持
Discord
Slack
Telegram
邮件
钉钉
微信
飞书
短信
Webhook
。
欢迎star一波来支持我们哦。
Github: https://github.com/dromara/hertzbeat
Gitee: https://gitee.com/dromara/hertzbeat
相关文章:

重磅更新,HertzBeat 集群版发布,易用友好的开源实时监控系统!
什么是 HertzBeat? HertzBeat 赫兹跳动 是一个拥有强大自定义监控能力,高性能集群,无需 Agent 的开源实时监控告警系统。 特点 集 监控告警通知 为一体,支持对应用服务,数据库,操作系统,中间件…...
.NET6使用微信小程序授权登录,获取手机号
1.在appsettings配置你的小程序配置信息 //微信小程序信息配置"WechatConfig": {"appid": "", //小程序ID"secret": "" //小程序秘钥},2.请求接口时先获取Access_token #region 获取小程序的Access_tokenpublic object GetA…...

游戏类APP如何提升用户的活跃度?
移动游戏行业,追求使用率的营销能发挥强大的功效,可帮助减少玩家流失、追回流失的玩家、提高活跃玩家所带来的价值以及增加付费玩家贡献的收入。 一、了解玩家需求 想要提升玩家的活跃,首先要知道,玩家喜欢玩哪些平台的游戏&…...
【Sklearn】基于支持向量机算法的数据分类预测(Excel可直接替换数据)
【Sklearn】基于支持向量机算法的数据分类预测(Excel可直接替换数据) 1.模型原理1.1 数学模型1.2 模型原理2.模型参数3.文件结构4.Excel数据5.下载地址6.完整代码7.运行结果1.模型原理 支持向量机(Support Vector Machine,SVM)是一种用于分类和回归的监督学习算法,其基本…...
抽象类与接口
一,类 定义类 部分与ES6用法基本一致。通过class定义类名,并通过constructor定义构造函数,通过super关键字来调用父类的方法。 class Person {name: string; // 属性constructor(name: string) { // 构造函数this.name name;}eat()…...
第三章,矩阵,09-线性方程组解的判断与求法、矩阵方程
第三章,矩阵,09-线性方程组解的判断与求法、矩阵方程 定理推论1推论2推论3推论4 矩阵方程AXB解法解的存在性推论 玩转线性代数(21)线性方程组解的判断与求法的笔记,相关证明以及例子见原文 定理 对n元线性方程组 A x b Axb Axb,…...

Vue-4.编译器VsCode
准备 Vue-1.零基础学习Vue Vue-2.nodejs的介绍和安装 Vue-3.vue简介 为什么用VsCode VsCode 是Vue官网首推的编译器它是完全免费的 下载安装VsCode 下载地址 安装的时候不停地下一步直到完成即可 安装插件 安装汉化插件 要将 Visual Studio Code(VSCode&am…...
Neo4j之Aggregation基础
在 Neo4j 中,聚合(Aggregation)是对数据进行计算、汇总和统计的过程。以下是一些使用聚合函数的常见例子,以及它们的解释: 计算节点数量: MATCH (p:Person) RETURN count(p) AS totalPersons;这个查询会计…...

Python 函数
Built-in Functions — Python 3.11.4 documentation...

Spring(三):Spring中Bean的生命周期和作用域
前言 在 Spring 中,那些组成应用程序的主体及由 Spring IOC 容器所管理的对象,被称之为 bean。简单地讲,bean 就是由 IOC 容器初始化、装配及管理的对象,除此之外,bean 就与应用程序中的其他对象没有什么区别了。而 b…...

【AutoLayout案例03-设置底部按钮之间相同间距 Objective-C语言】
一、好,咱们继续啊 1.咱们继续把autoLayout介绍一下 咱们的自动布局 给大家介绍一下 那么,自动布局呢 继续咱们给大家做的案例 做几个例子 把这几个例子做完以后 我们再给它 我们再给大家说一下,如何通过代码,来实现自动布局 虽然说,通过代码来实现自动布局,并不推荐 但…...
代码随想录算法训练营20期|第七天|哈希表part02|454.四数相加II ● 383. 赎金信 ● 15. 三数之和 ● 18. 四数之和 ● 总结
454.四数相加II 比较巧思的解法,先把nums1 和nums2的数两两相加,并存储sum和次数 再在nums3和nums4里找对应和sum和为0的数值i,j Time: N^2 Space:N^2, 最坏情况下A和B的值各不相同,相加产生的数字个数为 n^2 class Solution {public int fo…...

NavMeshPlus 2D寻路插件
插件地址:h8man/NavMeshPlus: Unity NavMesh 2D Pathfinding (github.com) 我对Unity官方是深恶痛觉,一个2D寻路至今都没想解决,这破引擎早点倒闭算了. 这插件是githun的开源项目,我本身是有写jps寻路的,但是无法解决多个单位互相阻挡的问题(可以解决但是有性能问…...
【03】基础知识:typescript中的函数
一、typescript 中定义函数的方法 函数声明法 function test1(): string {return 返回类型为string }function test2(): void {console.log(没有返回值的方法) }函数表达式/匿名函数 const test3 function(): number {return 1 }二、typescript 中 函数参数写法 1、typesc…...

ssm社区文化宣传网站源码和论文
ssm社区文化宣传网站源码和论文019 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 研究或设计的目的和意义: (一)研究目的: 通过本次课题能够将所学的Java编程知识以及Mysql数据库知…...

Go语言工程实践之测试与Gin项目实践
Go 语言并发编程 及 进阶与依赖管理_软工菜鸡的博客-CSDN博客 03 测试 回归测试一般是QA(质量保证)同学手动通过终端回归一些固定的主流程场景 集成测试是对系统功能维度做测试验证,通过服务暴露的某个接口,进行自动化测试 而单元测试开发阶段,开发者对单独的函数…...

排查docker无法启动问题
查看Linux系统操作日志(最后200行就可以排查): tail -200f /var/log/messages...

[C++ 网络协议] 套接字和地址族、数据序列
目录 1. 套接字 1.1 在Linux平台下构建套接字 1.1.1 用于接听的套接字(服务器端套接字) 1.1.2 用于发送请求的套接字(客户端套接字) 1.2 在Windows平台下构建套接字 1.2.1 Winsock的初始化 1.2.2 用于接听的套接字(服务器端套接字) 1.2.3 用于发送请求的套接字(客户端套…...

AI 绘画Stable Diffusion 研究(八)sd采样方法详解
大家好,我是风雨无阻。 本文适合人群: 希望了解stable Diffusion WebUI中提供的Sampler究竟有什么不同,想知道如何选用合适采样器以进一步提高出图质量的朋友。 想要进一步了解AI绘图基本原理的朋友。 对stable diffusion AI绘图感兴趣的朋…...
线程池满了如何处理
某天搬砖时遇到一个问题,我创建了一个线程池执行任务,刚开始的时候还是一切,结果第二天发现有些任务没有正常执行。一看日志才发现是高峰期时线程池给我占用慢了,任务被丢掉了。 举个例子,我创建了一个线程池&#…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析
今天聊的内容,我认为是AI开发里面非常重要的内容。它在AI开发里无处不在,当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗",或者让翻译模型 "将这段合同翻译成商务日语" 时,输入的这句话就是 Prompt。…...

基于距离变化能量开销动态调整的WSN低功耗拓扑控制开销算法matlab仿真
目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.算法仿真参数 5.算法理论概述 6.参考文献 7.完整程序 1.程序功能描述 通过动态调整节点通信的能量开销,平衡网络负载,延长WSN生命周期。具体通过建立基于距离的能量消耗模型&am…...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...

如何在看板中有效管理突发紧急任务
在看板中有效管理突发紧急任务需要:设立专门的紧急任务通道、重新调整任务优先级、保持适度的WIP(Work-in-Progress)弹性、优化任务处理流程、提高团队应对突发情况的敏捷性。其中,设立专门的紧急任务通道尤为重要,这能…...
spring:实例工厂方法获取bean
spring处理使用静态工厂方法获取bean实例,也可以通过实例工厂方法获取bean实例。 实例工厂方法步骤如下: 定义实例工厂类(Java代码),定义实例工厂(xml),定义调用实例工厂ÿ…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一)
宇树机器人多姿态起立控制强化学习框架论文解析 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(一) 论文解读:交大&港大&上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化…...

2025盘古石杯决赛【手机取证】
前言 第三届盘古石杯国际电子数据取证大赛决赛 最后一题没有解出来,实在找不到,希望有大佬教一下我。 还有就会议时间,我感觉不是图片时间,因为在电脑看到是其他时间用老会议系统开的会。 手机取证 1、分析鸿蒙手机检材&#x…...

k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...

使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...