InfluxDB官网:https://www.influxdata.com/

官方文档:https://docs.influxdata.com/influxdb/v2/

B站视频教程:https://www.bilibili.com/video/BV1xd4y1c73c/?p=3&spm_id_from=pageDriver&vd_source=973117b270742b5caf7a371f661d0495

时序数据库

  • 写入性能:都是LSM Treew的变种,顺序写入磁盘来增强写入性能。单点,每秒写入数十万的能力。
  • 数据价值:随着时间推移,只有最新的数据才认定有价值。将数据分为冷数据、热数据。冷数据甚至可能会被删除。节省磁盘空间。
  • 时间不可倒流,数据只写不改:时序数据库为了性能,不支持事务,不能删除、更新某条数据

安装InfluxDB

docker run --name influxdb -p 8086:8086 influxdb:2.7.4

安装完成,访问:http://127.0.0.1:8086/

输入基本信息账号和密码

主界面

InfluxDB涉及的TICK技术栈

T:Telegraf:数据菜鸡组件,收集 & 发送数据到InfluxDB

I:InfluxDB:存储数据 & 发送数据到Chronograf

C:Chronograf:用户界面,起到管理功能(1.8后被InfluxDB整合)

K:Kapacitor:后台处理报警信息(1.8后被InfluxDB整合)

开源协议

目前只能使用单机节点,集群版本需要付费。但是一些开源项目实现了集群的代码。

InfluxDB1.8 非官方开源集群版:https://github.com/chengshiwen/influxdb-cluster

创建一个Bucket

往Bucket写入数据

parking num=65 1708268214000

再往Bucket插入2条数据

parking num=100 1708268314000
parking num=85 1708268414000

观察下结果

这里就是InfluxDB管理界面的操作。

什么是InfluxDB行协议?

InfluxDB行协议是InfluxDB数据库独创的一种数据格式,它由纯文本构成,只要符合这个数据格式的文本就能通过InfluxDB的HTTP API写入到数据库中!

与CSV格式相似,一条数据与另一个数据之间用换行符分隔,所以一行就是一条数据。

一行数据中有4个元素构成

measurement,tag_key1=tag_value1,tag_key2=tag_value2 field_key=field_value timestamp
  • measurement 测量名称:表示数据的度量值,类似于关系型数据库中的表名。
  • Tag Set 标签集:用于添加额外的元数据信息,以便更好地组织和查询数据。是键值对。多个以英文逗号隔开。
  • Field Set 字段集:字段包含实际的数据值。
  • Timestamp 时间戳:时间戳,表示数据点的时间

假设我们要写入一个名为cpu_usage的度量值,包含标签host=server1和字段value=0.75,时间戳为1623255228,则行协议格式如下:

cpu_usage,host=server1 value=0.75 1623255228

使用TELEGRAF

现在InFluxDB后台创建一个TeleGraf的配置项,这里我选择的是Redis,并修改未来安装TeleGraf能访问到的Redis地址

服务器安装一个TeleGraf

wget https://dl.influxdata.com/telegraf/releases/telegraf-1.20.1-1.x86_64.rpm

sudo yum localinstall telegraf-1.20.1-1.x86_64.rpm

安装完成后,直接复制执行命令启动即可!比如:如果你修改了配置文件,得重启TeleGraf

配置确认无问题后,回到浏览器 复制相关命令后,启动完成TeleGraf后,再点击SAVE AND TEST

等会查看监控

特殊说明:
上述文章均是作者实际操作后产出。烦请各位,请勿直接盗用!转载记得标注原文链接:www.zanglikun.com
第三方平台不会及时更新本文最新内容。如果发现本文资料不全,可访问本人的Java博客搜索:标题关键字。以获取全部资料 ❤