influxdb配置文件
开始一个软件,从读懂它的配置文件开始。以下是读取3.1配置文档的笔记
总结来说,influxdb的配置文件可配置的地方几乎没有。参数性能调优貌似不存在,其中是否开启,是否记录日志都占据了好多部分。额外需要关注的是data章节有一些关于fsync的设置默认是0,还有默认的max-series-per-database和max-value-per-tag默认都存在限制。暂时不太清楚原理是什么(更新:因为influxdb最大的软肋就在series的数量上。tag的数据都保存在内存。所以有极大的限制。可以看到官方硬件要求,100万的series需要4-6核心CPU,8-32GB内存,iops要求1000+。对比一下influxdb提供的云服务,100万的series需要每月1500刀!!!)。当保存大量数据的时候肯定会报错,另外默认的慢查询日志是没有打开的。对于请求。默认没有限制最大的返回内容数。以及限制单个查询响应的时间
使用配置文件
- 使用
influxd config
查看默认的配置 - 使用
influxd -config config_path
或者INFLUXDB_CONFIG_PATH
启动
环境变量
配置优先级为: 环境变量 > 文件配置 > 默认设置
全局选项
- reporting-disabled 发送数据统计给influxdb
- bind-address 绑定监听地址(RPC)
- GOMAXPROCS 最大进程数
[meta]
- dir meta数据保存地址(一般设置一个base_dir)
- retention-autocreate 自动创建保留策略。默认永久保留
- logging-enabled 开启meta日志记录
[data]
- dir 数据保存地址
- index-version 决定分片索引保存内存还是磁盘
- wal-dir 预写日志保存地址
- wal-fsync-delay 预写日志刷新延迟(非ssd磁盘建议0-100ms)
- trace-logging-enabled TSM引擎和WAL日志
- query-log-enabled 是否记录查询日志
- cache-max-memory-size 最大缓存容量,占满会拒绝写入
- cache-snapshot-memory-size 缓存快照大小。满后会将内存内容写入到TSM文件
- cache-snapshot-write-cold-duration 如果一个分片没有被写入或者删除会被写入到TSM文件的时间
- compact-full-write-cold-duration 同上,没有写入或者删除的压缩时间
- max-concurrent-compactions 并发压缩进程数
- max-series-per-database 每个数据库最大的series数量。超过会500错误。0表示无限制(为什么需要限制呢?)
- max-values-per-tag 每个tag索引的值个数(同疑问为什么限制为十万)
[coordinator]
- write-timeout 写入超时时间10秒
- max-concurrent-queries 最大并发查询数默认无限制
- query-timeout 查询超时时间默认无限制
- log-queries-after 慢查询检测。为慢查询则记录日志
- max-select-point 最大的points数量。默认无限制
- max-select-series 最大的series数量。默认无限制
- max-select-buckets 最大的GROUP BY time()数量。默认无限制
[retention]
- enable 设置为false则禁止删除数据
- check-interval 检查周期默认三十分钟
[shard-precreation]
- enable 开启数据到达前先创建shard
- check-interval 检查周期
- advance-period 预创建shard的最大时间
[admin]
官方完全废弃,不可用。由xx替代(注:还是用grafana吧)
[monitor]
系统自身监控。默认数据会保存到_internal数据库
- store-enabled 是否存储监控信息
- store-database 保存数据库的名称
- store-interval 记录间隔。默认十秒
[subscriber]
这个部分是控制Kapacitor如何接收数据。应该没什么用处
- enabled
- http-timeout
- insecure-skip-verify
- ca-certs
- write-concurrency
- write-buffer-size
[http]
除了RPC调用。就是RESTFUL方式的api读写了
- enable 是否打开
- bind-address 绑定地址
- auth-enabled 打开验证
- realm JWT验证相关
- log-enabled 记录日志
- write-tracing 应该是调试使用。会记录写入的payload
- pprof-enabled 开启性能记录
- https-enabled 开启https
- https-certificate https证书
- https-private-key https私钥
- shared-secret 用于JWT的签名。想想单机应该是用不到的
- max-row-limit 最大单次可以上传的point,默认无限制
- max-connection-limit 最大可连接数,默认无限制
- unix-socket-enabled 开启unix域连接
- bind-socket 绑定socket域
- max-body-size 最大body长度,默认25MB,超过大小返回http413请求实体过大错误
[[graphite]]
(service plugin)设置一个或多个graphite数据监听器
- enabled 启用graphite
- database 数据库名称
- retention-policy 保留策略
- bind-address 绑定地址
- protocol 协议tcp或udp
- consistency-level 一致性级别
- batch-size
- batch-pending
- batch-timeout
- udp-read-buffer
- separator
[[collectd]]
(service plugin)同上,设置监听collectd数据
- enabled
- bind-address
- database
- retention-policy
- typesdb
- security-level
- auth-file
- batch-size
- batch-pending
- batch-timeout
- read-buffer
[[opentsdb]]
(service plugin)同上,设置监听opentsdb数据
- enabled
- bind-address
- database
- retention-policy
- consistency-level
- tls-enabled
- certificate
- log-point-errors
- batch-size
- batch-pending
- batch-timeout
[[udp]]
(service plugin)除了RPC、HTTP、附带UDP
- enabled
- bind-address
- database
- retention-policy
- batch-size
- batch-pending
- batch-timeout
- read-buffer
- precision
[continuous_queries]
持续查询
- enabled 开启
- query-stats-enabled 默认关闭,将执行统计写入到默认的监控数据库
- log-enabled 记录日志
- run-interval 查找执行间隔