写点什么

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

  • 2024-10-22
    北京
  • 本文字数:2399 字

    阅读完需:约 8 分钟

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

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


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


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


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

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.gzcd prometheus-2.53.1.darwin-arm64
复制代码

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

remote_write:  - url: http://localhost:4000/v1/prometheus/write?db=publicremote_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 的数据模型映射请阅读文档[5]。

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。


创建一个数据源[6],选择 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,我们选择导入一个,进入菜单[7]。


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


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


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


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


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

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

Reference

[1] https://prometheus.io/

[2] https://grafana.com/

[3] https://github.com/GreptimeTeam/greptimedb

[4] https://docs.greptime.com/getting-started/installation/overview

[5] https://docs.greptime.com/user-guide/write-data/prometheus#prometheus-metrics-in-greptimedb

[6] http://localhost:3000/connections/datasources/new

[7] http://localhost:3000/dashboard/import

[8] https://grafana.com/grafana/dashboards/3662-prometheus-2-0-overview/

[9] https://docs.greptime.com/

[10] https://greptime.com/product/cloud


关于 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/

用户头像

专注于 Infra 技术分享 2022-09-23 加入

分布式、高性能、存储计算分离的开源云原生时序数据库

评论

发布
暂无评论
如何配置 GreptimeDB 作为 Prometheus 的长期存储_时序数据库_Greptime 格睿科技_InfoQ写作社区