当前位置: 首页 > news >正文

如何配置 GreptimeDB 作为 Prometheus 的长期存储

Prometheus 是一个开源的监控和报警系统,用于收集和处理时间序列数据。它通常与其他工具(如 Grafana)结合使用,以提供可视化和分析功能。然而,Prometheus 本身的存储能力有限,因此在处理大量时间序列数据时,需要使用外部存储来扩展其功能。GreptimeDB 是一个专门为时间序列数据设计的分布式数据库,具有高性能、高可用性和可扩展性等特点。在本教程中,我们将学习如何设置 GreptimeDB 作为 Prometheus 的长期存储。

1. 安装 GreptimeDB

首先需要安装 GreptimeDB,用户可以从官方网站下载适合你操作系统的二进制文件,并按照安装说明进行安装。在本教程中,我们将使用 Docker 来安装 GreptimeDB 单机版:

docker run -p 127.0.0.1:4000-4003:4000-4003 \
-v "$(pwd)/greptimedb:/tmp/greptimedb" \
--name greptime --rm \
greptime/greptimedb:v0.9.1 standalone start \
--http-addr 0.0.0.0:4000 \
--rpc-addr 0.0.0.0:4001 \
--mysql-addr 0.0.0.0:4002 \
--postgres-addr 0.0.0.0:4003

如果一切正常,可以打开浏览器访问 http://localhost:4000/dashboard/ ,将会看到 GreptimeDB 内置的 Dashboard,可以查看表信息、查询等。

如果你的数据规模较大,我们推荐你使用 GreptimeDB 集群版本,它具备无限水平扩展能力,请阅读这篇性能报告。

更多 GreptimeDB 安装说明请阅读文档。

2. 配置 Prometheus

接下来,需要配置 Prometheus 以使用 GreptimeDB 作为长期存储。

首先从 https://github.com/prometheus/prometheus/releases/tag/v2.53.1 选择对应的操作系统和处理器架构版本下载 Prometheus。

比如我使用的是 Mac Arm64 系统:

curl -fsSL -O \https://github.com/prometheus/prometheus/releases/download/v2.53.1/prometheus-2.53.1.darwin-arm64.tar.gz

解压后,进入 Prometheus 安装目录:

tar zxvf prometheus-2.53.1.darwin-arm64.tar.gz
cd prometheus-2.53.1.darwin-arm64

打开 Prometheus 的配置文件(prometheus.yml),在末尾添加以下内容:

remote_write:- url: http://localhost:4000/v1/prometheus/write?db=public
remote_read:- url: http://localhost:4000/v1/prometheus/read?db=public

我们默认写入的数据库的是 public

3. 启动 Prometheus

完成配置后启动 Prometheus,在命令行中,执行以下命令:

./prometheus --config.file=./prometheus.yml

如果一切正常,刷新 http://localhost:4000/dashboard/ 页面,将会看到 Prometheus 的数据已经写入了:

在这里插入图片描述

用户也可以使用 SQL 来查询这些数据,点击左侧菜单 + 号打开一个查询界面,输入 SQL 语句:

select * from go_info order by greptime_timestamp desc limit 10;

在这里插入图片描述

更多关于 Prometheus 到 GreptimeDB 的数据模型映射请阅读文档。

4. 配置 Grafana 直接访问 GreptimeDB

在前三步完成后,GreptimeDB 已经配置为 Prometheus 的长期存储后端。

第四步是额外彩蛋,因为 GreptimeDB 原生支持 PromQL,事实上用户可以让 Grafana 直接连接 GreptimeDB,而不需要通过 Prometheus Remote Read 协议中转一道,这样带来的性能更好、延迟更低

首先通过 Docker 启动一个 Grafana:

docker run -d -p 3000:3000 --name=grafana --rm grafana/grafana-oss

打开浏览器 http://localhost:3000/login 访问并登录 Grafana,默认账户名和密码都是 admin。

创建一个数据源,选择 Prometheus 数据源:

在这里插入图片描述

在这里插入图片描述

