配置文件
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权限的,这里暂不说明