influxDB 基础了解
Posted Stars.Sky
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了influxDB 基础了解相关的知识,希望对你有一定的参考价值。
目录
一、什么是时序数据库
什么是时序数据库?时序数据库是近几年一个新的概念,与传统的mysql关系型数据库相比,它的最大的特点是:数据按照时间顺序存储。
举例来说,日志数据,是以时间顺序存储的,所以用时序数据库存储是一种很好的选择。使用Mysql在存储的过程中,不是对这种基于时间的数据进行优化的,所以,在查询、插入上有一些瓶颈。
1、时序数据库 InfluxDb
InfluxDB是一个用于存储和分析时间序列数据的开源数据库。也是使用最多的一个时序数据库。
2、InfluxDB 的特点
InfluxDB有很多特点,如下:
-
内置HTTP接口,使用方便
-
数据可以打标记,这样查询可以很灵活
-
类SQL的查询语句
-
安装管理很简单,并且读写数据很高效
-
能够实时查询,数据在写入时被索引后就能够被立即查出
3、influxdb 数据模型
-
measurement:数据库中的表;
-
points:表里面的一行数据。
Point由时间戳(time)、数据(field)和标签(tags)组成:
-
time:每条数据记录的时间,也是数据库自动生成的主索引;
-
fields:各种记录的值;
-
tags:各种有索引的属性。
temperature 就是measurement 代表一张表。每行代表一个 point internal extenal 是两个数据指标取值。tags代表取值产生的位置。
4、influxdb 时间线
-
series :所有在数据库中的数据,都需要通过图表来展示,表示表里面的数据,可以在图表上画成几条线,通过tags排列组合计算出来。
series 就是某种特定tag下的某个特定指标的时序取值集合。
5、influxdb 系统架构
每个database 可以有多个RP(retention policy数据保存策略),但是只有一个默认策略。策略下按照时间段分为多个ShardGroup,每个ShardGroup存储一个时间段的数据。每个shardgroup下分多个shard来存储数据。
二、influxdb的安装
1.Windows电脑安装influxdb时序数据库
1、influxdb解压安装
下载后直接解压即可,将influxdb解压到某个目录:
有几个文件我们需要记一下:
-
influxdb.conf 是配置文件
-
influxd 是influx的主程序
2、启动influxdb数据库
通过cmd进入这个目录,执行 influxd.exe 即可启动:
可能会弹出需要网络的提醒,这时候点击允许访问网络就可以了。
3、创建服务
点击下方nssm.exe下载到influxdb目录中:
(1)通过cmd进入这个目录,执行 nssm.exe install influxdb,选择路径
选择 influxd.exe
(2)在Arguments填入 -config ./influxdb.conf
(3)打开任务管理器,启动influxdb服务
3、启动客户端测试是否服务器启动成功
再次通过cmd进入这个目录,执行 influx.exe 即可启动:
执行 show databases, 客户端会连接默认的db,如上图,显示了对应的数据库就表示influxdb启动成功了。
三、influxdb 基本操作
此次在Linux中进行操作演示
1、InfluxDB数据库操作
显示数据库
show databases
说明:
_internal
数据库是用来存储InfluxDB内部的实时监控数据的。
创建数据库
create database test
删除数据库
drop database kkkkk
使用指定数据库
use mydb
2、InfluxDB 数据表操作
在 InfluxDB 当中,并没有表(table)这个概念,取而代之的是 MEASUREMENTS,MEASUREMENTS 的功能与传统数据库中的表一致,因此我们也可以将 MEASUREMENTS 称为InfluxDB 中的表。
显示所有表
SHOW MEASUREMENTS
新建表
InfluxDB 中没有显式的新建表的语句,只能通过 insert 数据的方式来建立新表。
insert cpu,host=serverA,region=us_west value=0.64
其中 cpu 就是表名,host、region 是索引(tags),value=xx是记录值(fields),记录值可以有多个,系统自动追加时间戳
查询表数据
select * from cpu
执行 precision rfc3339 更换为国际时间,与北京时间相差8小时
删除表
drop measurement
3、数据保存策略(Retention Policies)
influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据。(设置类似于定期清理的语句)
保留策略语法
CREATE RETENTION POLICY <retention_policy_name> ON <database_name> DURATION <duration> REPLICATION <n> [SHARD DURATION <duration>] [DEFAULT]
<retention_policy_name>:保留策略的名称(自定义)
<database_name>:为哪个数据库创建保留策略
<duration>:该保留策略对应的数据过期时间
REPLICATION:副本因子 SHARD DURATION:分片组的默认时长
[DEFAULT]:是否为默认策略
创建数据保留策略
CREATE RETENTION POLICY "influx_retention" ON "mydb" DURATION 30d REPLICATION 1 DEFAULT
influx_retention:策略名;
mydb:具体的数据库名;
30d:保存30天,30天之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期/周);
replication 1:副本个数,一般为1就可以了;
default:设置为默认策略
查看保留期
SHOW RETENTION POLICIES ON mydb
修改保留期
ALTER RETENTION POLICY "influx_retention" ON mydb DURATION 15d
删除保留期
DROP RETENTION POLICY "influx_retention" ON mydb
4、用户操作
显示用户
show users
创建用户
-
【普通用户】创建用户并设置密码
CREATE USER tom WITH PASSWORD '123'
-
【管理员用户】
create user "tony" with password '123' with all privileges
修改用户密码
SET PASSWORD FOR tom = '123456'
删除用户
drop user admin
5、数据库访问权限
用户授权
-
授权用户数据库操作权限
GRANT ALL PRIVILEGES ON influxdb TO tom
-
赋予用户管理员权限
GRANT ALL PRIVILEGES TO tony
备注:只能使用admin权限才可以操作数据库
撤销授权
-
撤销用户数据库操作权限
Revoke ALL PRIVILEGES ON influxdb FROM tom
-
撤销用户管理员权限
Revoke ALL PRIVILEGES FROM tony
四、influxdb 开启用户登录认证
1、开启登录认证
在influxdb配置文件influxdb.conf中,开启用户登录认证,在http模块修改如下内容:
[root@client01 ~]# vim /etc/influxdb/influxdb.conf
[http]
······
auth-enabled = true
[root@client01 ~]# systemctl restart influxd # 修改完配置文件后需要重启
# 在Windows 中 则可以 在任务管理器中 重新启动influxdb服务
修改用户权限时需要重新修改配置文件为 auth-enabled = false 才可进行操作
2、开启认证后无密码登录
普通用户无权限查看:
3、开启认证后有密码登录
得让有管理员权限的用户登录才有查看权限:
执行 influx -username tony -password 123 登录 influxdb
InfluxDB简介,安装及基础使用
1.官网地址:https://portal.influxdata.com/downloads/#influxdb
2.相关软件介绍
(1)telegraf
一个用Go语言编写的代理程序,可收集系统和服务的统计数据,并写入到influxdb数据库,内存占用小,通过插件系统可轻松添加支持其他服务的扩展。
(2)InfluxDB是一个开源的分布式时序、时间和指标数据库,使用GO语言编写,无需外部依赖,特性:
a.给予时间序列,支持与时间有关的相关函数
b.可度量性,可以实时对大量数据进行计算
c.基于事件,它支持任意的事件数据;
3.使用Telegraf和influxdb的好处
(1)在数据采集和平台监控系统中,Telegraf可以采集多种组件的运行信息,而不需要自己手写脚本定时采集,降低数据获取的难度;
(2)Telegraf配置简单,只要有基本的Linux基础即可快速上手;
(3)Telegraf按照时间序列采集数据,数据结构中包含时序信息,influxdb就是为此类数据设计而来,使用Influxdb可以针采集得到的数据完成各种分析计算操作;
4.Telegraf安装及数据收集
(1)rpm包方式安装
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.13.4-1.x86_64.rpm
(2)源码包方式编译安装
wget https://dl.influxdata.com/telegraf/releases/telegraf-1.13.4_linux_amd64.tar.gz
(3)启动telegraf
systemctl start telegraf
5.修改配置文件
vim /etc/telegraf/telegraf.conf
[[outputs.influxdb]]
urls = ["http://localhost:8086"] # required
database = "telegraf" # required
retention_policy = ""
precision = "s"
timeout = "5s"
username = "telegraf"
password = "password"
6.influxdb数据库安装
(1) rpm包方式安装
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10.x86_64.rpm
(2) 源码包方式安装
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.10_linux_amd64.tar.gz
7.启动influxdb数据库
systemctl start influxdb
8.浏览器登陆influxdb数据库的方式:
IP+8083端口号,即可
在查询框中输入查询语句查询需要的信息
9.influxdb概念
database 数据库
measurement 数据库中的表
points 表里面的一行数据
独有的概念:
time 时间戳,每条数据记录的时间,也是数据库自动生成的主索引
fields 记录的值,四种数据类型:int、float、string、boolean
tags 带有索引的属性
series 表示此表里面的所有数据可以在图标上画成几条线
10.使用influxdb,以创建数据库test为例
输入influx进入influxdb数据库
创建用户:
> create user "test_user" with password ‘test_password‘
查看用户:
>show users;
创建数据库:
> create database test
查看数据库:
> show databases
使用数据库:
> use test
删除数据库:
> drop database test
查看此数据库拥有的表:
> show measurements
influxdb数据库没有显式的新建表的语句,只能通过insert数据的方式建立新表:
> insert test_mea,host=192.168.147.128,hostname=localhost value=value1,value2=value2,value3=value3,value4=value4
# 说明 test_mea:为表名;host:是索引(tag);value=后面是值,可以跟多个。时间戳系统自带
查看索引:
> show tag keys from test_mea;
查看记录:
> show field keys from test_mea;
查看插入的数据:
> select * from test_mea;
退出influxdb:
> exit
以上是关于influxDB 基础了解的主要内容,如果未能解决你的问题,请参考以下文章