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的用户名和密码会相对安全。