乐趣区

关于java:使用开源时序数据库-GreptimeDB-存储开源实时监控-HertzBeat-的指标度量数据

应用开源时序数据库 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

具体能够参考 官网文档

  1. 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 替换为您想指定寄存的理论本地目录
  1. 应用 $ docker ps | grep greptime 查看 GreptimeDB 是否启动胜利

装置部署 HertzBeat

具体能够参考 官网文档

  1. 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

  1. 浏览器拜访 http://ip:1157/ 默认账户明码 admin/hertzbeat,查看 HertzBeat 是否启动胜利。

配置应用 GreptimeDB 存储 HertzBeat 监控指标度量数据

  1. 批改 HertzBeat 端配置文件

批改挂载到本地的 HertzBeat 配置文件 application.yml, 安装包模式下批改 hertzbeat/config/application.yml

批改外面的 warehouse.store.jpa.enabled 参数为 false,配置外面的warehouse.store.greptime 数据源参数,URL 账户明码,并启用 enabledtrue

warehouse:
   store:
      # 敞开默认 JPA
      jpa:
         enabled: false
      greptime:
         enabled: true
         endpoint: localhost:4001
  1. 重启 HertzBeat
$ docker restart hertzbeat

察看验证成果

  1. 浏览器拜访 HertzBeat http://ip:1157/ 默认账户明码 admin/hertzbeat
  2. 应用 HertzBeat 增加利用监控,比方网站监控,Linux 监控,Mysql 监控
  3. 监控采集几个周期之后,查看 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

退出移动版