开发者们常常遇到应用程序的性能问题,即便你是经验丰富的程序员,你也肯定遇到过下列这些场景:打开网站时,网页崩溃404;点击APP显示网络请求错误或超时;在给客户展示时,网页响应速度变慢……
一旦遇到相似的问题,开发者们首选的解决方案就是希望尽快地发现问题、定位问题、分析问题,从而能够尽早地解决问题。而这类解决方案常常又称作 APM (应用程序性能监测软件)。
今天,我们就给大家推荐一款优秀易用的开源监控告警项目—— HertzBeat 赫兹跳动,大家看完此文也可以试着操作了解一下,共同讨论。
正式介绍之前,我们先来了解下这个项目的作者:Dromara。 Dromara 是一个开源社区。据 Dromara 开源社区创始人肖宇此前接受 Gitee 访问时曾谈及名字的由来: “ Dromara 是爱尔兰一个风景优美的小乡村的名称,其次我比较喜欢草原,而草原上的姑娘叫卓玛拉,一结合名字就诞生了。”
目前 Dromara 社区有 10 个 GVP 项目,最高 star 数达17.2k。今天我们介绍的这款 HertzBeat 赫兹跳动就是从 Dromara 社区中孵化而来的一款项目。其中,HertzBeat 赫兹跳动 的核心作者 tomsun28 也是 GVP 项目bootshiro 的作者。
从他个人的网络自述上得知,这位大佬目前时全职做开发,至今做了多款开源项目,譬如 Dromara 开源社区 中的 Sureness ;GVP 项目 Bootshiro 等。此前,大佬就已深耕 APM 领域多年, 因对开源的热带,2021 年裸辞后,全职专注开源,此次创业和开源的方向也是老本行监控系统。
HertzBeat 赫兹跳动 这个项目就是作者开发出的一个新成果。言归正传,我们来看看这个项目究竟是怎样的易用?
01关于 HertzBeat
开源许可证:
Apache-2.0
项目简介:
HertzBeat 赫兹跳动 是由 Dromara 社区孵化, TanCloud 开源的一个支持网站, API , PING ,端口,数据库,操作系统等监控类型,拥有可视化操作界面的开源监控告警项目。
特点
模块化、易扩展,低耦合,方便自主定制开发
02如何模块化
HertzBeat 赫兹跳动的模块化包括 manager、collector、scheduler、warehouse、alerter 各个模块解耦合。
manager 提供监控管理,系统管理基础服务
提供对监控的管理,监控应用配置的管理,系统用户租户后台管理等。
collector 提供监控数据采集服务
使用通用协议远程采集获取对端指标数据。
scheduler 提供监控任务调度服务
采集任务管理,一次性任务和周期性任务的调度分发。
warehouse 提供监控数据仓储服务
采集指标结果数据管理,数据落盘,查询,计算统计。
alerter 提供告警服务
告警计算触发,监控状态联动,告警配置,告警通知。
web-app 提供可视化控制台页面
监控告警系统可视化控制台前端
03如何安装
1.如果不想部署而是直接使用,可以前往其提供的 SaaS 监控云-TanCloud 探云。
2.操作部署到内网则可参考下列方式。
- HertzBeat最少依赖于关系型数据库 MySQL5+ 和时序性数据库TDengine2+
安装MySQL
1.Docker 安装 MySQL
docker run -d --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
复制代码
2.创建名称为 HertzBeat 的数据库;
3.执行位于项目仓库/script/sql/目录下的数据库脚本 schema.sql
安装TDengine
1.Docker 安装 TDengine
docker run -d -p 6030-6049:6030-6049 -p 6030-6049:6030-6049/udp --name tdengine tdengine/tdengine:2.4.0.12
复制代码
2.创建名称为 HertzBeat 的数据库
HertzBeat安装
- HertzBeat 支持通过源码安装启动,Docker 容器运行和安装包方式安装部署。
方式一:Docker 方式快速安装
docker run -d -p 1157:1157 -v /opt/application.yml:/opt/hertzbeat/config/application.yml --name hertzbeat tancloud/hertzbeat:[版本tag]
复制代码
方式二: 通过安装包安装
1.下载您系统环境对应的安装包GITEE Release GITHUB Release
2.配置 HertzBeat 的配置文件 hertzbeat/config/application.yml
3.部署启动 $ ./startup.sh
方式三: 本地代码启动
1.此为前后端分离项目,本地代码调试需要分别启动后端工程 Manager 和前端工程 Web-app
2.后端:需要 Maven3+
和 Java8+
环境,修改 YML 配置信息并启动 manager 服务 前端:需要 Node.js npm Angular-CLI
环境,待本地后端启动后,在 web-app 目录下启动 ng serve --open
3.浏览器访问 localhost:4200 即可开始,默认账号密码 admin/admin
方式四: Docker-compose统一安装hertzbeat及其依赖服务
通过 Docker-compose部署脚本 一次性把 MySQL 数据库, TDengine 数据库和 HertzBeat 安装部署。
项目演示
若要查看详细操作方式,可前往 B 站 www.bilibili.com/video/BV1Vi…查看。