Prometheus远端数据存储PostgreSQL/TimescaleDB
概述
Prometheus的数据存储一般都是存放本地的 TSDB (时序数据库)中,使得Prometheus部署方便快捷,然而原生的 TSDB 对于大数据量的保存及查询支持不太友好,该数据库不能保证可靠性,且无法支持Prometheus集群架构。
对于这方面的完善,Prometheus提供了remote_write和remote_read的特性,支持将数据存储到远端和从远端读取数据的功能。当配置remote_write特性后,Prometheus会将采集到的指标数据通过HTTP的形式发送给适配器(Adaptor),由适配器进行数据的写入。而remote_read特性则会向适配器发起查询请求,适配器根据请求条件从第三方存储服务中获取响应的数据。
Prometheus的存储方案有好几种选择,例如influxDB,Cortex,CrateDB,PostgreSQL/TimescaleDB。这些方案都可读可写,下面展示PostgreSQL/TimescaleDB方案的操作步骤。
实验环境
Centos7.6
Prometheus 2.33.3
PostgreSQL 12.1 (要求12以上)
Cmake 3.19.2 (要求3.11以上)
TimescaleDB 2.6.0
pg_prometheus 0.2.2
prometheus-postgresql-adapter 0.6.0
环境准备
部署PG
#下载安装包 wget https://ftp.postgresql.org/pub/source/v12.1/postgresql-12.1.tar.gz #关闭selinux,防火墙 setenforce 0 systemctl stop firewalld.service systemctl disable firewalld.service #创建用户 useradd postgres passwd postgres #安装依赖 yum install -y gcc gcc-c++ epel-release \ clang libicu-devel perl-ExtUtils-Embed zlib-devel openssl \ openssl-devel pam-devel libxml2-devel libxslt-devel openldap-devel \ systemd-devel tcl-devel python-devel #解压编译安装 tar -zxvf postgresql-12.1.tar.gz cd postgresql-12.1 ./configure --prefix=/usr/local/pgsql12 --without-readline --with-openssl make world make install
相关文章