一、简介
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 "表名" 进行查问。