通过下列命令查看 GreptimeDB 容器的 IP:

docker inspect greptime |grep IPAddress

假设输出是:

            "SecondaryIPAddresses": null,"IPAddress": "172.17.0.3","IPAddress": "172.17.0.3",

那么可以将 GreptimeDB server URL 设置为:http://172.17.0.3:4000/v1/prometheus,请修改成你那边输出的正确 IP。

save & test 应该一切正常。

接下来我们去创建一个 Dashboard,我们选择导入一个,进入菜单。

因为本文只采集了 Prometheus 的指标,所以我们选择导入 Prometheus 2.0 Overview 作为 Prometheus 自身的监控大盘:

在这里插入图片描述

导入 URL 填写:https://grafana.com/grafana/dashboards/3662-prometheus-2-0-overview/

在这里插入图片描述

选择我们刚刚创建的 Prometheus 数据源:

在这里插入图片描述

如果一切顺利,你应该可以看到 Prometheus 的监控大盘:

在这里插入图片描述

在这里插入图片描述

感谢阅读,更多关于 GreptimeDB 的信息,请阅读官方文档。

如果你不想自己托管一个 GreptimeDB,欢迎尝试全托管的数据库服务 GreptimeCloud。

关于 Greptime

Greptime 格睿科技专注于为可观测、物联网及车联网等领域提供实时、高效的数据存储和分析服务,帮助客户挖掘数据的深层价值。目前基于云原生的时序数据库 GreptimeDB 已经衍生出多款适合不同用户的解决方案,更多信息或 demo 展示请联系下方小助手(微信号:greptime)。

欢迎对开源感兴趣的朋友们参与贡献和讨论,从带有 good first issue 标签的 issue 开始你的开源之旅吧~期待在开源社群里遇见你!添加小助手微信即可加入“技术交流群”与志同道合的朋友们面对面交流哦~

Star us on GitHub Now: https://github.com/GreptimeTeam/greptimedb

官网:https://greptime.cn/

文档:https://docs.greptime.cn/

Twitter: https://twitter.com/Greptime

Slack: https://greptime.com/slack

LinkedIn: https://www.linkedin.com/company/greptime/


http://www.mrgr.cn/news/66094.html

相关文章:

  • 第三十四章 Vue路由进阶之声明式导航(导航高亮)
  • GitHub中搜索项目方法
  • 全面解析:大数据技术及其应用
  • C#:强大而优雅的编程语言
  • 微信支付接口变心了:暂不支持该类型商户号绑定本AppID,请点击“拒绝”结束该流程,点此查看详细说明。如有疑问,可咨询客服
  • ETCD简介
  • YOLO11改进 | 融合改进 | C3k2引入多尺度分支来增强特征表征【全网独家 附结构图】
  • OBOO鸥柏丨甘肃火车站/高铁多媒体网络广告刷屏机数字转型
  • 2024年最新10款顶级项目管理软件排行
  • 类与对象—中
  • mutable用法
  • vue 使用openlayers加载超图图层
  • 富格林:揭露欺诈陷阱用心追损
  • Spring Boot 内置工具类
  • OpenCV视觉分析之目标跟踪(10)估计两个点集之间的刚性变换函数estimateRigidTransform的使用
  • KVM虚拟机的冷热迁移
  • 量化交易 股市技术指标
  • 【ARM Linux 系统稳定性分析入门及渐进 1.4 -- Crash 工具调用】
  • Vue 3 性能提升与 Vue 2 的比较 - 2024最新版前端秋招面试短期突击面试题【100道】
  • 51单片机--- 蜂鸣器电子琴仿真
  • 【Linux】网络编程:实现一个简易的基于HTTP协议格式、TCP传输的服务器,处理HTTP请求并返回HTTP响应;GET方法再理解
  • Odoo的结构
  • 数据分析-39-时间序列分解之经验小波分解EWT
  • 【笔记】变压器-热损耗-频响曲线推导 - 03 变压器参数-特性
  • PMP每日一练(二十三)
  • ​伊朗和以色列各类地图分享