文档说明

配置 InfluxDB OSS

本页面记录了 InfluxDB OSS 的早期版本。最新稳定版本为 InfluxDB OSS v2。请参阅相应的 InfluxDB v2 文档:InfluxDB 配置选项

InfluxDB 开源 (OSS) 配置文件包含特定于本地节点的配置设置。

内容

配置概述

InfluxDB 使用配置文件 (influxdb.conf) 和环境变量进行配置。如果您未取消注释配置选项,系统将使用其默认设置。本文档中的配置设置设置为默认设置。

指定持续时间的配置设置支持以下持续时间单位

  • ns (纳秒)
  • usµs (微秒)
  • ms (毫秒)
  • s (秒)
  • m (分钟)
  • h (小时)
  • d (天)
  • w (周)

注意:此处记录了最新官方版本的配置文件设置 - GitHub 上的 示例配置文件 可能略有更新。

环境变量

配置文件中的所有配置设置都可以在配置文件或环境变量中指定。环境变量将覆盖配置文件中相应的选项。如果未在配置文件或环境变量中指定配置选项,InfluxDB 将使用其内部默认配置。

注意:如果已设置环境变量,则忽略配置文件中的等效配置设置。

InfluxDB 环境变量 (INFLUXDB_*)

以下记录了 InfluxDB 环境变量及其相应的配置文件设置。所有 InfluxDB 特定的环境变量都以前缀 INFLUXDB_ 开头。

GOMAXPROCS 环境变量

注意:无法像其他环境变量那样使用 InfluxDB 配置文件设置来设置 GOMAXPROCS 环境变量。

GOMAXPROCS Go 语言环境变量 可以用于设置可同时执行的 CPU 的最大数量。

GOMAXPROCS 的默认值是程序启动时可见的 CPU 数量(无论操作系统认为有多少个 CPU)。对于 32 核的机器,GOMAXPROCS 的值将是 32。您可以覆盖此值以使其小于最大值,这在您与其他进程在相同机器上运行 InfluxDB 并希望确保数据库不会完全耗尽这些进程的情况下非常有用。

注意:GOMAXPROCS=1 设置为 1 将消除所有并行化。

使用配置文件

InfluxDB 系统在配置文件中为所有设置提供了内部默认值。要查看默认配置设置,请使用 influxd config 命令。

本地 InfluxDB 配置文件位于此处

  • Linux: /etc/influxdb/influxdb.conf
  • macOS: /usr/local/etc/influxdb.conf
  • Windows: influxd.exe 同一目录

被注释的设置使用内部系统默认值。取消注释的设置将覆盖内部默认值。请注意,本地配置文件不需要包含每个配置设置。

有两种方式使用配置文件启动 InfluxDB

  • 使用 -config 选项指向进程的配置文件。例如

    influxd -config /etc/influxdb/influxdb.conf
    
  • 将环境变量 INFLUXDB_CONFIG_PATH 设置为配置文件的路径并启动进程。例如

    echo $INFLUXDB_CONFIG_PATH
    /etc/influxdb/influxdb.conf
    
    influxd
    

InfluxDB 首先检查 -config 选项,然后检查环境变量。

配置设置

