美文网首页
时序数据库,InfluxDB

时序数据库,InfluxDB

作者: 芼芼567 | 来源:发表于2022-06-01 15:03 被阅读0次

    老板新需求又来了,这次是要用一个时序数据库,用来保存工厂生产时的各种监控指标。

    一番调查之后,决定使用InfluxDB,为啥?排名高呗排名前十的时序数据库

    1.InfluxDB简介(都是抄来的)

    InfluxDB是一款用Go语言编写的开源分布式时序、事件和指标数据库,无需外部依赖。该数据库现在主要用于存储涉及大量的时间戳数据,如DevOps监控数据,APP metrics,loT传感器数据和实时分析数据。

    作为目前开源排名最高的时序数据库,InfluxDB支持数据存储策略(RP)和数据归档(CQ),能够实时查询,数据在写入时被索引后就能够被立即查出,内置HTTP接口,安装管理很简单,并且读写数据非常高效。

    InfluxDB有三大特性:

    1、Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等)

    2、Metrics(度量):你可以实时对大量数据进行计算

    3、Eevents(事件):它支持任意的事件数据

    特点

    ・为时间序列数据专门编写的自定义高性能数据存储。 TSM引擎具有高性能的写入和数据压缩

    ・Golang编写,没有其它的依赖

    ・提供简单、高性能的写入、查询 http api,Native HTTP API, 内置http支持,使用http读写

    ・插件支持其它数据写入协议,例如 graphite、collectd、OpenTSDB

    ・支持类sql查询语句

    ・tags可以索引序列化,提供快速有效的查询

    ・Retention policies自动处理过期数据

    ・Continuous queries自动聚合,提高查询效率

    ・schemaless(无结构),可以是任意数量的列

    ・Scalable可拓展

    ・min, max, sum, count, mean,median 一系列函数,方便统计

    ・Built-in Explorer 自带管理工具

    2、安装

    这边只记录下docker的安装(docker是个好东西啊)

    $ docker run -dit --restart=always --privileged --name influxdb2 -p 8086:8086 \

          -v $PWD/influxdb2/data:/var/lib/influxdb2 \

          -v $PWD/influxdb2/config:/etc/influxdb2 \

          -e DOCKER_INFLUXDB_INIT_MODE=setup \

          -e DOCKER_INFLUXDB_INIT_USERNAME=admin \

          -e DOCKER_INFLUXDB_INIT_PASSWORD=admin1234 \

          -e DOCKER_INFLUXDB_INIT_ORG=my-org \

          -e DOCKER_INFLUXDB_INIT_BUCKET=my-bucket \

          influxdb:2.0

    注意点1:这里的PASSWORD不能太短,否则启动会报错(晕)

    注意点2:这边安装的是2.0版本,和1.*版本在使用上有很大不同,请注意区分

    3、WEB管理后台

    直接访问服务器8086端口

    还能看到Java的使用示例

    还有超多可用数据源

    4、基本概念

    4.1、与传统数据库中的名词做比较

    注意点:2.*版本中已经没有database了,取而代之的是bucket

    4.2、Point

    Point由时间戳(time)、数据(field)、标签(tags)组成。

    Point相当于传统数据库里的一行数据,如下表所示:

    5、增删改查操作

    6、Java Spring Demo

    写了个springboot整合InfluxDB2.*的demo

    https://github.com/xuhai19901018/InfluxDBDemo

    7、数据收集实践

    下边以计算机系统监控作为示例,来尝试下数据收集吧。

    首先在需要监控的主机上安装Telegraf插件,我的测试服务器系统是debian11。

    apt update 

    apt install apt-transport-https

    wget  https://repos.influxdata.com/influxdb.key

    apt-key add influxdb.key

    apt update 

    apt install telegraf

    systemctl start telegraf

    在InfluxDB的web管理后台添加配置

    直接告诉你下步要做啥了,在刚刚安装Telegraf插件的主机上执行上图中的两条命令

    成功。

    查询下是否有数据了

    influx query 'from(bucket:"my-bucket")|> range(start:-3m)  '

    出来好多数据,默认监控的东西太多了,修改下Telegraf配置,只监控cpu,并增加查询条件

    influx query 'from(bucket:"my-bucket")|> range(start:-3m) |> filter(fn: (r) => r._measurement == "cpu" and r._field == "usage_idle" and r.cpu == "cpu-total" ) '

    图形化数据展示

    参考文章

    Influxdb基本操作(详细) (这边的应该是1.*版本的使用方法)

    spring boot使用InfluxDB超简单三步搞定(这边的应该是1.*版本的使用方法)

    InfluxDB详解

    盘点市面上主流的时序数据库

    springboot整合influxdb2.x

    influxDB 2.0安装及使用说明

    influxdb2.0官方文档

    相关文章

      网友评论

          本文标题:时序数据库,InfluxDB

          本文链接:https://www.haomeiwen.com/subject/kcmxmrtx.html