以下配置文件是InfluxDB-v1.7.8版本通过执行命令“influxd config”生成的,通常情况下我们可以保持参数的默认值,也可以根据自己的场景来设置不同的参数值。下面我们来看一下配置文件的常用配置项的含义。
全局配置的配置信息如下。
reporting-disabled = false # 配置是否上报InfluxDB使用信息到usage.influxdata.com,默认为false,上报InfluxDB使用信息 bind-address = "127.0.0.1:8088" # RPC服务对应的地址,用于备份数据通信等,默认监听8088端口
META节点配置的配置信息如下。
[meta] dir = "/root/.influxdb/meta" # META数据和Raft数据库的存储目录 retention-autocreate = true # 是否在创建数据库时创建默认保留策略autogen,默认为true logging-enabled = true # 是否开启META日志,默认为true
DATA节点配置的配置信息如下。
[data] dir = "/root/.influxdb/data" # TSM文件的存储目录 index-version = "inmem" # 分片索引类型 wal-dir = "/root/.influxdb/wal" # WAL文件的存储目录 wal-fsync-delay = "0s" # 在同步写入之前等待的总时间,默认值为0秒 validate-keys = false # 检查写请求中的表名、标签键、标签值是否具有有效的UNICODE字符 此设置将产生额外的性能开销,因为必须检查每条时序数据的表名、标签键、标签值,默认值为false query-log-enabled = true # 是否开启查询日志,默认值为true cache-max-memory-size = 1073741824 # 设置分片缓存最大值,大于该值时拒绝写入,默认为1G,当前单位是byte cache-snapshot-memory-size = 26214400 # 用于设置快照大小,大于该值时数据会写入到TSM格式的文件中,默认值是25MB cache-snapshot-write-cold-duration = "10m0s" # TSM引擎快照写入磁盘延时,默认值为10分钟 compact-full-write-cold-duration = "4h0m0s" # TSM文件在压缩前可以存储的最大时间,默认值为4Hour compact-throughput = 50331648 # 设置TSM压缩写入磁盘的速率限制(以字节/秒为单位) compact-throughput-burst = 50331648 # 设置TSM压缩写入磁盘的峰值速率限制,以每秒字节数为单位 max-series-per-database = 1000000 # 设置数据库的时间序列线最大值,该值为0时表示无限制,默认值为1000000 max-values-per-tag = 100000 # 设置一个标签键对应标签值的最大数量,0表示无限制,默认值为100000 max-concurrent-compactions = 0 # TSM压缩的最大并发数,默认值为0,表示runtime.GOMAXPROCS(0)*50% ,否则以设置的非零值为准 max-index-log-file-size = 1048576 # WAL文件压缩到TSI索引文件的阈值,默认为1m,单位为byte series-id-set-cache-size = 100 # TSI索引引擎用于存放处理后的时序结果的内部缓存大小 trace-logging-enabled = false # TSM引擎和WAL模块的调试日志记录,提供了更详细的输出,默认为false tsm-use-madv-willneed = false # 如果为true,MMAP的建议值MADV_WILLNEED会被提供给内核
Coordinator配置的配置信息如下。
[coordinator] write-timeout = "10s" # 写超时阈值,默认值为10秒 max-concurrent-queries = 0 # 最大并发查询数,0表示无限制,默认值为0 query-timeout = "0s" # 查询操作超时阈值,0表示无限制,默认为0秒 log-queries-after = "0s" # 慢查询超时阈值,超时后,生成一条慢查询日志,0表示禁用该功能,默认值为0秒 max-select-point = 0 # 一次select操作可以处理的最大时序数据记录条数,0表示无限制,默认值为0 max-select-series = 0 # 一次select操作可以处理的最大时间序列线数量,0表示无限制,默认值为0 max-select-buckets = 0 #一次select操作可以创建的group by时间段的最大数量,0表示无限制,默认值为0
保留策略配置的配置信息如下。
[retention] enabled = true # 是否开启保留策略功能,默认为true check-interval = "30m0s" # 检查的时间间隔,默认值为30分钟
分片预创建配置的配置信息如下。
[shard-precreation] enabled = true # 是否开启分片预创建服务,默认值为true check-interval = "10m0s" # 检查时间间隔,默认值为10分钟 advance-period = "30m0s" # 创建分片组的最大提前时间间隔,默认为30分钟
Monitor配置的配置信息如下。
[monitor] store-enabled = true # 是否开启Monitor功能,默认值为true store-database = "_internal" # 默认数据库名 store-interval = "10s" # 统计时间间隔,默认值为10秒
Subscriber配置的配置信息如下。
[subscriber] enabled = true # 是否开启Subscriber服务,默认值为true http-timeout = "30s" # HTTP通信超时阈值,默认值为30秒 insecure-skip-verify = false # 是否准许接入自签名证书的HTTPS连接,默认值为false ca-certs = "" # 设置CA证书的存储目录 write-concurrency = 40 # 设置写并发数,默认值为40 write-buffer-size = 1000 # 设置写缓存大小,默认值为1000
HTTP服务配置的配置信息如下。
[http] enabled = true # 是否开启HTTP服务 bind-address = ":8086" # HTTP服务的地址信息 auth-enabled = false # 是否开启认证,默认为false log-enabled = true # 是否开启HTTP请求日志,默认为true suppress-write-log = false # 当启用HTTP请求日志时,是否关闭HTTP写请求日志 write-tracing = false # 是否开启写操作日志,如果设置成true,每一次写操作都会打开日志,默认值为false flux-enabled = false # 是否开启flux查询协议,默认值为false flux-log-enabled = false # 是否开启flux查询日志,默认值为false pprof-enabled = true # 是否开启pprof,默认值为true debug-pprof-enabled = false # 是否开启pprof,并绑定localhost:6060,默认值为false https-enabled = false # 是否开启HTTPS功能,默认值为false https-certificate = "/etc/ssl/influxdb.pem" # 设置HTTPS证书的路径 https-private-key = "" # 设置HTTPS私钥的存储路径 max-row-limit = 0 # 配置查询返回最大行数,0表示无限制,默认值为0 max-connection-limit = 0 # 配置最大连接数,0表示无限制,默认值为0 shared-secret = "" # 用于JWT签名的共享密钥,无默认值 realm = "InfluxDB" # 配置realm, 默认值为InfluxDB unix-socket-enabled = false # 是否启用UNIX域socket通信,默认为false unix-socket-permissions = "0777" # 设置UNIX域socket的权限 bind-socket = "/var/run/influxdb.sock" # 设置UNIX域socket的路径 max-body-size = 25000000 # 客户端请求主体的最大值,以字节为单位 access-log-path = "" # HTTP请求日志的存储目录 max-concurrent-write-limit = 0 # 并发处理的写请求的最大数量,0表示无限制,默认值为0 max-enqueued-write-limit = 0 # 排队等待处理的写请求的最大数量,0表示无限制,默认值为0 enqueued-write-timeout = 30000000000 # 在队列中等待处理的写请求的超时阈值,单位为秒
Logging配置的配置信息如下。
[logging] format = "auto" # 日志格式,默认为auto,其他可选格式为logfmt和json level = "info" # 日志级别,默认为info,其他可选级别为error、warn和debug suppress-logo = false # 当程序启动时,是否禁用打印LOGO信息,默认为false
Graphite接入配置的配置信息如下。
[[graphite]] enabled = false # 是否启用该模块,默认值为false bind-address = ":2003" # Graphite接入服务的地址信息 database = "graphite" # 数据库名称 retention-policy = "" # 配置保留策略,默认为保留策略默认值 protocol = "tcp" # 通信协议 batch-size = 5000 # 批处理阈值,默认值为5000 batch-pending = 10 # 在内存中等待批处理的最大数 batch-timeout = "1s" # 批处理等待阈值,默认值为1秒 consistency-level = "one" # 一致性级别 separator = "." # 多个表名间的连接符 udp-read-buffer = 0 # UDP读缓存的大小,0表示使用操作系统提供的值
CollectD接入配置的配置信息如下。
[[collectd]] enabled = false # 是否启用该模块,默认值为false bind-address = ":25826" # CollectD接入服务的地址信息 database = "collectd" # 数据库名 retention-policy = "" # 配置保留策略,默认为保留策略默认值 batch-size = 5000 # 批处理阈值,默认值为5000 batch-pending = 10 # 在内存中等待批处理的阈值,默认值为10 batch-timeout = "10s" # 批处理等待阈值,默认值为10秒 read-buffer = 0 # UDP读缓存的大小,0表示使用操作系统提供的值 typesdb = "/usr/share/collectd/types.db" # DB文件存放目录 security-level = "none" # 安全级别,默认值为none auth-file = "/etc/collectd/auth_file" # 认证文件存放位置 parse-multivalue-plugin = "split" # 两种处理方式split和join,split将不同插件的数据存储到不同的表中,join将多个插件的数据作为一个表存储,默认值为split
OpenTSDB接入配置的配置信息如下。
[[opentsdb]] enabled = false # 是否启用该模块,默认值为false bind-address = ":4242" # OpenTSDB接入服务的地址信息 database = "opentsdb" # 存储的数据库名 retention-policy = "" # 配置保留策略,默认为保留策略默认值 consistency-level = "one" # 一致性级别,默认值为one tls-enabled = false # 是否开启TLS,默认值为false certificate = "/etc/ssl/influxdb.pem" # 证书存储路径 batch-size = 1000 # 批处理阈值,默认值为1000 batch-pending = 5 # 在内存中等待批处理的最大数 batch-timeout = "1s" # 批处理等待阈值,默认值为1秒 log-point-errors = true #当检测到数据格式异常时,输出错误日志,默认值为true
UDP协议接入配置的配置信息如下。
[[udp]] enabled = false # 是否启用该模块,默认值为false bind-address = ":8089" # UDP协议接入服务的地址信息 database = "udp" # 数据库名 retention-policy = "" # 配置保留策略,默认为保留策略默认值 batch-size = 5000 # 批处理阈值,默认值为5000 batch-pending = 10 # 在内存中等待批处理的最大数,默认值为10 read-buffer = 0 # UDP读缓存的大小,0表示使用操作系统提供的值 batch-timeout = "1s" # 批处理等待阈值,默认值为1秒 precision = "" # 解析时间戳的精度值,默认使用数据库默认值,即纳秒
连续查询配置的配置信息如下。
[continuous_queries] log-enabled = true # 是否开启日志,默认值为true enabled = true # 是否启用该模块,默认值为true query-stats-enabled = false # 是否记录连续查询执行的统计信息,默认值为false run-interval = "1s" # 连续查询定时运行的时间间隔,默认值为1秒
TLS配置的配置信息如下。
[tls] min-version = "" # 支持的TLS协议的最低版本,有效值包括tls1.0、tls1.1、和tls1.2。如果未指定,min-version则是Go crypto/tls包中指定的最小TLS版本 max-version = "" # 支持的TLS协议的最大版本。有效值包括tls1.0、tls1.1、和tls1.2。如果未指定,max-version则是Go crypto/tls包中指定的最大TLS版本