注意: 要设置或覆盖允许多个配置(任何标题中包含 [[double_brackets]] 的部分)的配置部分中的设置,必须指定所需配置的序号。例如,对于第一组 [[graphite]] 环境变量,将环境变量配置设置名称的前缀与相关位置数字(在本例中为 0

INFLUXDB_GRAPHITE_0_BATCH_PENDING
INFLUXDB_GRAPHITE_0_BATCH_SIZE
INFLUXDB_GRAPHITE_0_BATCH_TIMEOUT
INFLUXDB_GRAPHITE_0_BIND_ADDRESS
INFLUXDB_GRAPHITE_0_CONSISTENCY_LEVEL
INFLUXDB_GRAPHITE_0_DATABASE
INFLUXDB_GRAPHITE_0_ENABLED
INFLUXDB_GRAPHITE_0_PROTOCOL
INFLUXDB_GRAPHITE_0_RETENTION_POLICY
INFLUXDB_GRAPHITE_0_SEPARATOR
INFLUXDB_GRAPHITE_0_TAGS
INFLUXDB_GRAPHITE_0_TEMPLATES
INFLUXDB_GRAPHITE_0_UDP_READ_BUFFER

对于配置文件中的第 N 个 Graphite 配置,相关环境变量将具有以下形式 INFLUXDB_GRAPHITE_(N-1)_BATCH_PENDING。对于配置文件的每个部分,编号从零开始。

全局设置

reporting-disabled = false

InfluxData 使用自愿报告的数据主要跟踪不同 InfluxDB 版本的采用率。这些数据帮助 InfluxData 支持持续发展 InfluxDB。

使用 reporting-disabled 选项在每 24 小时内向 usage.influxdata.com 报告数据。每个报告包括随机生成的标识符、操作系统、架构、InfluxDB 版本以及数据库、测量和独特的 数据库测量系列 的数量。将此选项设置为 true 将禁用报告。

注意: 从不传输用户数据库的数据。

环境变量: INFLUXDB_REPORTING_DISABLED

bind-address = "127.0.0.1:8088"

用于备份和还原的 RPC 服务的绑定地址。

环境变量: INFLUXDB_BIND_ADDRESS

compact-series-file = false

确定在启动时是否应该压缩系列文件。如果 true,InfluxDB 在启动 influxd 服务器之前运行 influxd_inspect -compact-series-file。默认值为 false

元存储设置

[meta]

此部分控制 InfluxDB 元存储的参数,该存储存储有关用户、数据库、保留策略、分片和连续查询的信息。

dir = "/var/lib/influxdb/meta"

元数据/raft 数据库存储的目录。在 meta 目录中的文件包括 meta.db,InfluxDB 元存储文件。

注意: macOS 安装程序的默认目录为 /Users/<username>/.influxdb/meta

环境变量: INFLUXDB_META_DIR

retention-autocreate = true

在创建数据库时,启用自动创建DEFAULT 保留策略 autogen。保留策略 autogen 拥有无穷的持续时间,并且也被设置为数据库的 DEFAULT 保留策略,在写入或查询未指定保留策略时使用。禁用此设置以防止在创建数据库时创建此保留策略。

环境变量:INFLUXDB_META_RETENTION_AUTOCREATE

logging-enabled = true

启用元服务的消息日志记录。

环境变量:INFLUXDB_META_LOGGING_ENABLED

数据设置

[data]

[data] 设置控制 InfluxDB 实际分片数据的存储位置以及如何从写入前日志(WAL)中刷新。可能需要将 dir 修改为适合您系统的位置,但 WAL 设置是高级配置。默认设置应该适用于大多数系统。

dir = "/var/lib/influxdb/data"

存储 TSM 文件的 InfluxDB 目录。此目录可以更改。

注意: macOS 安装程序的默认目录是 /Users/<username>/.influxdb/data

环境变量:INFLUXDB_DATA_DIR

wal-dir = "/var/lib/influxdb/wal"

写入前日志(WAL)文件目录的位置。

注意: 对于 macOS 安装,默认 WAL 目录是 /Users/<username>/.influxdb/wal

环境变量:INFLUXDB_DATA_WAL_DIR

wal-fsync-delay = "0s"

写入等待 fsync 的时间。使用大于 0 的持续时间来批量处理多个 fsync 调用。这在较慢的磁盘或遇到 WAL 写入争用时很有用。默认值 0s 对每个写入到 WAL 的操作进行 fsync。

注意: 对于非 SSD 硬盘,InfluxData 建议使用 0ms-100ms 范围内的值。

环境变量:INFLUXDB_DATA_WAL_FSYNC_DELAY

index-version = "inmem"

用于新分片的分片索引类型。默认(inmem)索引是内存索引,在启动时重新创建。要启用基于磁盘的时间序列索引(TSI)索引,请将值设置为 tsi1

环境变量:INFLUXDB_DATA_INDEX_VERSION

trace-logging-enabled = false

启用 TSM 引擎和 WAL 中的详细调试信息日志记录。跟踪日志为调试 TSM 引擎问题提供更有用的输出。

环境变量:INFLUXDB_DATA_TRACE_LOGGING_ENABLED

query-log-enabled = true

启用在执行之前记录解析查询。查询日志对于故障排除很有用,但会记录查询中包含的任何敏感数据。

环境变量:INFLUXDB_DATA_QUERY_LOG_ENABLED

validate-keys = false

验证传入的写入以确保测量键和标签键只包含有效的 Unicode 字符。此设置将产生轻微的额外开销,因为必须检查每个键。这不会验证字段键。

TSM 引擎设置

cache-max-memory-size = "1g"

分片缓存达到之前可以拒绝写入的最大大小。

有效的内存大小后缀有:kmg(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。

如果遇到 缓存最大内存大小超出 错误,请考虑增加此值。

环境变量:INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE

cache-snapshot-memory-size = "25m"

在此大小上,引擎将快照缓存并将其写入 TSM 文件,从而释放内存。

有效的内存大小后缀有:kmg(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。

环境变量:INFLUXDB_DATA_CACHE_SNAPSHOT_MEMORY_SIZE

cache-snapshot-write-cold-duration = "10m"

在此时间间隔内,如果分片没有收到写入或删除操作,则引擎将快照缓存并写入新的 TSM 文件。

环境变量:INFLUXDB_DATA_CACHE_SNAPSHOT_WRITE_COLD_DURATION

compact-full-write-cold-duration = "4h"

在此时间间隔内,如果分片没有收到写入或删除操作,则 TSM 引擎将压缩分片中的所有 TSM 文件。

环境变量:INFLUXDB_DATA_COMPACT_FULL_WRITE_COLD_DURATION

max-concurrent-compactions = 0

一次可以运行的最大并发完整和层压缩操作数。默认值为 0,这意味着在运行时,50% 的 CPU 核心用于压缩。如果显式设置,用于压缩的核心数将限制为指定的值。此设置不适用于缓存快照。有关 GOMAXPROCS 环境变量的更多信息,请参阅本页上的 GOMAXPROCS 环境变量

环境变量:INFLUXDB_DATA_MAX_CONCURRENT_COMPACTIONS

max-concurrent-deletes = 1

对分片进行的并发 DELETE 调用的最大数量。默认值为 1,对于大多数用例应保持不变。

环境变量:INFLUXDB_DATA_MAX_CONCURRENT_DELETES

compact-throughput = "48m"

每秒 TSM 压缩写入磁盘的字节数。默认值为 "48m"(4800 万)。

环境变量:INFLUXDB_DATA_COMPACT_THROUGHPUT

compact-throughput-burst = "48m"

在短暂的爆发期间,每秒 TSM 压缩写入磁盘的字节数。默认值为 "48m"(4800 万)。

环境变量:INFLUXDB_DATA_COMPACT_THROUGHPUT_BURST

tsm-use-madv-willneed = false

如果为 true,则 MMap 建议值 MADV_WILLNEED 会建议内核如何处理映射内存区域,以及关于输入/输出分页的处理,并期望在不久的将来访问映射内存区域,与 TSM 文件相关。由于此设置在一些内核(包括 CentOS 和 RHEL)上存在问题,默认值为 false。在某些情况下,将值更改为 true 可能有助于具有缓慢磁盘的用户。

环境变量:INFLUXDB_DATA_TSM_USE_MADV_WILLNEED

内存(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不会写入点,并返回部分写入错误。

任何现有的标签键,其标签值超过max-values-per-tag,将继续接受写入,但创建新标签值的写入将失败。

环境变量:INFLUXDB_DATA_MAX_VALUES_PER_TAG

TSI(tsi1)索引设置

max-index-log-file-size = "1m"

索引写入前日志文件(WAL)文件压缩成索引文件的字节数阈值。较小的尺寸会导致日志文件更快地压缩,并以降低写入吞吐量为代价减少堆的使用。较大的尺寸会较少压缩,存储更多的系列在内存中,并提高写入吞吐量。有效的大小后缀是kmg(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。

环境变量:INFLUXDB_DATA_MAX_INDEX_LOG_FILE_SIZE

series-id-set-cache-size = 100

TSI索引内部缓存的大小,用于存储先前计算出的系列结果。缓存的结果将从缓存中快速返回,而不是在执行后续具有匹配标签键值谓词的查询时重新计算。将此值设置为0将禁用缓存,可能会导致查询性能问题。只有在已知数据库所有测量中经常使用的标签键值谓词集合大于100的情况下,才应增加此值。增加缓存大小可能导致堆使用量增加。

环境变量:INFLUXDB_DATA_SERIES_ID_SET_CACHE_SIZE

查询管理设置

[协调器]

本节包含查询管理的配置设置。有关查询管理的更多信息,请参阅查询管理

write-timeout = "10s"

写入请求等待直到返回“超时”错误的持续时间。默认值是10秒。

环境变量:INFLUXDB_COORDINATOR_WRITE_TIMEOUT

max-concurrent-queries = 0

实例上允许运行的查询的最大数量。默认设置(0)允许无限数量的查询。

环境变量:INFLUXDB_COORDINATOR_MAX_CONCURRENT_QUERIES

query-timeout = "0s"

查询允许执行的最大持续时间,在此期间InfluxDB将终止查询。默认设置(0)允许查询在无时间限制下运行。此设置是一个持续时间

环境变量:INFLUXDB_COORDINATOR_QUERY_TIMEOUT

log-queries-after = "0s"

查询可以执行的最大持续时间,在此期间InfluxDB将记录查询,并带有检测到慢查询消息。默认设置("0")永远不会告诉InfluxDB记录查询。此设置是一个持续时间

环境变量:INFLUXDB_COORDINATOR_LOG_QUERIES_AFTER

max-select-point = 0

SELECT语句可以处理的的最大数量。默认设置(0)允许SELECT语句处理无限数量的点。

环境变量:INFLUXDB_COORDINATOR_MAX_SELECT_POINT

max-select-series = 0

SELECT语句可以处理的系列的最大数量。默认设置(0)允许SELECT语句处理无限数量的系列。

环境变量:INFLUXDB_COORDINATOR_MAX_SELECT_SERIES

max-select-buckets = 0

查询可以处理的GROUP BY time()桶的最大数量。默认设置(0)允许查询处理无限数量的桶。

环境变量:INFLUXDB_COORDINATOR_MAX_SELECT_BUCKETS

termination-query-log = false

当InfluxDB接收到 SIGTERM 信号时(当进程超过容器内存限制或通过 kill 命令发送时),打印运行中的查询列表。

环境变量: INFLUXDB_COORDINATOR_TERMINATE_QUERY_LOG


Flux查询管理设置

[flux-controller]

flux-controller 设置控制Flux查询的行为。

query-concurrency = 0

允许并发执行的Flux查询数量。 0 表示无限制。默认为 0

环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_CONCURRENCY

query-initial-memory-bytes = 0

启动Flux查询时为其分配的初始字节数。如果未设置,则使用 query-max-memory-bytes0 表示无限制。默认为 0

环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_INITIAL_MEMORY_BYTES

query-max-memory-bytes = 0

在任何给定时间Flux查询允许使用的最大字节数(在表内存中)。 0 表示无限制。默认为 0

如果请求更多内存会与控制器可以请求的最大内存量冲突,查询可能无法使用其全部配额的内存。

环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_MAX_MEMORY_BYTES

total-max-memory-bytes = 0

Flux查询控制器允许为Flux查询分配的最大内存量。 0 表示无限制。默认为 0

如果未设置,则此数字为 query-concurrency * query-max-memory-bytes。此数字必须大于或等于 query-concurrency * query-initial-memory-bytes,并且可能小于 query-concurrency * query-max-memory-bytes

环境变量: INFLUXDB_FLUX_CONTROLLER_TOTAL_MAX_MEMORY_BYTES

query-queue-size = 0

在拒绝新查询之前允许排队等待执行Flux查询的数量。 0 表示无限制。默认为 0

环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_QUEUE_SIZE


保留策略设置

[retention]

[retention] 设置控制删除旧数据的保留策略的执行。

enabled = true

设置为 false 以阻止InfluxDB执行保留策略。

环境变量: INFLUXDB_RETENTION_ENABLED

check-interval = "30m0s"

InfluxDB检查以执行保留策略的时间间隔。

环境变量: INFLUXDB_RETENTION_CHECK_INTERVAL


分片预创建设置

[shard-precreation]

[shard-precreation] 设置控制分片的预创建,以便在数据到达之前提供分片。只有创建后将在未来具有开始和结束时间的分片才会被创建。完全或部分在过去的时间分片永远不会被预创建。

enabled = true

确定是否启用分片预创建服务。

环境变量: INFLUXDB_SHARD_PRECREATION_ENABLED

check-interval = "10m"

预创建新分片的检查运行的时间间隔。

环境变量: INFLUXDB_SHARD_PRECREATION_CHECK_INTERVAL

advance-period = "30m"

InfluxDB预创建分片的未来最大期限。默认的 30m 应适用于大多数系统。将此设置设置得太远可能导致效率低下。

环境变量: INFLUXDB_SHARD_PRECREATION_ADVANCE_PERIOD

监控设置

[monitor]

[monitor] 部分设置控制InfluxDB的 系统自我监控

默认情况下,InfluxDB 将数据写入到 _internal 数据库。如果该数据库不存在,InfluxDB 将自动创建它。《_internal》数据库上的默认保留策略是七天。如果您想使用除七天保留策略之外的其他保留策略,您必须创建它。

store-enabled = true

设置为 false 以禁用内部记录统计信息。如果设置为 false,将使诊断安装问题变得更加困难。

环境变量: INFLUXDB_MONITOR_STORE_ENABLED

store-database = "_internal"

记录统计信息的目标数据库。

环境变量: INFLUXDB_MONITOR_STORE_DATABASE

store-interval = "10s"

InfluxDB 记录统计信息的间隔时间。默认值为每十秒(10s)。

环境变量: INFLUXDB_MONITOR_STORE_INTERVAL

HTTP 端点设置

[http]

[http] 部分设置控制 InfluxDB 如何配置 HTTP 端点。这些是数据进入和离开 InfluxDB 的主要机制。编辑此部分的设置以启用 HTTPS 和身份验证。

有关启用 HTTPS 和身份验证的详细信息,请参阅身份验证和授权

enabled = true

确定 HTTP 端点是否启用。要禁用对 HTTP 端点的访问,请将值设置为 false。请注意,InfluxDB 命令行界面(CLI) 使用 InfluxDB API 连接到数据库。

环境变量: 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 和 HTTPS 上启用用户身份验证。要要求身份验证,请将值设置为 true

环境变量: INFLUXDB_HTTP_AUTH_ENABLED

realm = "InfluxDB"

当发出基本身份验证挑战时发送回的默认域。域是 HTTP 端点使用的 JWT 域。

环境变量: INFLUXDB_HTTP_REALM

log-enabled = true

确定是否启用 HTTP 请求日志记录。要禁用日志记录,请将值设置为 false

环境变量: 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-filters = ["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

确定是否启用详细写入日志。设置为 true 以启用写入负载的日志记录。如果设置为 true,则会在日志中重复每个写入语句,因此不建议一般使用。

环境变量:INFLUXDB_HTTP_WRITE_TRACING

pprof-enabled = true

确定是否启用 /net/http/pprof HTTP端点。这对于故障排除和监控很有用。

环境变量:INFLUXDB_HTTP_PPROF_ENABLED

pprof-auth-enabled = false

/debug 端点上启用身份验证。如果启用,用户需要管理员权限才能访问以下端点

  • /debug/pprof
  • /debug/requests
  • /debug/vars

如果将 auth-enabledpprof-enabled 设置为 false,则此设置将没有作用。

环境变量:INFLUXDB_HTTP_PPROF_AUTH_ENABLED

debug-pprof-enabled = false

启用默认的 /pprof 端点并绑定到 localhost:6060。这对于调试启动性能问题很有用。

环境变量:INFLUXDB_HTTP_DEBUG_PPROF_ENABLED

ping-auth-enabled = false

/ping/metrics 和已弃用的 /status 端点上启用身份验证。如果 auth-enabled 设置为 false,则此设置没有作用。

环境变量:INFLUXDB_HTTP_PING_AUTH_ENABLED

prom-read-auth-enabled = false

在 Prometheus 远程读取 API 上启用身份验证。默认为 false。如果 auth-enabled 设置为 false,则此设置没有作用。

环境变量:INFLUXDB_HTTP_PROM_READ_AUTH_ENABLED

http-headers

用户提供的 HTTP 响应头。根据需要配置此部分以返回安全头,例如 X-Frame-OptionsContent Security Policy

示例

[http.headers]
  X-Frame-Options = "DENY"

https-enabled = false

确定是否启用 HTTPS。要启用 HTTPS,请将值设置为 true

环境变量:INFLUXDB_HTTP_HTTPS_ENABLED

https-certificate = "/etc/ssl/influxdb.pem"

启用 HTTPS 时使用 SSL 证书文件的路径。

环境变量:INFLUXDB_HTTP_HTTPS_CERTIFICATE

https-private-key = ""

使用单独的私钥位置。如果只指定了 https-certificate,则 httpd 服务将尝试从 https-certificate 文件中加载私钥。如果指定了单独的 https-private-key 文件,则 httpd 服务将从 https-private-key 文件中加载私钥。

环境变量:INFLUXDB_HTTP_HTTPS_PRIVATE_KEY

shared-secret = ""

用于使用 JWT 令牌验证公共 API 请求的共享密钥。

环境变量:INFLUXDB_HTTP_SHARED_SECRET

max-row-limit = 0

系统在一个非分块查询中可以返回的最大行数。默认设置(0)允许返回无限数量的行。如果查询结果超过指定值,则 InfluxDB 将在响应体中包含一个 "partial":true 标签。

环境变量:INFLUXDB_HTTP_MAX_ROW_LIMIT

max-connection-limit = 0

同时可能打开的最大连接数。超出限制的新连接将被丢弃。
默认值 0 禁用限制。

环境变量:INFLUXDB_HTTP_MAX_CONNECTION_LIMIT

unix-socket-enabled = false

通过UNIX域套接字启用HTTP服务。要启用通过UNIX域套接字的HTTP服务,将值设置为true

环境变量:INFLUXDB_HTTP_UNIX_SOCKET_ENABLED

bind-socket = "/var/run/influxdb.sock"

UNIX域套接字的路径。

环境变量:INFLUXDB_HTTP_UNIX_BIND_SOCKET

max-body-size = 25000000

客户端请求数据体的最大大小(以字节为单位)。当HTTP客户端发送的数据超过配置的最大大小时,将返回一个413 Request Entity Too Large HTTP响应。要禁用限制,将值设置为0

环境变量:INFLUXDB_HTTP_MAX_BODY_SIZE

max-concurrent-write-limit = 0

可以同时处理的写入操作的最大数量。要禁用限制,将值设置为0

环境变量:INFLUXDB_HTTP_MAX_CONCURRENT_WRITE_LIMIT

max-enqueued-write-limit = 0

等待处理的最大写入队列数量。要禁用限制,将值设置为0

环境变量:INFLUXDB_HTTP_MAX_ENQUEUED_WRITE_LIMIT

enqueued-write-timeout = 0

写入在队列中等待处理的最大持续时间。要禁用限制,将此值设置为0或设置max-concurrent-write-limit值为0

环境变量:INFLUXDB_HTTP_ENQUEUED_WRITE_TIMEOUT

[http.headers]

使用[http.headers]部分来配置用户提供的HTTP响应头。

# [http.headers]
#   X-Header-1 = "Header Value 1"
#   X-Header-2 = "Header Value 2"

日志设置

[logging]

控制记录器如何向输出发送日志。

format = "auto"

确定用于日志的日志编码器。有效值是auto(默认值),logfmtjson。使用默认的auto选项,如果输出到TTY设备(例如,终端),则使用更用户友好的控制台编码。如果输出到文件,则自动选项使用logfmt编码。logfmtjson选项有助于与外部工具集成。

环境变量:INFLUXDB_LOGGING_FORMAT

level = "info"

要发出的日志级别。有效值是errorwarninfo(默认值)和debug。将发出等于或高于指定级别的日志。

环境变量:INFLUXDB_LOGGING_LEVEL

suppress-logo = false

抑制程序启动时打印的标志输出。如果STDOUT不是TTY,则始终抑制标志。

环境变量:INFLUXDB_LOGGING_SUPPRESS_LOGO


订阅设置

[subscriber]

[subscriber]部分控制Kapacitor如何接收数据。

enabled = true

确定是否启用订阅服务。要禁用订阅服务,将值设置为false

环境变量: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

处理写入通道的写入goroutine的数量。

环境变量:INFLUXDB_SUBSCRIBER_WRITE_CONCURRENCY

write-buffer-size = 1000

写入通道中缓存的飞行中写入的数量。

环境变量:INFLUXDB_SUBSCRIBER_WRITE_BUFFER_SIZE

total-buffer-bytes = 0

分配给所有订阅的缓冲区字节数总和。每个命名订阅都获得总量的均匀分配。默认值为 0

环境变量:INFLUXDB_SUBSCRIBER_TOTAL_BUFFER_BYTES


Graphite 设置

[[graphite]]

本节控制一个或多个 Graphite 数据的监听器。有关更多信息,请参阅 InfluxDB 中的 Graphite 协议支持

enabled = false

设置为 true 以启用 Graphite 输入。

环境变量:INFLUXDB_GRAPHITE_0_ENABLED

database = "graphite"

要写入的数据库名称。

环境变量:INFLUXDB_GRAPHITE_0_DATABASE

retention-policy = ""

相关的保留策略。空字符串等同于数据库的 DEFAULT 保留策略。

环境变量:INFLUXDB_GRAPHITE_0_RETENTION_POLICY

bind-address = ":2003"

默认端口。

环境变量:INFLUXDB_GRAPHITE_0_BIND_ADDRESS

protocol = "tcp"

设置为 tcpudp

环境变量:INFLUXDB_GRAPHITE_PROTOCOL

consistency-level = "one"

必须确认写入的节点数。如果未满足要求,返回值将为部分写入,如果批次中某些点失败,或者如果批次中的所有点都失败,则返回写入失败。有关更多信息,请参阅 InfluxDB 行协议语法参考 中的写入查询字符串参数部分。

环境变量:INFLUXDB_GRAPHITE_CONSISTENCY_LEVEL

以下三个设置控制批处理的工作方式。您应该启用此设置,否则可能会丢失度量值或性能不佳。如果有很多点进来,批处理将在内存中缓冲点。

batch-size = 5000

如果缓冲了这么多点,则输入将刷新。

环境变量:INFLUXDB_GRAPHITE_BATCH_SIZE

batch-pending = 10

内存中可能挂起的批次数。

环境变量:INFLUXDB_GRAPHITE_BATCH_PENDING

batch-timeout = "1s"

即使未达到配置的批处理大小,输入也将至少以这个频率刷新。

环境变量:INFLUXDB_GRAPHITE_BATCH_TIMEOUT

udp-read-buffer = 0

UDP 读取缓冲区大小,0 表示操作系统默认值。如果设置在操作系统最大值之上,UDP 监听器将失败。

环境变量:INFLUXDB_GRAPHITE_UDP_READ_BUFFER

separator = "."

此字符串将多个匹配的“测量”值连接起来,为最终的测量名称提供更多控制。

环境变量:INFLUXDB_GRAPHITE_SEPARATOR


CollectD 设置

[[collectd]]

[[collectd]] 设置控制 collectd 数据的监听器。有关更多信息,请参阅 InfluxDB 中的 CollectD 协议支持

enabled = false

设置为 true 以启用 collectd 写入。

环境变量:INFLUXDB_COLLECTD_ENABLED

bind-address = ":25826"

端口。

环境变量:INFLUXDB_COLLECTD_BIND_ADDRESS

database = "collectd"

要写入的数据库名称。默认为 collectd

环境变量:INFLUXDB_COLLECTD_DATABASE

retention-policy = ""

相关的保留策略。空字符串等同于数据库的 DEFAULT 保留策略。

环境变量:INFLUXDB_COLLECTD_RETENTION_POLICY

typesdb = "/usr/local/share/collectd"

collectd 服务支持扫描多个类型数据库文件所在的目录,或者指定单个数据库文件。可以在 此处 找到示例 types.db 文件。

环境变量:INFLUXDB_COLLECTD_TYPESDB

安全级别 = "none"

环境变量:INFLUXDB_COLLECTD_SECURITY_LEVEL

认证文件 = "/etc/collectd/auth_file"

环境变量:INFLUXDB_COLLECTD_AUTH_FILE

以下三个设置控制批处理的工作方式。您应该启用此设置,否则可能会丢失度量值或性能不佳。如果有很多点进来,批处理将在内存中缓冲点。

batch-size = 5000

如果缓冲了这么多点,则输入将刷新。

环境变量:INFLUXDB_COLLECTD_BATCH_SIZE

batch-pending = 10

内存中可能挂起的批次数。

环境变量:INFLUXDB_COLLECTD_BATCH_PENDING

批量超时 = "10s"

即使未达到配置的批处理大小,输入也将至少以这个频率刷新。

环境变量:INFLUXDB_COLLECTD_BATCH_TIMEOUT

读取缓冲区 = 0

UDP读取缓冲区大小,0表示OS默认值。如果设置超过OS最大值,UDP监听器将失败。

环境变量:INFLUXDB_COLLECTD_READ_BUFFER

解析多值插件 = "split"

当设置为split时,多值插件数据(例如 df free:5000,used:1000)将被拆分为独立的测量(例如,(df_free,value=5000)(df_used,value=1000))。当设置为join时,多值插件将存储为单个多值测量(例如,(df,free=5000,used=1000))。默认为split


OpenTSDB设置

[[opentsdb]]

控制OpenTSDB数据监听器。有关更多信息,请参阅InfluxDB中的OpenTSDB协议支持

enabled = false

设置为true以启用openTSDB写入。

环境变量:INFLUXDB_OPENTSDB_0_ENABLED

绑定地址 = ":4242"

默认端口。

环境变量:INFLUXDB_OPENTSDB_BIND_ADDRESS

数据库 = "opentsdb"

要写入的数据库名称。如果数据库不存在,则在初始化输入时自动创建。

环境变量:INFLUXDB_OPENTSDB_DATABASE

retention-policy = ""

相关的保留策略。空字符串等同于数据库的 DEFAULT 保留策略。

环境变量:INFLUXDB_OPENTSDB_RETENTION_POLICY

consistency-level = "one"

设置写入一致性级别:写入时为anyonequorumall

环境变量:INFLUXDB_OPENTSDB_CONSISTENCY_LEVEL

启用TLS = false

环境变量:INFLUXDB_OPENTSDB_TLS_ENABLED

证书 = "/etc/ssl/influxdb.pem"

环境变量:INFLUXDB_OPENTSDB_CERTIFICATE

记录点错误 = true

为每个格式错误的点记录错误。

环境变量:INFLUXDB_OPENTSDB_0_LOG_POINT_ERRORS

以下三个设置控制批处理的工作方式。如果未启用此功能,则可能会丢失指标或性能不佳。只有通过telnet协议接收到的点指标才会进行批处理。

批量大小 = 1000

如果缓冲了这么多点,则输入将刷新。

环境变量:INFLUXDB_OPENTSDB_BATCH_SIZE

批量挂起 = 5

内存中可能挂起的批次数。

环境变量:INFLUXDB_OPENTSDB_BATCH_PENDING

batch-timeout = "1s"

即使未达到配置的批处理大小,输入也将至少以这个频率刷新。

环境变量:INFLUXDB_OPENTSDB_BATCH_TIMEOUT


UDP设置

[[udp]]

[[udp]]设置控制InfluxDB行协议数据使用UDP的监听器。有关更多信息,请参阅InfluxDB中的UDP协议支持

enabled = false

确定是否启用UDP监听器。要启用通过UDP的写入,设置值为true

环境变量:INFLUXDB_UDP_ENABLED

绑定地址 = ":8089"

空字符串等同于0.0.0.0

环境变量:INFLUXDB_UDP_BIND_ADDRESS

数据库 = "udp"

要写入的数据库名称。

环境变量:INFLUXDB_UDP_DATABASE

retention-policy = ""

与您的数据相关的保留策略。空字符串等同于数据库的DEFAULT保留策略。

环境变量:INFLUXDB_UDP_RETENTION_POLICY

以下三个设置控制批处理的工作方式。您应该启用此设置,否则可能会丢失度量值或性能不佳。如果有很多点进来,批处理将在内存中缓冲点。

batch-size = 5000

如果缓冲了这么多点,则输入将刷新。

环境变量:INFLUXDB_UDP_0_BATCH_SIZE

batch-pending = 10

内存中可能挂起的批次数。

环境变量:INFLUXDB_UDP_0_BATCH_PENDING

batch-timeout = "1s"

即使未达到配置的批处理大小,输入也将至少以这个频率刷新。

环境变量:INFLUXDB_UDP_BATCH_TIMEOUT

读取缓冲区 = 0

UDP读取缓冲区大小,0表示OS默认值。如果设置超过OS最大值,UDP监听器将失败。

环境变量:INFLUXDB_UDP_BATCH_SIZE

精度 = ""

时间精度用于解码时间值。默认为nanoseconds,这是数据库的默认值。

环境变量:INFLUXDB_UDP_PRECISION


连续查询设置

[continuous_queries]

《[continuous_queries]》设置控制 InfluxDB 中如何运行连续查询(CQs)。连续查询是自动执行的一系列查询,这些查询在最近的时间间隔内执行。InfluxDB 在每个 GROUP BY time() 时间间隔中执行一个自动生成的查询。

enabled = true

设置为 false 以禁用 CQs。

环境变量:INFLUXDB_CONTINUOUS_QUERIES_ENABLED

log-enabled = true

设置为 false 以禁用 CQ 事件的日志记录。

环境变量:INFLUXDB_CONTINUOUS_QUERIES_LOG_ENABLED

query-stats-enabled = false

当设置为 true 时,连续查询执行统计信息将写入默认监控存储。

环境变量:INFLUXDB_CONTINUOUS_QUERIES_QUERY_STATS_ENABLED

run-interval = "1s"

InfluxDB 检查是否需要运行 CQ 的间隔。将此选项设置为 CQ 运行的最低间隔。例如,如果您的最频繁的 CQ 每分钟运行一次,请将 run-interval 设置为 1m

环境变量:INFLUXDB_CONTINUOUS_QUERIES_RUN_INTERVAL


传输层安全性(TLS)设置

[tls]

InfluxDB 中传输层安全性(TLS)的全局配置设置。有关更多信息,请参阅启用 HTTPS

如果没有指定 TLS 配置设置,InfluxDB 支持所有列出的加密套件 ID 和在构建 InfluxDB 时实现的 TLS 版本,具体取决于使用的 Go 版本。使用 SHOW DIAGNOSTICS 命令查看构建 InfluxDB 时使用的 Go 版本。

InfluxData 建议配置 InfluxDB 服务器的 TLS 设置以实现“现代兼容性”。这提供了更高的安全性,并假设不需要向后兼容。我们推荐的 TLS 配置设置(ciphersmin-versionmax-version)基于 Mozilla 在Security/Server Side TLS中描述的“现代兼容性”TLS 服务器配置。

InfluxData 推荐的“现代兼容性”TLS 设置如下所示

ciphers = [ "TLS_AES_128_GCM_SHA256",
            "TLS_AES_256_GCM_SHA384",
            "TLS_CHACHA20_POLY1305_SHA256"
]

min-version = "tls1.3"

max-version = "tls1.3"

重要:ciphers 设置中 cipher suite ID 的顺序决定了按优先级选择的算法。TLS min-versionmax-version 设置将支持限制到 TLS 1.3。

ciphers = ["TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",]

指定要协商的加密套件 ID 集合。如果没有指定,ciphers 支持 Go crypto/tls 包中列出的所有现有加密套件 ID。这与之前版本的行为一致。在此示例中,仅支持指定的两个加密套件 ID。

环境变量:INFLUXDB_TLS_CIPHERS

min-version = "tls1.0"

将协商的 TLS 协议的最小版本。有效值包括:tls1.0tls1.1tls1.2tls1.3。如果没有指定,min-version 是在 Go crypto/tls中指定的最小 TLS 版本。在此示例中,tls1.0 将最小版本指定为 TLS 1.0,这与之前 InfluxDB 版本的行为一致。

环境变量:INFLUXDB_TLS_MIN_VERSION

max-version = "tls1.3"

将要协商的TLS协议的最大版本。有效值包括:tls1.0tls1.1tls1.2tls1.3。如果没有指定,则max-version是Go crypto/tls包中指定的最大TLS版本。在本例中,tls1.3指定最大版本为TLS 1.3,这与之前InfluxDB版本的行为一致。

环境变量:INFLUXDB_TLS_MAX_VERSION


这个页面有帮助吗?

感谢您的反馈!


Flux的未来

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

了解更多

InfluxDB v3增强功能和InfluxDB集群版现已正式推出

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

InfluxDB v3性能和功能

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

了解新的v3增强功能


InfluxDB集群版正式推出

InfluxDB集群版现已正式推出,并为您提供在自管理堆栈中使用InfluxDB v3的功能。

与我们讨论InfluxDB集群版