Prometheus使用influxdb作为存储

Prometheus 的本地存储在可伸缩性和持久性方面受到单个节点的限制。Prometheus 并没有尝试从本地存储中解决这个问题,而是提供了一组允许与远程存储系统集成的接口。Prometheus 通过两种方式与远程存储系统集成

Prometheus 可以将提取的样本以标准格式写入远程 URL。

Prometheus 可以以标准化格式从远程 URL 读取(返回)样本数据。

 

 

 读取和写入协议都使用基于 HTTP 的快速压缩协议缓冲区编码。该协议尚未被认为是稳定的 API,当可以安全地假定 Prometheus 和远程存储之间的所有跃点都支持 HTTP / 2 时,该协议将来可能会更改为在 HTTP / 2 上使用 gRPC。

我们可以利用prometheus的远程接口存储特性使用influxdb作为prometheus的存储

1、安装influxdb

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF
yum -y install influxdb
systemctl start influxdb
systemctl enable influxdb

2、进入influxdb创建数据库

influx -precision rfc3339
create database prometheus

3、配置prometheus.yaml

remote_write:
- url: "http://172.16.149.216:8086/api/v1/prom/write?db=prometheus"
remote_read:
 - url: "http://172.16.149.216:8086/api/v1/prom/read?db=prometheus"

添加好这两个配置重启prometheus

4、查看influxdb是否有数据

influx -precision rfc3339
use prometheus
show measurements; #有数据证明已经成功
show retention policies on prometheus #查看过期时间
name    duration shardGroupDuration replicaN default
----    -------- ------------------ -------- -------
autogen 0s       168h0m0s           1        true


duration 代表过期时间 0是不过期
可以设置过期时间就是保存时间
alter retention policy autogen on prometheus duration 30d replication 1 default;#更改过期时间
create retention policy autogen on prometheus duration 30d replication 1 default;创建过期时间

至此我们已经成功部署prometheus的存储当然这个是比较简单直接部署方式,如果在生产环境可以考虑加密添加influxdb的用户名和密码会相对安全。

posted @ 2022-05-15 17:45  Throb_JL  阅读(1814)  评论(0编辑  收藏  举报