Prometheus远端存储InfluxDB
作者:互联网
1. Influx介绍
InfluxDb是一个开源分布式时序、时间和指标数据库。采用Go语言编写。其设计目的是实现分布式和水平伸缩扩展,是InfluxData的核心产品之一。主要用于性能监控、应用程序指标、物联网传感器数据和实时分析的后端存储
。完整的InfluxData上下游产业还包括了Chronograf、Telegraf和Kapacitor
,如下图所示。
2.与传统数据库对比
Influxdb中的概念 | 传统数据库中的概念 |
---|---|
database | 数据库 |
measurement | 数据库中的表 |
point | 表中的一行数据 |
- Point的数据结构由时间戳(time)、标签(tag)和数据(Fields)三部分组成,具体含义如下:
Point属性 | 含义 |
---|---|
time | 数据记录的时间,是主索引(自动生成) |
tags | 各种索引的属性 |
fields | value值 |
3. 安装
# 下载influxdb-1.8
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rpm
# 安装
yum -y localinstall influxdb-1.8.0.x86_64.rpm
# 启动
systemctl start influxdb
配置文件路径在/etc/influxdb/influxdb.conf
4. 客户端登录
客户端输入influx
, 进入influx交互式界面。
展示所有的数据库show databases
创建新的名为prometheus
的数据库
create database prometheus
5. 配置Prometheus
在prometheus.yml配置文件中,添加remote_write
remote_write:
- url: "http://localhost:8086/api/v1/prom/write?db=prometheus"
检查prometheus.yml配置文件是否正确
./promtool check config prometheus.yml
重启
# 重启
systemctl restart prometheus
# 查看状态
systemctl status prometheus
6. 验证
切换到Prometheus数据库,执行show measurements
,查看度量信息。
可以看到prometheus指标已经存储到InfluxDB中。
7. 清除策略
对于传统关系型数据库,增删改查应该是必备且常用的功能,而influxdb常用的只有insert和select,没有提供update语法。
因为存储的数据都是跟时间有关的测量数值,多用于图表展示,不太需要人为的去删除,而有时统计的数据是秒级,甚至毫秒级、纳秒级的,势必造成数据量巨大。如果一直长久存储会占用机器大量资源,而且有些数据越旧越失去它的时效性,越没有参考价值,所以保留策略retention policy就是可以让数据存储一段时间后自动清除。
查看某数据库保留策略
show retention policies on prometheus
-
Name: 保留策略名称
-
Duration: 数据保存时长。最小为1h。如果设置为0,数据永久保存。
-
shardGroupDuration: 数据存储在
shardGroup
的时间跨度。 -
replicaN: 复制因子。它决定在集群中存储多少个数据副本。inflxudb集群中跨N个数据节点复制数据,其中N就是复制因子。复制因子对单个节点实例不起作用,所以单机版直接设置为1即可。
-
default: true为默认的保留策略。
参考博客
标签:存储,数据库,prometheus,influxdb,Prometheus,InfluxDB,远端,数据 来源: https://www.cnblogs.com/shine-rainbow/p/16375474.html