应用开源时序数据库 GreptimeDB 存储开源实时监控 HertzBeat 的指标度量数据
什么是 GreptimeDB
GreptimeDB 是一款开源、分布式、云原生时序数据库,交融时序数据处理和剖析。
- 欠缺的生态系统,反对大量凋谢协定,与 MySQL/PostreSQL/PromQL/OpenTSDB 等兼容,学习成本低,开箱即用。
- 时序、剖析混合负载,反对高并发的读 / 写;原生反对 PromQL,反对 SQL/Python 进行弱小的库内剖析。
- 高效存储与计算,通过对象存储和高数据压缩率实现超低的存储老本。内置数据分析解决方案,防止将数据复制到内部数据仓库。
- 分布式、高牢靠与高可用,通过解耦的云原生架构,轻松独立地扩大每个模块。通过可配置的正本和主动的故障转移机制,确保数据的可靠性和可用性。
Cloud: GreptimePlay https://greptime.com/playground
什么是 HertzBeat
HertzBeat 一个领有弱小自定义监控能力,无需 Agent 的开源实时监控告警工具。
- 集 监控 + 告警 + 告诉 All in one,反对对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警告诉一步到位。
- 更自由化的阈值规定 (计算表达式),
邮件
Discord
Slack
Telegram
钉钉
微信
飞书
短信
Webhook
等形式及时送达。 - 将
Http,Jmx,Ssh,Snmp,Jdbc
等协定标准可配置化,只需在浏览器配置YML
监控模版就能应用这些协定去自定义采集想要的指标。
HertzBeat
的弱小自定义,多类型反对,易扩大,低耦合,心愿能帮忙开发者和中小团队疾速搭建自有监控零碎。
Cloud: TanCloud https://console.tancloud.cn/
GreptimeDB & HertzBeat
上面内容咱们会通过一步一步的模式演示 HertzBeat 如何联合 GreptimeDB 作为存储端来存储收集到的指标数据。
装置部署 GreptimeDB
具体能够参考 官网文档
- Docker 装置 GreptimeDB
$ docker run -p 4000-4004:4000-4004 \
-p 4242:4242 -v "$(pwd)/greptimedb:/tmp/greptimedb" \
--name greptime \
greptime/greptimedb:0.2.0 standalone start \
--http-addr 0.0.0.0:4000 \
--rpc-addr 0.0.0.0:4001
-v "$(pwd)/greptimedb:/tmp/greptimedb"
为 greptimeDB 数据目录本地长久化挂载,倡议将$(pwd)/greptimedb
替换为您想指定寄存的理论本地目录
- 应用
$ docker ps | grep greptime
查看 GreptimeDB 是否启动胜利
装置部署 HertzBeat
具体能够参考 官网文档
- Docker 装置 HertzBeat
$ docker run -d -p 1157:1157 \
-e LANG=zh_CN.UTF-8 \
-e TZ=Asia/Shanghai \
-v /opt/data:/opt/hertzbeat/data \
-v /opt/application.yml:/opt/hertzbeat/config/application.yml \
--restart=always \
--name hertzbeat tancloud/hertzbeat
-v /opt/data:/opt/hertzbeat/data
: (可选,数据长久化)重要⚠️ 挂载 H2 数据库文件到本地主机,保证数据不会因为容器的创立删除而失落-v /opt/application.yml:/opt/hertzbeat/config/application.yml
: 挂载自定义本地配置文件到容器中,即应用本地配置文件笼罩容器配置文件。
留神⚠️ 本地挂载配置文件 application.yml
需提前存在,文件残缺内容见我的项目仓库 /script/application.yml
- 浏览器拜访 http://ip:1157/ 默认账户明码 admin/hertzbeat,查看 HertzBeat 是否启动胜利。
配置应用 GreptimeDB 存储 HertzBeat 监控指标度量数据
- 批改 HertzBeat 端配置文件
批改挂载到本地的 HertzBeat 配置文件 application.yml, 安装包模式下批改 hertzbeat/config/application.yml
批改外面的 warehouse.store.jpa.enabled
参数为 false
,配置外面的warehouse.store.greptime
数据源参数,URL 账户明码,并启用 enabled
为true
warehouse:
store:
# 敞开默认 JPA
jpa:
enabled: false
greptime:
enabled: true
endpoint: localhost:4001
- 重启 HertzBeat
$ docker restart hertzbeat
察看验证成果
- 浏览器拜访 HertzBeat http://ip:1157/ 默认账户明码 admin/hertzbeat
- 应用 HertzBeat 增加利用监控,比方网站监控,Linux 监控,Mysql 监控
- 监控采集几个周期之后,查看 GreptimeDB 数据库是否存储指标度量数据,HertzBeat 指标数据图表数据是否展现失常。
间接上图哇:
小结
这篇文章带咱们体验了如何应用开源时序数据库 GreptimeDB 存储开源实时监控 HertzBeat 的指标度量数据,总的来看两款开源产品上手是非常简单的,要害是如果嫌麻烦不想部署他俩都还有云服务😂让你折腾。
作为个性 HertzBeat 反对 GreptimeDB 的开发者之一,在理论适配应用过程中,GreptimeDB 的丝滑原生 SDK 和相似关系数据库的 SQL,让咱们从其它时序数据库 TDengine, IotDB, InfluxDB
切换过来还是非常容易,体验丝滑的。
GreptimeDB Github: https://github.com/GreptimeTeam/greptimedb
HertzBeat Github: https://github.com/dromara/hertzbeat
最初就是欢送大家肯定要多多理解,多多应用,多多提意见,多多 ISSUE,多多 PR,多多 Star 反对这俩没进去多久心愿失去呵护的开源牛牛不怕困难 一颗小星星哦!做开源,咱们是蒸 (真) 的,爱心💗
感激此个性 HertzBeat 反对 GreptimeDB 的贡献者们 @zqr10159, @fengjiachun, @killme2008, @tomsun28