一、简介
InfluxDB是一种时序数据库,用来寄存监控数据。InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需内部依赖。
其次要特色性能
1)基于工夫序列,反对与工夫无关的相干函数(如最大,最小,求和等)
2)可度量性:你能够实时对大量数据进行计算
3)基于事件:它反对任意的事件数据
InfluxDB的次要特色
1)无构造(无模式):能够是任意数量的列
2)可拓展的
3)反对min, max, sum, count, mean, median 等一系列函数,不便统计
4)原生的HTTP反对,内置HTTP API
5)弱小的类SQL语法
6)自带治理界面,方便使用
二、下载安装
我应用的是3A服务器搭建的windows server,挺不错的
1、下载influxdb1.8.4,windows安装包如下:
【influxDB】windows装置influxdb1.8.4+管理工具下载链接_旧梦如风F的博客-CSDN博客
ps:官网下载2.0版本短少配置文件,1.8启动就能用双击influxd.exe启动即可
2、解压到安装盘(不必装置),目录为:
批改配置文件
InfluxDB 的数据存储次要有三个目录。默认状况下是 meta, wal 以及 data 三个目录,服务器运行后会主动生成。
meta 用于存储数据库的一些元数据,meta 目录下有一个 meta.db 文件。
wal 目录寄存预写日志文件,以 .wal 结尾。
data 目录寄存理论存储的数据文件,以 .tsm 结尾。
如果不应用influxdb.conf配置的话,那么间接双击关上influxd.exe就能够应用influx,此时下面三个文件夹的目录则寄存在Windows零碎的C盘User目录下的.Influx目录下,
默认端口为8086,以下为批改文件夹地址,以及端口号办法。
1、批改以下局部门路
2、如果须要更改端口号,则批改以下局部配置
批改配置后启动形式
InfluxDB 应用时须要首先关上Influxd.exe,间接关上会应用默认配置,须要应用已配置的配置文件的话,须要指定conf文件进行启动,启动命令:influxd --config influxdb.conf如果呈现下列状况,启动失败,还须要批改influxdb.con
在influxdb.conf中批改如下一行,批改地址并且关上正文,批改后保留
再次运行 influxd --config influxdb.conf 命令
呈现如下信息启动胜利
ps:启动运行influxd命令的话,应用默认配置,关上默认8086端口号的服务
4、启动influxd后,窗口不要敞开。再启动一个cmd窗口,执行如下命令:influx
ps:InfluxDB自带一个客户端程序influx,可用来增删改查等操作数据库
ps:扩大
influxdb应用的端口如下:
8083:InfluxDB 的 Web 治理界面端口,web治理端 http://ip:8083 用户名和明码都是admin,
8086:HTTP API 监听端口
8088:集群端口(目前还不是很分明, 配置在全局的bind-address,默认不配置就是开启的)
全局配置
reporting-disabled = false # 该选项用于上报influxdb的应用信息给InfluxData公司,默认值为false
bind-address = ":8088" # 备份复原时应用,默认值为8088
1、meta相干配置
[meta]
dir = "/var/lib/influxdb/meta" # meta数据寄存目录
retention-autocreate = true # 用于管制默认存储策略,数据库创立时,会主动生成autogen的存储策略,默认值:true
logging-enabled = true # 是否开启meta日志,默认值:true
2、data相干配置
[data]
dir = "/var/lib/influxdb/data" # 最终数据(TSM文件)存储目录
wal-dir = "/var/lib/influxdb/wal" # 预写日志存储目录
query-log-enabled = true # 是否开启tsm引擎查问日志,默认值: true
cache-max-memory-size = 1048576000 # 用于限定shard最大值,大于该值时会回绝写入,默认值:1000MB,单位:byte
cache-snapshot-memory-size = 26214400 # 用于设置快照大小,大于该值时数据会刷新到tsm文件,默认值:25MB,单位:byte
cache-snapshot-write-cold-duration = "10m" # tsm引擎 snapshot写盘提早,默认值:10Minute
compact-full-write-cold-duration = "4h" # tsm文件在压缩前能够存储的最大工夫,默认值:4Hour
max-series-per-database = 1000000 # 限度数据库的级数,该值为0时勾销限度,默认值:1000000
max-values-per-tag = 100000 # 一个tag最大的value数,0勾销限度,默认值:100000
3、coordinator查问治理的配置选项
[coordinator]
write-timeout = "10s" # 写操作超时工夫,默认值: 10s
max-concurrent-queries = 0 # 最大并发查问数,0无限度,默认值: 0
query-timeout = "0s # 查问操作超时工夫,0无限度,默认值:0s
log-queries-after = "0s" # 慢查问超时工夫,0无限度,默认值:0s
max-select-point = 0 # SELECT语句能够解决的最大点数(points),0无限度,默认值:0
max-select-series = 0 # SELECT语句能够解决的最大级数(series),0无限度,默认值:0
max-select-buckets = 0 # SELECT语句能够解决的最大"GROUP BY time()"的工夫周期,0无限度,默认值:0
4、retention旧数据的保留策略
[retention]
enabled = true # 是否启用该模块,默认值 : true
check-interval = "30m" # 查看工夫距离,默认值 :"30m"
5、shard-precreation分区预创立
[shard-precreation]
enabled = true # 是否启用该模块,默认值 : true
check-interval = "10m" # 查看工夫距离,默认值 :"10m"
advance-period = "30m" # 预创立分区的最大提前工夫,默认值 :"30m"
6、monitor 管制InfluxDB自有的监控零碎。 默认状况下,InfluxDB把这些数据写入_internal 数据库,如果这个库不存在则主动创立。 _internal 库默认的retention策略是7天,如果你想应用一个本人的retention策略,须要本人创立。
[monitor]
store-enabled = true # 是否启用该模块,默认值 :true
store-database = "_internal" # 默认数据库:"_internal"
store-interval = "10s # 统计距离,默认值:"10s"
7、admin web治理页面
[admin]
enabled = true # 是否启用该模块,默认值 : false
bind-address = ":8083" # 绑定地址,默认值 :":8083"
https-enabled = false # 是否开启https ,默认值 :false
https-certificate = "/etc/ssl/influxdb.pem" # https证书门路,默认值:"/etc/ssl/influxdb.pem"
8、http API
[http]
enabled = true # 是否启用该模块,默认值 :true
bind-address = ":8086" # 绑定地址,默认值:":8086"
auth-enabled = false # 是否开启认证,默认值:false
realm = "InfluxDB" # 配置JWT realm,默认值: "InfluxDB"
log-enabled = true # 是否开启日志,默认值:true
write-tracing = false # 是否开启写操作日志,如果置成true,每一次写操作都会打日志,默认值:false
pprof-enabled = true # 是否开启pprof,默认值:true
https-enabled = false # 是否开启https,默认值:false
https-certificate = "/etc/ssl/influxdb.pem" # 设置https证书门路,默认值:"/etc/ssl/influxdb.pem"
https-private-key = "" # 设置https私钥,无默认值
shared-secret = "" # 用于JWT签名的共享密钥,无默认值
max-row-limit = 0 # 配置查问返回最大行数,0无限度,默认值:0
max-connection-limit = 0 # 配置最大连接数,0无限度,默认值:0
unix-socket-enabled = false # 是否应用unix-socket,默认值:false
bind-socket = "/var/run/influxdb.sock" # unix-socket门路,默认值:"/var/run/influxdb.sock"
9、subscriber 管制Kapacitor承受数据的配置
[subscriber]
enabled = true # 是否启用该模块,默认值 :true
http-timeout = "30s" # http超时工夫,默认值:"30s"
insecure-skip-verify = false # 是否容许不平安的证书
ca-certs = "" # 设置CA证书
write-concurrency = 40 # 设置并发数目,默认值:40
write-buffer-size = 1000 # 设置buffer大小,默认值:1000
10、graphite 相干配置
[[graphite]]
enabled = false # 是否启用该模块,默认值 :false
database = "graphite" # 数据库名称,默认值:"graphite"
retention-policy = "" # 存储策略,无默认值
bind-address = ":2003" # 绑定地址,默认值:":2003"
protocol = "tcp" # 协定,默认值:"tcp"
consistency-level = "one" # 一致性级别,默认值:"one
batch-size = 5000 # 批量size,默认值:5000
batch-pending = 10 # 配置在内存中期待的batch数,默认值:10
batch-timeout = "1s" # 超时工夫,默认值:"1s"
udp-read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。 该配置的默认值:0
separator = "." # 多个measurement间的连接符,默认值: "."
11、collectd
[[collectd]]
enabled = false # 是否启用该模块,默认值 :false
bind-address = ":25826" # 绑定地址,默认值: ":25826"
database = "collectd" # 数据库名称,默认值:"collectd"
retention-policy = "" # 存储策略,无默认值
typesdb = "/usr/local/share/collectd" # 门路,默认值:"/usr/share/collectd/types.db"
auth-file = "/etc/collectd/auth_file"
batch-size = 5000
batch-pending = 10
batch-timeout = "10s"
read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。默认值:0
12、opentsdb
[[opentsdb]]
enabled = false # 是否启用该模块,默认值:false
bind-address = ":4242" # 绑定地址,默认值:":4242"
database = "opentsdb" # 默认数据库:"opentsdb"
retention-policy = "" # 存储策略,无默认值
consistency-level = "one" # 一致性级别,默认值:"one"
tls-enabled = false # 是否开启tls,默认值:false
certificate= "/etc/ssl/influxdb.pem" # 证书门路,默认值:"/etc/ssl/influxdb.pem"
log-point-errors = true # 出错时是否记录日志,默认值:true
batch-size = 1000
batch-pending = 5
batch-timeout = "1s"
13、udp
[[udp]]
enabled = false # 是否启用该模块,默认值:false
bind-address = ":8089" # 绑定地址,默认值:":8089"
database = "udp" # 数据库名称,默认值:"udp"
retention-policy = "" # 存储策略,无默认值
batch-size = 5000
batch-pending = 10
batch-timeout = "1s"
read-buffer = 0 # udp读取buffer的大小,0示意应用操作系统提供的值,如果超过操作系统的默认配置则会出错。 该配置的默认值:0
14、continuous_queries
[continuous_queries]
enabled = true # enabled 是否开启CQs,默认值:true
log-enabled = true # 是否开启日志,默认值:true
run-interval = "1s" # 工夫距离,默认值:"1s"
五、InfluxDB数据库常用命令
1、显示数据库:show databases
2、创立数据库:create database myfirstdb
3、应用数据库:use myfirstdb
4、显示所有表:show measurements
没有表则无返回。
5、新建表和插入数据
新建表没有具体的语法,只是减少第一条数据时,会主动建设表
insert results,hostname=index1 value=1
这里的工夫看不懂,能够设置一下工夫显示格局
precision rfc3339
6、 查问数据
表名有点号时,输出双引号
和sql语法雷同,区别:
measurement 数据库中的表
points 表外面的一行数据,Point由工夫戳(time)、数据(field)、标签(tags)组成。
7、 用户显示
a. 显示所有用户:show users
b.新增用户
--普通用户
create user "user" with password 'user'
--管理员用户
create user "admin" with password 'admin' with all privileges
c.删除用户
drop user "user"
InfluxDB常用命令(这里暂不做操作,仅供学习)
查看数据库列表
show databases
查看表列表
show measurements
创立数据库
create database 数据库名
删除数据库
drop database 数据库名
删除表
drop measurements 表名
应用数据
use 数据库名
sql语句和MySQL等关系型数据库很类似
select * from 表名 where 列名 = 值
ps:influxdb与传统数据库的比拟
库、表等比拟:
influxDB
传统数据库中的概念
database
数据库
measurement
数据库中的表
points
表外面的一行数据
influxdb数据的形成:
Point由工夫戳(time)、数据(field)、标签(tags)组成。
Point属性
传统数据库中的概念
time
每个数据记录时间,是数据库中的主索引(会主动生成)
fields
各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags
各种有索引的属性:地区,海拔
这里不得不提另一个名词:series:
所有在数据库中的数据,都须要通过图表来展现,而这个series示意这个表外面的数据,能够在图表上画成几条线:通过tags排列组合算进去。具体能够通过SHOW SERIES FROM "表名" 进行查问。