InfluxDB相关介绍

配置文件

InfluxDB安装完成后,会生成两个命令

influx CLI命令
influxd 启动命令

Influxdb的配置文件是针对于本地节点的。

Influxdb的配置文件是可以向前兼容的,但是旧版本的可能缺少一些对于新特性的配置项。所以最好是对于每一次升级,取一个新的配置文件。别忘了把旧文件里的任何改变全部转移到新文件中,新生成的配置文件无法自动复刻本地运行的旧配置。
InfluxDB几乎每月都会有更新,我也会坚持更新文档,如果你发现你的配置文件少于本文章,只不过版本不同,不影响,因为向前兼容的呦。

生成一个配置文件:
运行 influxd config并重定向到指定文件
例如:influxd config > /etc/influxdb/influxdb.generated.conf

修改这个文件里即可。当运行influxdb时,用 –config 指定配置文件:
influxd -config /etc/influxdb/influxdb.generated.conf
此外,你可以在任何时候输入命令influxd config 生成一个可用的配置文件。并重定向到一个文件来保存。
如果没有使用-config 参数,InfluxDB会使用一个内部默认的配置文件(等价于influxd config 生成的)

注意:influxd 命令有两个简单命名的操作项(flag),config 可以打印一个默认配置文件到标准输出,但并不是一个启动项,-config 带一个参数,指定InfluxDB的启动项

[global/reporting]

运行节点会报告InfluxDB节点的版本,InfluxDB公司根据这些信息来对InfluxDB进行开发和维护,并不会记录你的信息。

reporting-disabled = false

24小时发送一次匿名消息到m.influxdb.com ,包含一个随机八位id,os,系统架构,InfluxDB版本,数据库表元信息。

[meta]

enabled = true
dir = “/var/opt/.influxdb/meta”
bind-address = “:8087”
http-bind-address = “:8091”
https-enabled = false
https-certificate = “”
retention-autocreate = true
election-timeout = “1s”
heartbeat-timeout = “1s”
leader-lease-timeout = “500ms”
commit-timeout = “50ms”
cluster-tracing = false
raft-promotion-enabled = true
logging-enabled = true
pprof-enabled = false
lease-duration = “1m0s”

[data]

这一部分控制实现数据的实际存储和WAL(write ahead log)刷新的。大部分情况下,默认的WAL配置就可以了。

dir = “/var/opt/influxdb/data”

数据存储目录

engine = “bz1”

数据库引擎支持时序数据的存储引擎。有三种存储结构:
b1 BoltDB 支持时序数据引擎 0.9.0-0.9.2
bz1 BoltDB 支持时序数据压缩引擎 0.9.3-0.9.6
tsm1 自开发引擎

max-wal-size = 104857600

适用于b1引擎 WAL flush前的最大容量,默认100M

wal-flush-interval = “10m0s”

适用于b1引擎 WAL flush前存储的最长时间

wal-partition-flush-delay = “2s”

适用于b1引擎 WAL partition之间flush间隔

wal-dir = “/var/opt/influxdb/wal”

适用于bz1引擎 WAL本地存储地址,从吞吐角度考虑,最好和data物理存储分在不同的物理设备上

wal-logging-enabled = true

适用于bz1引擎 WAL日志可触发刷盘

wal-ready-series-size = 30720

适用于bz1引擎 表示一个序列(表)在内存中一次刷入磁盘的大小(b)

wal-compaction-threshold = 0.5

适用于bz1引擎 超过wal-ready-series-size 的比例,以触发刷盘和压缩

wal-max-series-size = 1048576

适用于bz1引擎 表示一个分区中序列的最大值(b)。只要超过这个值就会强制刷盘和压缩。

wal-flush-cold-interval = “5s”

适用于bz1引擎

wal-partition-size-threshold = 52428800

适用于bz1引擎 设置分区最大值(b),当达到这个阀值时,会触发强制刷盘,一共有5个分区,所以内存至少是这个5倍

query-log-enabled = true

是否存储query日志

cache-max-memory-size = 524288000

适用于tsm1引擎 WAL内存最大值

cache-snapshot-memory-size = 26214400

适用于tsm1引擎 引擎创建的snapshot 然后写入tsm文件的大小

cache-snapshot-write-cold-duration = “1h0m0s”

适用于tsm1引擎 snapshot写盘延迟

compact-min-file-count = 3

适用于tsm1引擎 压缩前最小的tsm文件数量

compact-full-write-cold-duration = “24h0m0s”

适用于tsm1引擎 没有任何触发操作,tsm文件在压缩前可以存储的最大时间

max-points-per-block = 0

适用于tsm1引擎

[cluster]

force-remote-mapping = false
write-timeout = “5s”
shard-writer-timeout = “5s”
max-remote-write-connections = 3
shard-mapper-timeout = “5s”

[retention]

这一部分控制删除旧数据的策略

enabled = true

check-interval = “30m0s”

检测的时间间隔

[shard-precreation]

分区预创建

enabled = true
check-interval = “10m0s”
advance-period = “30m0s”

[admin]

enabled = true
bind-address = “:8083”
https-enabled = false
https-certificate = “/etc/ssl/influxdb.pem”

[monitor]

这一部分控制InfluxDB自有的监控系统。
默认情况下,InfluxDB把这些数据写入_internal 数据库,如果这个库不存在则自动创建。_internal 库默认的retention策略是7天,如果你想使用一个自己的retention策略,需要自己创建。

store-enabled = true

store-database = “_internal”

store-interval = “10s”

InfluxDB统计日志的间隔

[subscriber]

应用向InfluxDB注册的接口
enabled = true

[http]

这一部分控制http端

enabled = true

CLI应用的也是http api,所以如果关掉基本不能用了。

bind-address = “:8086”

auth-enabled = false

配合权限控制使用。

log-enabled = true

write-tracing = false

如果置成true,每一次写操作都会打日志,相当于制造一个副本,并不推荐使用

pprof-enabled = false

https-enabled = false

https-certificate = “/etc/ssl/influxdb.pem”

[collectd]

enabled = false
bind-address = “:25826”
database = “collectd”
retention-policy = “”
batch-size = 5000
batch-pending = 10
batch-timeout = “10s”
read-buffer = 0
typesdb = “/usr/share/collectd/types.db”

[opentsdb]

enabled = false
bind-address = “:4242”
database = “opentsdb”
retention-policy = “”
consistency-level = “one”
tls-enabled = false
certificate = “/etc/ssl/influxdb.pem”
batch-size = 1000
batch-pending = 5
batch-timeout = “1s”
log-point-errors = true

[continuous_queries]

CQ的控制信息
log-enabled = true
enabled = true
run-interval = “1s”

[hinted-handoff]

这一部分控制节点切换,对于队列数据,一个节点临时性的存储一段时间,单节点不可用
enabled = false
dir = “/var/opt/.influxdb/hh”
max-size = 1073741824
max-age = “168h0m0s”
retry-rate-limit = 0
retry-interval = “1s”
retry-max-interval = “1m0s”
purge-interval = “1h0m0s”

是需要root权限的,这里暂不说明

参考:
https://docs.influxdata.com/influxdb/v0.9/query_language/database_management/#retention-policy-management