文档

配置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_inspectinfluxd进程可能无法启动。在这两种情况下,在重新启动数据库之前删除系列文件目录。在重新启动时,InfluxDB会自动生成必要的系列目录和文件。
  • 在启动数据库之前检查系列文件是否损坏,请运行数据库离线时的influx_inspect verify-seriesfile命令
  • 如果系列文件很大(20+吉字节),在启动数据库之前删除系列文件目录可能更快。

企业许可证设置

[企业]

[企业]部分包含元节点注册到InfluxDB企业许可证门户的参数。

license-key

默认值是 ""

为您的实例在 InfluxPortal 上创建的许可证密钥。元节点通过端口 80 或端口 443 将许可证密钥发送到 portal.influxdata.com,并返回一个临时的JSON许可证文件。服务器将在本地缓存许可证文件。没有有效的许可证文件,数据处理功能将只能有限期工作。如果您的服务器无法与 https://portal.influxdata.com 通信,必须使用 license-path 设置

同一集群中的所有节点应使用相同的密钥。
license-keylicense-path 设置互斥,其中一个必须设置为空字符串。

注意:您必须触发数据节点重新加载您的配置。有关更多信息,请参阅如何 续订或更新您的许可证密钥

环境变量: INFLUXDB_ENTERPRISE_LICENSE_KEY

license-path

默认值是 ""

对于没有互联网访问权限的实例,您从 InfluxData 收到的永久JSON许可证文件的本地路径。没有有效的许可证文件,数据处理功能将只能有限期工作。如需许可证文件,请联系 [email protected]

许可证文件应保存在集群中的每个服务器上,包括元、数据和企业节点。文件包含JSON格式的许可证,并且必须可由 influxdb 用户读取。集群中的每个服务器独立验证其许可证。

注意:您必须触发数据节点重新加载您的配置。有关更多信息,请参阅如何 续订或更新您的许可证密钥

同一集群中的所有节点应使用相同的许可证文件。 license-keylicense-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-sha256pbkdf2-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磁盘,使用从0ms100ms的值。

环境变量: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)文件以字节为单位的阈值将压缩到索引文件中。较小的尺寸会导致日志文件更快地压缩,以牺牲写入吞吐量为代价,减少堆使用。较大的尺寸会较少地压缩,存储更多的内存中的序列,并提供更高的写入吞吐量。有效的大小后缀是kmg(不区分大小写,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

默认值为 []

过滤器指定哪些请求应该被记录。每个过滤器遵循 nnnnnxnxx 的模式,其中 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"

确定用于日志的日志编码器。有效选项为 autologfmtjson。设置为 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 设置为“现代兼容性”,这提供更高的安全性,并假设不需要向后兼容。我们推荐的 ciphersmin-versionmax-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.0tls1.1tls1.3。如果未指定,则 min-version 为在 Go crypto/tls 中指定的最小 TLS 版本。在此示例中,tls1.3 指定最小版本为 TLS 1.3。

环境变量:INFLUXDB_TLS_MIN_VERSION

max-version

默认值为 "tls1.3"

将要协商的 TLS 协议的最大版本。有效值包括:tls1.0tls1.1tls1.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


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

Flux将进入维护模式。您可以继续像现在一样使用它,而无需对您的代码进行任何更改。

了解更多

InfluxDB v3增强功能和InfluxDB集群版现已正式发布

新功能,包括更快的查询性能和管理工具,推进了InfluxDB v3产品线。InfluxDB集群版现已正式发布。

InfluxDB v3性能和特性

InfluxDB v3产品线在查询性能方面取得了重大提升,并提供了新的管理工具。这些增强包括一个操作仪表板来监控您的InfluxDB集群的健康状况,InfluxDB云专用中的单点登录(SSO)支持,以及针对令牌和数据库的新管理API。

了解新的v3增强功能


InfluxDB集群版正式发布

InfluxDB集群版现已正式发布,为您在自管理堆栈中提供了InfluxDB v3的力量。

与我们讨论InfluxDB集群版