配置InfluxDB企业版数据节点
数据节点配置设置
系统为每个配置文件设置提供内部默认值。使用influxd config
命令查看默认设置。本地配置文件(/etc/influxdb/influxdb.conf
)覆盖任何内部默认值,但不需要包含每个配置设置。从版本1.0.1开始,本地配置文件中的大多数设置都被注释掉了。所有被注释掉的设置将由内部默认值确定。
全局设置
reporting-disabled
默认值为false
。
每隔24小时,InfluxDB企业版将向usage.influxdata.com报告使用数据。数据包括随机ID、操作系统、架构、版本、系列数量和其他使用数据。用户数据库的数据永远不会被传输。将此选项更改为true以禁用报告。
bind-address
默认值为":8088"
。
RPC服务用于节点间通信和备份和恢复的TCP绑定地址。
环境变量:INFLUXDB_BIND_ADDRESS
hostname
默认值为"localhost"
。
数据节点的数据节点的主机名。这必须由集群中的所有其他节点解析。
环境变量:INFLUXDB_HOSTNAME
gossip-frequency
默认值为"3s"
。
多久更新一次集群与此节点的内部状态。
环境变量:INFLUXDB_GOSSIP_FREQUENCY
compact-series-file
默认值为false
。
确定是否在启动时压缩系列文件。如果为true
,InfluxDB在启动influxd
服务器之前运行influxd_inspect -compact-series-file
。
系列文件压缩
系列文件存储在InfluxDB数据目录内的_series
目录中。默认:/var/lib/data/<db-name>/_series
。
在启动时压缩系列文件
- 如果任何系列文件损坏,数据节点上的
influx_inspect
或influxd
进程可能无法启动。在这两种情况下,在重新启动数据库之前删除系列文件目录。在重新启动时,InfluxDB会自动生成必要的系列目录和文件。 - 在启动数据库之前检查系列文件是否损坏,请运行数据库离线时的
influx_inspect verify-seriesfile
命令。 - 如果系列文件很大(20+吉字节),在启动数据库之前删除系列文件目录可能更快。
企业许可证设置
[企业]
[企业]
部分包含元节点注册到InfluxDB企业许可证门户的参数。
license-key
默认值是 ""
。
为您的实例在 InfluxPortal 上创建的许可证密钥。元节点通过端口 80 或端口 443 将许可证密钥发送到 portal.influxdata.com,并返回一个临时的JSON许可证文件。服务器将在本地缓存许可证文件。没有有效的许可证文件,数据处理功能将只能有限期工作。如果您的服务器无法与 https://portal.influxdata.com 通信,必须使用 license-path
设置。
同一集群中的所有节点应使用相同的密钥。license-key
和 license-path
设置互斥,其中一个必须设置为空字符串。
注意:您必须触发数据节点重新加载您的配置。有关更多信息,请参阅如何 续订或更新您的许可证密钥。
环境变量: INFLUXDB_ENTERPRISE_LICENSE_KEY
license-path
默认值是 ""
。
对于没有互联网访问权限的实例,您从 InfluxData 收到的永久JSON许可证文件的本地路径。没有有效的许可证文件,数据处理功能将只能有限期工作。如需许可证文件,请联系 [email protected]。
许可证文件应保存在集群中的每个服务器上,包括元、数据和企业节点。文件包含JSON格式的许可证,并且必须可由 influxdb
用户读取。集群中的每个服务器独立验证其许可证。
注意:您必须触发数据节点重新加载您的配置。有关更多信息,请参阅如何 续订或更新您的许可证密钥。
同一集群中的所有节点应使用相同的许可证文件。 license-key
和 license-path
设置互斥,其中一个必须设置为空字符串。
环境变量: INFLUXDB_ENTERPRISE_LICENSE_PATH
元节点设置
[meta]
与数据节点如何与元节点交互相关的设置。
dir
默认值为 "/var/lib/influxdb/meta"
。
存储集群元数据的目录。
注意:数据节点确实需要一个本地的元目录。
环境变量: INFLUXDB_META_DIR
meta-tls-enabled
默认值为false
。
在连接到元节点时是否使用 TLS。如果 https-enabled
设置为 true
,则设置为 true
。
环境变量: INFLUXDB_META_META_TLS_ENABLED
meta-insecure-tls
默认值为false
。
允许不安全的 TLS 连接到元节点。这在使用自签名证书进行测试时很有用。
如果 https-enabled
设置为 true
,则设置为 true
以允许数据节点接受自签名证书。
环境变量: INFLUXDB_META_META_INSECURE_TLS
meta-auth-enabled
默认值为false
。
此设置必须与元节点的 [meta] auth-enabled
配置具有相同的值。
如果元节点配置文件中的 auth-enabled
设置为 true
,则设置为 true
。对于 JWT 认证,还可以参阅 meta-internal-shared-secret
配置选项。
环境变量: INFLUXDB_META_META_AUTH_ENABLED
meta-internal-shared-secret
默认值是 ""
。
用于 InfluxDB 节点之间 JWT 认证的内部 API 共享密钥。此值必须与元节点配置文件中指定的 internal-shared-secret
相同。
环境变量: INFLUXDB_META_META_INTERNAL_SHARED_SECRET
retention-autocreate
默认值为 true
。
当系统创建数据库时,会自动创建一个默认的保留策略(RP)。默认的RP(autogen
)具有无限持续时间,分片组持续时间为七天,副本因子设置为集群中数据节点的数量。当写入或查询未指定RP时,系统会针对autogen
RP进行操作。将此选项设置为false
可以防止系统在创建数据库时创建autogen
RP。
环境变量:INFLUXDB_META_RETENTION_AUTOCREATE
logging-enabled
默认值为 true
。
是否为元服务打印日志消息。
环境变量:INFLUXDB_META_LOGGING_ENABLED
password-hash
默认为bcrypt
。
配置密码散列算法。支持的选项包括:bcrypt
(默认),pbkdf2-sha256
和pbkdf2-sha512
。此设置必须与元节点选项meta.password-hash
的值相同。
有关详细配置信息,请参阅meta.password-hash
。
环境变量:INFLUXDB_META_PASSWORD_HASH
ensure-fips
默认值为false
。
当设置为true
时,在启动时启用FIPS兼容性检查。默认为false
。
有关详细配置信息,请参阅meta.ensure-fips
。
环境变量:INFLUXDB_META_ENSURE_FIPS
数据设置
[data]
控制InfluxDB的实际分片数据所在位置以及如何从WAL进行压缩。"dir"可能需要更改为适合您系统的位置。默认值应适用于大多数系统。
dir
默认为"/var/lib/influxdb/data"
。
这是TSM存储引擎存储TSM(读取优化)文件的目录。
环境变量:INFLUXDB_DATA_DIR
wal-dir
默认为"/var/lib/influxdb/wal"
。
这是TSM存储引擎存储WAL(写入优化)文件的目录。
环境变量:INFLUXDB_DATA_WAL_DIR
trace-logging-enabled
默认值为false
。
跟踪日志提供关于TSM引擎的更详细输出。开启此选项可以为调试TSM引擎问题提供更多有用的输出。
环境变量:INFLUXDB_DATA_TRACE_LOGGING_ENABLED
query-log-enabled
默认值为 true
。
在执行之前是否应记录查询。这对于故障排除非常有用,但会记录查询中包含的任何敏感数据。
环境变量:INFLUXDB_DATA_QUERY_LOG_ENABLED
wal-fsync-delay
默认为"0s"
。
写入等待多长时间后进行fsync。使用大于0的持续时间可以批量处理多个fsync调用。这在较慢的磁盘或遇到WAL写入竞争时很有用。值为0s
时,每次写入WAL都会进行fsync。InfluxData建议对于非SSD磁盘,使用从0ms
到100ms
的值。
环境变量:INFLUXDB_DATA_WAL_FSYNC_DELAY
ingress-metric-by-measurement-enabled
默认值为false
。
当设置为true
时,收集每个测量值写入的点、值和新系列统计信息。指标按数据节点收集。如果启用,这些可以通过/debug/vars
端点和_internal
数据库访问。
环境变量:INFLUXDB_DATA_INGRESS_METRIC_BY_MEASUREMENT_ENABLED
ingress-metric-by-login-enabled
默认值为false
。
当设置为true
时,收集每个登录写入的点、值和新系列统计信息。指标按数据节点收集。如果启用,这些可以通过/debug/vars
端点和_internal
数据库访问。
环境变量:INFLUXDB_DATA_INGRESS_METRIC_BY_LOGIN_ENABLED
TSM引擎的数据设置
cache-max-memory-size
默认为1000000000
。
在开始拒绝写入之前,分片缓存可以达到的最大字节数。
如果遇到cache maximum memory size exceeded
错误,请考虑增加此值。
环境变量:INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE
cache-snapshot-memory-size
默认为26214400
。
在TSM引擎将快照缓存并将其写入TSM文件以释放内存的字节数大小。
环境变量: INFLUXDB_DATA_CACHE_SNAPSHOT_MEMORY_SIZE
cache-snapshot-write-cold-duration
默认值为 "10m"
。
在TSM引擎快照缓存并将其写入新TSM文件的时间长度,如果分区没有收到写入或删除操作。
环境变量: INFLUXDB_DATA_CACHE_SNAPSHOT_WRITE_COLD_DURATION
max-concurrent-compactions
默认值为 0
。
一次可以运行的最大并发完全和层压缩数量。0
(无限制压缩)的结果是在运行时使用runtime.GOMAXPROCS(0)
的50%,所以当50%的CPU不可用的时候,压缩会被限制。任何大于0
的数字将压缩限制在那个值。
此设置不适用于缓存快照。
环境变量: INFLUXDB_DATA_CACHE_MAX_CONCURRENT_COMPACTIONS
compact-throughput
默认值为 50331648
。
每个秒TSM压缩写入磁盘的最大字节数。默认为 "48m"
(4800万)。注意,允许发生短暂的突发,其值可能更大,由 compact-throughput-burst
设置。
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT
compact-throughput-burst
默认值为 50331648
。
在短暂突发期间,TSM压缩写入磁盘的每秒最大字节数。默认为 "48m"
(4800万)。
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT_BURST
compact-full-write-cold-duration
默认值为 "4h"
。
如果分区没有收到写入或删除操作,则在TSM和TSI文件中进行压缩的时间长度。
环境变量: INFLUXDB_DATA_COMPACT_FULL_WRITE_COLD_DURATION
index-version
默认值为 "inmem"
。
用于新分区的分区索引类型。默认(inmem
)是使用在启动时重新创建的内存索引。值为 tsi1
将使用支持高基数数据集的基于磁盘的索引。值应使用双引号括起来。
环境变量: INFLUXDB_DATA_INDEX_VERSION
内存(inmem
)索引设置
max-series-per-database
默认值为 1000000
。
每个数据库在写入被丢弃之前允许的最大 系列 数量。默认设置是 1000000
(一百万)。将设置更改为 0
以允许每个数据库无限制数量的系列。
如果某个点导致数据库中系列的数目超过 max-series-per-database
,InfluxDB 不会写入该点,并返回一个 500
错误,如下所示
{"error":"max series per database exceeded: <series>"}
注意:任何现有数据库,其系列计数超过
max-series-per-database
的,将继续接受现有系列的写入,但创建新系列的写入将失败。
环境变量: INFLUXDB_DATA_MAX_SERIES_PER_DATABASE
max-values-per-tag
默认值为 100000
。
每个 标签键 允许的最大 标签值 数量。默认值为 100000
(一十万)。将设置更改为 0
以允许每个标签键无限制数量的标签值。如果标签值导致标签键的标签值数量超过 max-values-per-tag
,则InfluxDB不会写入该点,并返回一个 partial write
错误。
任何存在超过max-values-per-tag
的标签键值的标签将继续接受写入,但创建新标签值的写入将失败。
环境变量:INFLUXDB_DATA_MAX_VALUES_PER_TAG
TSI (tsi1
) 索引设置
最大索引日志文件大小
默认值为1048576
。
当索引写入前日志(WAL)文件以字节为单位的阈值将压缩到索引文件中。较小的尺寸会导致日志文件更快地压缩,以牺牲写入吞吐量为代价,减少堆使用。较大的尺寸会较少地压缩,存储更多的内存中的序列,并提供更高的写入吞吐量。有效的大小后缀是k
、m
或g
(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。
环境变量:INFLUXDB_DATA_MAX_INDEX_LOG_FILE_SIZE
系列ID集缓存大小
默认值为100
。
TSI索引内部缓存的大小,用于存储先前计算的序列结果。缓存的结果将从缓存中快速返回,而不是在执行后续查询时需要重新计算。将此值设置为0
将禁用缓存,这可能导致查询性能问题。只有当已知数据库中所有度量使用的标签键值谓词集合大于100时,才应增加此值。增加缓存大小可能导致堆使用增加。
环境变量:INFLUXDB_DATA_SERIES_ID_SET_CACHE_SIZE
集群设置
[cluster]
与数据节点之间如何交互、数据如何在分片中共享以及InfluxQL查询如何管理相关的设置。
InfluxDB Enterprise集群使用远程过程调用(RPCs)进行节点间通信。一个RPC连接池管理流连接,并有效地使用系统资源。InfluxDB数据节点在单个TCP连接上多路复用RPC流,以避免频繁建立和销毁TCP连接以及耗尽临时端口的开销。通常,数据节点与每个其他数据节点建立单个持久TCP连接以执行大多数RPC请求。在特殊情况下,例如复制分片时,可能会使用单次使用的TCP连接。
有关集群、RPCs和分片相关的InfluxDB _internal
度量统计信息的信息,请参阅监控InfluxDB Enterprise(_internal
)的度量。
拨号超时
默认值为"1s"
。
元节点在尝试连接到不同的远程数据节点之前,等待连接到远程数据节点的持续时间。此设置仅适用于查询。
环境变量:INFLUXDB_CLUSTER_DIAL_TIMEOUT
池最大空闲时间
默认值为"60s"
。
到另一个数据节点的TCP连接在连接池中保持空闲的最大时间。当连接空闲时间超过指定的持续时间时,不活跃的连接将被清除——退役或回收——这样连接池就不会充满不活跃的连接。清除空闲连接可最小化不活跃连接,降低系统负载,并防止系统故障。
环境变量:INFLUXDB_CLUSTER_POOL_MAX_IDLE_TIME
池最大空闲流
默认值为100
。
在两个节点之间空闲池中保留的最大空闲RPC流连接数。当发出新的RPC请求时,会从空闲池中临时取出一个连接,使用后返回。如果空闲池已满且不再需要流连接,系统将关闭流连接,资源变为可用。活动流的数量可以超过空闲池连接数的最大值,但释放时不会返回到空闲池。创建流是一个相对低成本的运算操作,因此更改此值不太可能显著提高两个节点之间的性能。
环境变量:INFLUXDB_CLUSTER_POOL_MAX_IDLE_STREAMS
允许乱序写入
默认值为false
。
默认情况下,此选项设置为false,写入按接收顺序处理。这意味着如果有任何点在分片的提示传递(HH)队列中,所有传入的点都必须进入HH队列。
如果为true,写入可能按不同于接收的顺序处理。这可以减少排空HH队列所需的时间,并在恢复期间增加吞吐量。
如果您的用例涉及更新点,这可能导致点被覆盖,请不要启用。要覆盖现有点,测量名称、标签键和值(如果点包含标签)、字段键和时间戳都必须与之前的写入相同。
例如,如果您有两个具有相同测量(cpu
)、字段键(v
)和时间戳(1234
)的点,可能会发生以下情况
点1(cpu v=1.0 1234
)到达node1
,尝试在node2
上复制,发现node2
处于离线状态,因此点1进入本地HH队列。现在,node2
重新上线,点2 cpu v=20. 1234
到达node1
,覆盖点1,并写入到node2
(绕过HH队列)。因为点2在点1之前到达node2
,所以点2在点1之前被存储。
环境变量:INFLUXDB_CLUSTER_ALLOW_OUT_OF_ORDER
shard-reader-timeout
默认值是"0"
。
对分片读取器设置的默认超时时间。查询连接必须在指定的时间内返回其响应,否则系统返回错误。
环境变量:INFLUXDB_CLUSTER_SHARD_READER_TIMEOUT
https-enabled
默认值为false
。
确定数据节点是否使用HTTPS与其他节点通信。
环境变量:INFLUXDB_CLUSTER_HTTPS_ENABLED
https-certificate
默认值是 ""
。
启用HTTPS时使用的SSL证书。
证书应该是证书和密钥的PEM编码捆绑包。
如果只是证书,必须在https-private-key
中指定密钥。
环境变量:INFLUXDB_CLUSTER_HTTPS_CERTIFICATE
https-private-key
默认值是 ""
。
使用单独的私钥位置。
环境变量:INFLUXDB_CLUSTER_HTTPS_PRIVATE_KEY
https-insecure-tls
默认值为false
。
数据节点在通过HTTPS相互通信时是否将跳过证书验证。这在使用自签名证书进行测试时很有用。
环境变量:INFLUXDB_CLUSTER_HTTPS_INSECURE_TLS
cluster-tracing
默认值为false
。
启用集群跟踪日志。设置为true
以启用集群通信的日志记录。启用此设置以验证数据节点之间的连接问题。
环境变量:INFLUXDB_CLUSTER_CLUSTER_TRACING
write-timeout
默认值是"10s"
。
写入请求等待“超时”错误返回给调用者的持续时间。默认值为10秒。
环境变量:INFLUXDB_CLUSTER_WRITE_TIMEOUT
max-concurrent-queries
默认值为 0
。
一次允许执行的最大并发查询数。
如果查询执行超出此限制,将向调用者返回错误。
可以通过将其设置为0
来禁用此限制。
环境变量:INFLUXDB_CLUSTER_MAX_CONCURRENT_QUERIES
max-concurrent-deletes
默认值是1
。
每个分片上允许的并发 DELETE
调用的最大数量。
环境变量: INFLUXDB_CLUSTER_MAX_CONCURRENT_DELETES
查询超时
默认为"0s"
。
查询被系统终止前允许执行的最大时间。此限制有助于防止查询无限期运行。将值设置为 0
将禁用此限制。
环境变量: INFLUXDB_CLUSTER_QUERY_TIMEOUT
日志记录查询时间
默认为"0s"
。
查询将被记录为慢查询的时间阈值。
此限制可以帮助发现慢速或资源密集型查询。
将值设置为 0
将禁用慢查询日志记录。
环境变量: INFLUXDB_CLUSTER_LOG_QUERIES_AFTER
log-timedout-queries = false
设置为 true
以记录因超过 查询超时
而被终止的查询。默认设置(false
)不会记录超时查询。
环境变量: INFLUXDB_CLUSTER_LOG_TIMEDOUT_QUERIES
max-select-point
默认值为 0
。
SELECT 语句可以处理的点数最大值。
值 0
将使最大点数不受限制。
环境变量: INFLUXDB_CLUSTER_MAX_SELECT_POINT
max-select-series
默认值为 0
。
SELECT 可以运行的系列最大数量。值 0
将使最大系列数不受限制。
环境变量: INFLUXDB_CLUSTER_MAX_SELECT_SERIES
max-select-buckets
默认值为 0
。
SELECT 可以创建的最大分组时间桶数。
值 0
将使最大桶数不受限制。
环境变量: INFLUXDB_CLUSTER_MAX_SELECT_BUCKETS
termination-query-log = false
设置为 true
以在数据节点进程收到 SIGTERM
(例如,k8s 进程超过容器内存限制或进程被终止)时将所有正在运行的查询打印到日志中。
环境变量: INFLUXDB_CLUSTER_TERMINATION_QUERY_LOG
提示式交手设置
[提示式交手]
控制提示式交手(HH)队列,允许数据节点在无法访问目标数据节点时暂时缓存对目标数据节点的写入。
batch-size
默认值为 512000
。
单次请求中写入分片的字节数最大值。
环境变量: INFLUXDB_HINTED_HANDOFF_BATCH_SIZE
max-writes-pending
默认值为 1024
。
提示式交手队列中允许的待处理写入的最大数量。
环境变量: INFLUXDB_HINTED_HANDOFF_MAX_WRITES_PENDING
dir
默认值为 "/var/lib/influxdb/hh"
。
提示式交手目录,持久队列将在磁盘上存储于此。
环境变量: INFLUXDB_HINTED_HANDOFF_DIR
enabled
默认值为 true
。
设置为 false
以禁用提示式交手。不建议禁用提示式交手,如果任何数据节点长时间无法访问,可能会导致数据丢失。
环境变量: INFLUXDB_HINTED_HANDOFF_ENABLED
max-size
默认值为 10737418240
。
提示式交手队列的最大字节数。每个队列只为集群中的一个数据节点。如果集群中有 N 个数据节点,每个数据节点可以有最多 N-1 个提示式交手队列。
环境变量: INFLUXDB_HINTED_HANDOFF_MAX_SIZE
max-age
默认值为 "168h0m0s"
。
写入在队列中停留的时间间隔,之后将被清除。时间由批次在队列中停留的时间确定,而不是由数据的时间戳确定。如果其他数据节点超过 max-age
仍然无法访问,可能会导致数据丢失。
环境变量: INFLUXDB_HINTED_HANDOFF_MAX_AGE
retry-concurrency
默认值为20
。
源数据节点尝试写入每个目标数据节点的最大提示式交手块数量。提示式交手块是属于同一分片且具有相同目标数据节点的数据集。
如果retry-concurrency
为20,并且源数据节点的提示式交手有25个块针对数据节点A,那么源数据节点会尝试并行写入20个块到节点A。如果retry-concurrency
为20,并且源数据节点的提示式交手有25个块针对数据节点A和30个块针对数据节点B,那么源数据节点会尝试并行写入20个块到节点A和20个块到节点B。如果源数据节点成功写入20个块到目标数据节点,它将继续以20个块的集合向该目标节点写入剩余的提示式交手数据。
如果源数据节点成功写入数据到目标数据节点,则较高的retry-concurrency
设置可以加速源数据节点清空其提示式交手队列的速度。
请注意,增加retry-concurrency
也会增加网络流量。
环境变量:INFLUXDB_HINTED_HANDOFF_RETRY_CONCURRENCY
retry-rate-limit
默认值为 0
。
提示式交手重试提示的速率限制(以每秒字节数为单位)。值为0
将禁用速率限制。
环境变量:INFLUXDB_HINTED_HANDOFF_RETRY_RATE_LIMIT
retry-interval
默认值为"1s"
。
写入失败后提示式交手重试写入的时间间隔。存在指数退避,起始时间为1秒,每次失败都会增加,直到达到retry-max-interval
。然后将在retry-max-interval
处进行重试。一旦有成功的重试,等待期将重置为retry-interval
。
环境变量:INFLUXDB_HINTED_HANDOFF_RETRY_INTERVAL
retry-max-interval
默认值为"200s"
。
写入失败后提示式交手重试写入的最大间隔。
环境变量:INFLUXDB_HINTED_HANDOFF_RETRY_MAX_INTERVAL
purge-interval
默认值为"1m0s"
。
InfluxDB检查并清除超过max-age
的数据的间隔。
环境变量:INFLUXDB_HINTED_HANDOFF_PURGE_INTERVAL
抗熵(AE)设置
有关抗熵服务的更多信息,请参阅InfluxDB企业版中的抗熵服务。
[anti-entropy]
控制复制和修复分片,以确保数据节点包含它们应包含的分片数据。
enabled
默认值为false
。
启用抗熵服务。默认值为false
。
环境变量:INFLUXDB_ANTI_ENTROPY_ENABLED
check-interval
默认值为"5m"
。
抗熵检查在每个数据节点上运行的间隔时间。
环境变量:INFLUXDB_ANTI_ENTROPY_CHECK_INTERVAL
max-fetch
默认值为10
。
单个数据节点将并行复制或修复的最大分片数量。
环境变量:INFLUXDB_ANTI_ENTROPY_MAX_FETCH
具有max-fetch=10
和更高的分片数量(100+)可能会给运行节点带来显著开销。分片越多,这个值应该越低。如果降低max-fetch
时启用AE,初始时您会看到更高的CPU负载,因为会创建新的分片摘要文件。在完成现有分片的分片摘要后,附加的负载会降低。
max-sync
默认值为1
。
应执行的最大并发同步操作数。只有在InfluxData支持请求时才修改此设置。
环境变量:INFLUXDB_ANTI_ENTROPY_MAX_SYNC
auto-repair-missing
默认值为 true
。
启用缺失分片的自动修复。
环境变量:INFLUXDB_ANTI_ENTROPY_AUTO_REPAIR_MISSING
保留策略设置
[retention]
控制执行保留策略以驱逐旧数据的执行。
enabled
默认值为 true
。
启用保留策略执行。默认值为true
。
环境变量: INFLUXDB_RETENTION_ENABLED
check-interval
默认值为 "30m0s"
。
保留策略执行检查运行的时间间隔。
环境变量: INFLUXDB_RETENTION_CHECK_INTERVAL
分片预创建设置
[shard-precreation]
控制分片的预创建,以便在数据到达之前即可使用。只有那些创建后,将同时具有未来开始时间和结束时间分片才会被创建。永远不会预创建完全或部分在过去的分片。
enabled
默认值为 true
。
启用分片预创建服务。
环境变量: INFLUXDB_SHARD_PRECREATION_ENABLED
check-interval
默认值为 "10m"
。
预创建新分片检查运行的时间间隔。
环境变量: INFLUXDB_SHARD_PRECREATION_CHECK_INTERVAL
advance-period
默认值为 "30m"
。
分片组结束时间之前默认的默认时间段,其后续组将被创建。
环境变量: INFLUXDB_SHARD_PRECREATION_ADVANCE_PERIOD
监控设置
[monitor]
默认情况下,InfluxDB 将系统监控数据写入 _internal
数据库。如果该数据库不存在,InfluxDB 将自动创建它。在 internal
数据库上的默认保留策略为七天。要更改默认的七天保留策略,必须先 创建 它。
对于 InfluxDB Enterprise 生产系统,InfluxData 建议包括一个专用的 InfluxDB (OSS) 监控实例以监控 InfluxDB Enterprise 集群节点。
- 在专用的 InfluxDB 监控实例上,将
store-enabled = false
设置为避免潜在的性能和存储问题。 - 在每个 InfluxDB 集群节点上,安装一个 Telegraf 输入插件和一个配置为向专用 InfluxDB 监控实例报告数据的 Telegraf 输出插件。
store-enabled
默认值为 true
。
启用统计信息的内部存储。
环境变量: INFLUXDB_MONITOR_STORE_ENABLED
store-database
默认值为 "_internal"
。
记录统计信息的目标数据库。
环境变量: INFLUXDB_MONITOR_STORE_DATABASE
store-interval
默认值是"10s"
。
记录统计信息的时间间隔。
环境变量: INFLUXDB_MONITOR_STORE_INTERVAL
remote-collect-interval
默认值是"10s"
。
聚合集群统计信息时轮询其他数据节点统计信息的间隔时间。
环境变量: INFLUXDB_MONITOR_REMOTE_COLLECT_INTERVAL
HTTP 端点设置
[http]
控制 HTTP 端点的配置。这是将数据输入和输出到 InfluxDB 的主要机制。
enabled
默认值为 true
。
启用 HTTP 端点。
环境变量: INFLUXDB_HTTP_ENABLED
flux-enabled
默认值为false
。
确定是否启用 Flux 查询端点。要启用 Flux 查询的使用,将值设置为 true
。
环境变量: INFLUXDB_HTTP_FLUX_ENABLED
bind-address
默认值为 ":8086"
。
HTTP 服务使用的绑定地址。
环境变量: INFLUXDB_HTTP_BIND_ADDRESS
auth-enabled
默认值为false
。
启用 HTTP 认证。
环境变量: INFLUXDB_HTTP_AUTH_ENABLED
realm
默认值为 "InfluxDB"
。
当发出基本身份验证挑战时发送回的默认域。
环境变量: INFLUXDB_HTTP_REALM
log-enabled
默认值为 true
。
启用 HTTP 请求日志记录。
环境变量: INFLUXDB_HTTP_LOG_ENABLED
suppress-write-log
默认值为false
。
确定当启用日志时是否应抑制 HTTP 写入请求日志。
access-log-path
默认值是 ""
。
访问日志路径,用于确定是否启用详细写入日志(使用 log-enabled = true
)。指定是否将HTTP请求日志写入指定的路径。如果 influxd
无法访问指定的路径,它将记录错误并回退到 stderr
。当HTTP请求日志启用时,此选项指定日志条目应该写入的路径。如果没有指定,默认是写入到 stderr
,这会将HTTP日志与内部InfluxDB日志混合。如果 influxd
无法访问指定的路径,它将记录错误并回退到将请求日志写入 stderr
。
环境变量: INFLUXDB_HTTP_ACCESS_LOG_PATH
access-log-status-filters
默认值为 []
。
过滤器指定哪些请求应该被记录。每个过滤器遵循 nnn
、nnx
或 nxx
的模式,其中 n
是一个数字,x
是任何数字的通配符。要过滤所有 5xx
响应,请使用字符串 5xx
。如果使用多个过滤器,则只需匹配其中一个。默认值是不使用过滤器,打印所有请求。
环境变量: INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_x
示例
使用配置设置设置访问日志状态过滤器
access-log-status-filter = ["4xx", "5xx"]
"4xx"
在数组位置 0
,"5xx"
在数组位置 1
使用环境变量设置访问日志状态过滤器
access-log-status-filters
的输入值是一个数组。当使用环境变量时,值可以按以下方式提供。
INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_0=4xx
INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_1=5xx
环境变量末尾的 _n
代表条目的数组位置。
write-tracing
默认值为false
。
启用详细写入日志。
环境变量: INFLUXDB_HTTP_WRITE_TRACING
pprof-enabled
默认值为 true
。
确定是否启用 /pprof
端点。
此端点用于故障排除和监控。
环境变量: INFLUXDB_HTTP_PPROF_ENABLED
https-enabled
默认值为false
。
启用HTTPS。
环境变量: INFLUXDB_HTTP_HTTPS_ENABLED
https-certificate
默认是 "/etc/ssl/influxdb.pem"
。
启用HTTPS时使用的SSL证书。
证书应该是证书和密钥的PEM编码捆绑包。
如果只是证书,必须在https-private-key
中指定密钥。
环境变量: INFLUXDB_HTTP_HTTPS_CERTIFICATE
https-private-key
默认值是 ""
。
单独私钥的位置。
环境变量: INFLUXDB_HTTP_HTTPS_PRIVATE_KEY
shared-secret
默认值是 ""
。
用于验证使用JSON Web令牌(JWT)发出的请求的JWT授权共享密钥。
环境变量: INFLUXDB_HTTP_SHARED_SECRET
max-body-size
默认值为 25000000
。
客户端请求体的最大大小(以字节为单位)。当HTTP客户端发送超过配置的最大大小的数据时,会返回 413 Request Entity Too Large
HTTP响应。要禁用限制,将值设置为 0
。
环境变量: INFLUXDB_HTTP_MAX_BODY_SIZE
max-row-limit
默认值为 0
。
应该分块的结果集的默认块大小。非分块查询可以返回的最大行数。默认设置 0
允许无限数量的行。如果查询结果超过 max-row-limit
设置,InfluxDB会在响应体中包含一个 "partial":true
标签。
环境变量: INFLUXDB_HTTP_MAX_ROW_LIMIT
max-connection-limit
默认值为 0
。
一次可以打开的HTTP连接的最大数量。
超出此限制的新连接将被丢弃。
默认值 0
禁用限制。
环境变量: INFLUXDB_HTTP_MAX_CONNECTION_LIMIT
unix-socket-enabled
默认值为false
。
启用通过UNIX域套接字提供HTTP服务。
环境变量: INFLUXDB_HTTP_UNIX_SOCKET_ENABLED
bind-socket
默认是 "/var/run/influxdb.sock"
。
UNIX域套接字的路径。
环境变量: INFLUXDB_HTTP_BIND_SOCKET
max-concurrent-write-limit
默认值为 0
。
同时处理写入的最大数量。默认值 0
禁用限制。
环境变量: INFLUXDB_HTTP_MAX_CONCURRENT_WRITE_LIMIT
max-enqueued-write-limit
默认值为 0
。
待处理的写入操作的最大队列数。默认值 0
禁用此限制。
环境变量:INFLUXDB_HTTP_MAX_ENQUEUED_WRITE_LIMIT
队列写入超时
默认值为 0
。
写入操作在队列中等待处理的最大持续时间。将其设置为 0
或将 max-concurrent-write-limit
设置为 0
禁用此限制。
日志设置
[logging]
格式
默认为 "logfmt"
。
确定用于日志的日志编码器。有效选项为 auto
、logfmt
和 json
。设置为 auto
时,如果输出终端是 TTY,则使用更用户友好的输出格式,但格式不易于机器读取。当输出为非 TTY 时,auto
将使用 logfmt
。
环境变量:INFLUXDB_LOGGING_FORMAT
级别
默认为 "info"
。
确定将发出哪些日志级别。
环境变量:INFLUXDB_LOGGING_LEVEL
抑制标志
默认值为false
。
抑制程序启动时打印的标志输出。
环境变量:INFLUXDB_LOGGING_SUPPRESS_LOGO
订阅者设置
[subscriber]
控制订阅,可用于复制 InfluxDB 服务器接收到的所有数据。
enabled
默认值为 true
。
确定是否启用订阅者服务。
环境变量:INFLUXDB_SUBSCRIBER_ENABLED
http-timeout
默认为 "30s"
。
向订阅者进行 HTTP 写入的默认超时时间。
环境变量:INFLUXDB_SUBSCRIBER_HTTP_TIMEOUT
insecure-skip-verify
默认值为false
。
允许与订阅者建立不安全的 HTTPS 连接。此选项在测试自签名证书时很有用。
环境变量:INFLUXDB_SUBSCRIBER_INSECURE_SKIP_VERIFY
ca-certs
默认值是 ""
。
PEM 编码的 CA 证书文件的路径。如果设置为空字符串 (""
),则使用默认系统证书。
环境变量:INFLUXDB_SUBSCRIBER_CA_CERTS
write-concurrency
默认为 40
。
处理写入通道的写入者 Goroutines 的数量。
环境变量:INFLUXDB_SUBSCRIBER_WRITE_CONCURRENCY
write-buffer-size
默认为 1000
。
写入通道中缓存的正在进行的写入操作的数量。
环境变量:INFLUXDB_SUBSCRIBER_WRITE_BUFFER_SIZE
total-buffer-bytes
默认值为 0
。
分配给所有订阅的缓冲区字节的总量。每个命名订阅接收总量的相等份额。0
表示无限量。默认为 0
。
环境变量:INFLUXDB_SUBSCRIBER_TOTAL_BUFFER_BYTES
Graphite 设置
[[graphite]]
此部分控制一个或多个 Graphite 数据的监听器。有关更多信息,请参阅 InfluxDB 中的 Graphite 协议支持。
enabled
默认值为false
。
确定是否启用 graphite 端点。
以下几行控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。如果有很多数据传入,批处理将在内存中缓冲点。
# database = "graphite"
# retention-policy = ""
# bind-address = ":2003"
# protocol = "tcp"
# consistency-level = "one"
batch-size
默认为 5000
。
如果缓冲区中有这么多点,则刷新。
batch-pending
默认值为10
。
内存中可能挂起的批次数量。
batch-timeout
默认值为"1s"
。
即使未达到缓冲区限制,也要至少以此频率刷新。
udp-read-buffer
默认值为 0
。
UDP 读取缓冲区大小,0
表示 OS 默认值。如果设置在 OS 最大值以上,UDP 监听器将失败。
分隔符
默认为 "."
。
此字符串连接多个匹配的“度量”值,为最终的度量名称提供更多控制。
标签
默认为 ["region=us-east", "zone=1c"]
。
默认标签,将被添加到所有指标中。
这些可以在模板级别或由指标提取的标签中覆盖。
模板模式
# templates = [
# "*.app env.service.resource.measurement",
# # Default template
# "server.*",
# ]
每行模板需要有一个模板模式。
可以在模板之前有一个可选的过滤器,由空格分隔。
也可以在模板之后有可选的额外标签。
多个标签应该用逗号分隔,且不能有空格,类似于行协议格式。
只能有一个默认模板。
CollectD 设置
[[collectd]] 设置控制 collectd
数据的监听器。有关更多信息,请参阅 InfluxDB 中的 CollectD 协议支持。
[[collectd]]
# enabled`
Default is `false.
# bind-address = ":25826"
# database = "collectd"
# retention-policy = ""
# typesdb = "/usr/share/collectd/types.db"
security-level
默认值是 ""
。
collectd 安全级别可以是 ""(或“none”)、“sign” 或 “encrypt”。
auth-file
默认值是 ""
。
collectd 授权文件的路径。如果安全级别是 sign 或 encrypt,则必须设置。
以下几行控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。如果有很多数据传入,批处理将在内存中缓冲点。
batch-size
默认为 5000
。
如果缓冲区中有这么多点,则刷新。
batch-pending
默认值为10
。
内存中可能挂起的批次数量。
batch-timeout
默认值是"10s"
。
即使未达到缓冲区限制,也要至少以此频率刷新。
read-buffer
默认值为 0
。
UDP 读取缓冲区大小,0 表示操作系统默认值。如果设置超过操作系统最大值,UDP 监听器将失败。
OpenTSDB 设置
控制 OpenTSDB 数据的监听器。有关更多信息,请参阅 InfluxDB 中的 OpenTSDB 协议支持。
[[opentsdb]]
# enabled = false
# bind-address = ":4242"
# database = "opentsdb"
# retention-policy = ""
# consistency-level = "one"
# tls-enabled = false
# certificate= "/etc/ssl/influxdb.pem"
log-point-errors
默认值为 true
。
为每个格式错误的点记录错误。
批处理设置
以下行控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。只有通过 telnet 协议接收到的点指标才会进行批处理。
batch-size
默认为 1000
。
如果缓冲区中有这么多点,则刷新。
batch-pending
默认值为 5
。
内存中可能挂起的批次数量。
batch-timeout
默认值为"1s"
。
即使未达到缓冲区限制,也要至少以此频率刷新。
UDP 设置
[[udp]] 设置控制使用 UDP 的 InfluxDB 行协议数据监听器。有关更多信息,请参阅 InfluxDB 中的 UDP 协议支持。
[[udp]]
# enabled = false
# bind-address = ":8089"
# database = "udp"
# retention-policy = ""
precision
默认值是 ""
。
InfluxDB 收到点的时间戳的精度("" 或 “n”, “u”, “ms”, “s”, “m”, “h”)
以下几行控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。如果有很多数据传入,批处理将在内存中缓冲点。
batch-size
默认为 5000
。
如果缓冲区中有这么多点,则刷新。
batch-pending
默认值为10
。
内存中可能挂起的批次数量。
batch-timeout
默认值为"1s"
。
即使没有达到缓冲区限制,也会至少以这个频率刷新。
read-buffer
默认值为 0
。
UDP 读取缓冲区大小,0 表示操作系统默认值。如果设置超过操作系统最大值,UDP 监听器将失败。
连续查询设置
[continuous_queries]
控制 InfluxDB 中连续查询的运行方式。
enabled
默认值为 true
。
确定是否启用连续查询服务。
环境变量:INFLUXDB_CONTINUOUS_QUERIES_ENABLED
log-enabled
默认值为 true
。
控制是否记录由 CQ 服务执行的查询。
环境变量:INFLUXDB_CONTINUOUS_QUERIES_LOG_ENABLED
query-stats-enabled
默认值为false
。
将连续查询执行统计信息写入默认监视存储。
环境变量:INFLUXDB_CONTINUOUS_QUERIES_QUERY_STATS_ENABLED
run-interval
默认值为"1s"
。
连续查询检查是否需要运行的间隔。
环境变量:INFLUXDB_CONTINUOUS_QUERIES_RUN_INTERVAL
TLS 设置
[tls]
InfluxDB 中传输层安全(TLS)的全局配置设置。
如果未指定 TLS 配置设置,InfluxDB 支持所有在 Go crypto/tls
包文档的“常量”部分中列出的 密码套件 ID 和所有 TLS 版本,具体取决于构建 InfluxDB 所使用的 Go 版本。使用 SHOW DIAGNOSTICS
命令查看构建 InfluxDB 所使用的 Go 版本。
“现代兼容性”推荐服务器配置
InfluxData 建议您配置 InfluxDB 服务器的 TLS 设置为“现代兼容性”,这提供更高的安全性,并假设不需要向后兼容。我们推荐的 ciphers
、min-version
和 max-version
的 TLS 配置设置基于 Mozilla 在 Security/Server Side TLS 中描述的“现代兼容性” TLS 服务器配置。
以下是一个配置设置示例,其中指定了 InfluxData 对“现代兼容性”的 TLS 设置。
推荐的“现代兼容性”加密设置
ciphers = [ "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
]
min-version = "tls1.3"
max-version = "tls1.3"
min-version
默认值为 "tls1.3"
。
将要协商的 TLS 协议的最小版本。有效值包括:tls1.0
、tls1.1
和 tls1.3
。如果未指定,则 min-version
为在 Go crypto/tls
包 中指定的最小 TLS 版本。在此示例中,tls1.3
指定最小版本为 TLS 1.3。
环境变量:INFLUXDB_TLS_MIN_VERSION
max-version
默认值为 "tls1.3"
。
将要协商的 TLS 协议的最大版本。有效值包括:tls1.0
、tls1.1
和 tls1.3
。如果未指定,则 max-version
为在 Go crypto/tls
包 中指定的最大 TLS 版本。在此示例中,tls1.3
指定最大版本为 TLS 1.3。
环境变量:INFLUXDB_TLS_MAX_VERSION
Flux 查询管理设置
[flux-controller]
本节包含 Flux 查询管理的配置设置。有关查询管理的更多信息,请参阅 查询管理。
query-concurrency
允许同时执行查询的数量。 0
表示无限制。默认值为 0
。
query-initial-memory-bytes
为查询分配的初始内存字节数。 0
表示无限制。默认值为 0
。
query-max-memory-bytes
单个查询允许使用的最大总内存字节数。 0
表示无限制。默认值为 0
。
total-max-memory-bytes
所有运行中的 Flux 查询允许使用的最大总内存字节数。 0
表示无限制。默认值为 0
。
query-queue-size
执行队列中允许的最大查询数。当队列限制达到时,新查询将被拒绝。 0
表示无限制。默认值为 0
。
这个页面有帮助吗?
感谢您的反馈!