配置 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
环境变量
GOMAXPROCS
环境变量不能像其他环境变量一样使用 InfluxDB 配置文件设置进行设置。
GOMAXPROCS
Go 语言环境变量 可用于设置可以同时执行的最大 CPU 数量。
GOMAXPROCS
的默认值是程序在启动时可见的 CPU 数量(无论您的操作系统认为什么是 CPU)。对于 32 核计算机,GOMAXPROCS
值将为 32
。您可以将此值覆盖为小于最大值,这在您在同一台机器上运行 InfluxDB 以及其他进程并希望确保数据库不会完全占用这些进程的情况下非常有用。
设置 GOMAXPROCS=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
选项,然后检查环境变量。
配置设置
要在允许进行多项配置的配置部分(标题中带有 [[双括号]]
的任何部分支持多项配置)中设置或覆盖设置,必须按序号指定所需的配置。例如,对于第一组 [[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
InfluxData 使用从正在运行的 InfluxDB 节点自愿报告的数据,主要用于跟踪不同 InfluxDB 版本的采用率。此数据有助于 InfluxData 支持 InfluxDB 的持续开发。
reporting-disabled
选项切换每 24 小时向 usage.influxdata.com
报告数据。每个报告都包含一个随机生成的标识符、操作系统、架构、InfluxDB 版本以及 数据库、指标 和唯一的 序列 的数量。将此选项设置为 true
将禁用报告。
注意: 永远不会传输用户数据库中的任何数据。
默认: false
环境变量: INFLUXDB_REPORTING_DISABLED
bind-address
bind-address
选项指定用于 备份和恢复 的 RPC 服务的绑定地址和端口。
默认: 127.0.0.1:8088
环境变量: INFLUXDB_BIND_ADDRESS
compact-series-file
compact-series-file
选项确定是否应在启动时压缩序列文件。如果为 true
,则 InfluxDB 在启动 influxd
服务器之前运行 influxd_inspect -compact-series-file
。
默认: false
环境变量: INFLUXDB_COMPACT_SERIES_FILE
元存储设置
[meta]
本节控制 InfluxDB 元存储的参数,该元存储存储有关用户、数据库、保留策略、分片和连续查询的信息。
dir
存储元数据/Raft 数据库的目录。meta
目录中的文件包括 meta.db
,即 InfluxDB 元存储文件。
macOS 安装的默认目录为 /Users/<username>/.influxdb/meta
。
默认: /var/lib/influxdb/meta
环境变量: INFLUXDB_META_DIR
retention-autocreate
启用在创建数据库时自动创建 DEFAULT
保留策略 autogen
。保留策略 autogen
具有无限持续时间,并且还设置为数据库的 DEFAULT
保留策略,当写入或查询未指定保留策略时使用该策略。禁用此设置可防止在创建数据库时创建此保留策略。
默认: true
环境变量: INFLUXDB_META_RETENTION_AUTOCREATE
logging-enabled
启用来自元服务的消息日志记录。
默认: true
环境变量: INFLUXDB_META_LOGGING_ENABLED
数据设置
[data]
[data]
设置控制 InfluxDB 的实际分片数据所在的位置以及如何从预写日志 (WAL) 中刷新数据。dir
可能需要更改为适合您系统的位置,但 WAL 设置是高级配置。默认值应适用于大多数系统。
dir
TSM 引擎存储 TSM 文件的 InfluxDB 目录。可以更改此目录。
macOS 安装的默认目录为 /Users/<username>/.influxdb/data
。
默认: /var/lib/influxdb/data
环境变量: INFLUXDB_DATA_DIR
wal-dir
预写日志 (WAL) 文件的目录位置。
对于 macOS 安装,默认的 WAL 目录为 /Users/<username>/.influxdb/wal
。
默认: /var/lib/influxdb/wal
环境变量: INFLUXDB_DATA_WAL_DIR
wal-fsync-delay
写入等待 fsync 的时间量。使用大于 0
的持续时间来批量处理多个 fsync 调用。这对于较慢的磁盘或遇到 WAL 写入争用时很有用。
对于非 SSD 磁盘,InfluxData 建议使用 0ms
-100ms
范围内的值。
默认: 0s
环境变量: INFLUXDB_DATA_WAL_FSYNC_DELAY
index-version
用于新分片的分片索引类型。默认的 (inmem
) 索引是一个内存索引,在启动时重新创建。要启用基于磁盘的时间序列索引 (TSI),请将值设置为 tsi1
。
默认: inmem
环境变量: INFLUXDB_DATA_INDEX_VERSION
trace-logging-enabled
启用 TSM 引擎和 WAL 内其他调试信息的详细日志记录。跟踪日志记录为调试 TSM 引擎问题提供了更有用的输出。
默认: false
环境变量: INFLUXDB_DATA_TRACE_LOGGING_ENABLED
query-log-enabled
启用执行前解析的查询的日志记录。查询日志对于故障排除很有用,但会记录查询中包含的任何敏感数据。
默认: true
环境变量: INFLUXDB_DATA_QUERY_LOG_ENABLED
strict-error-handling
设置为 false
时,任何尝试插入不受支持的值(例如 +/-Inf
或 NaN
)的查询都会静默地插入失败的不受支持的值,并继续插入查询中的任何有效点。
设置为 true
以提供更多错误检查。例如,尝试插入 +/-Inf
值的 SELECT INTO
查询会返回错误(而不是静默失败),并且不会插入任何点。
默认: false
环境变量: INFLUXDB_DATA_STRICT_ERROR_HANDLING
validate-keys
验证传入的写入,以确保指标键和标签键仅具有有效的 Unicode 字符。此设置会产生少量开销,因为必须检查每个键。这不会验证字段键。
默认: false
环境变量: INFLUXDB_VALIDATE_KEYS
TSM 引擎的设置
cache-max-memory-size
分片缓存可以达到的最大大小,超过此大小后将开始拒绝写入。
有效的内存大小后缀为:k
、m
或 g
(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。
如果遇到 cache maximum memory size exceeded
错误,请考虑增加此值。
默认: "1g"
环境变量: INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE
cache-snapshot-memory-size
引擎将快照缓存并将其写入 TSM 文件的大小,从而释放内存。
有效的内存大小后缀为:k
、m
或 g
(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。
默认: "25m"
环境变量: INFLUXDB_DATA_CACHE_SNAPSHOT_MEMORY_SIZE
cache-snapshot-write-cold-duration
如果分片未收到写入或删除,则引擎将快照缓存并将其写入新 TSM 文件的时间间隔。
默认: "10m"
环境变量: INFLUXDB_DATA_CACHE_SNAPSHOT_WRITE_COLD_DURATION
compact-full-write-cold-duration
如果 TSM 引擎在分片中没有收到写入或删除,则将压缩分片中所有 TSM 文件的时间间隔。
默认: "4h"
环境变量: INFLUXDB_DATA_COMPACT_FULL_WRITE_COLD_DURATION
max-concurrent-compactions
可以一次运行的最大并发完全和级别 压缩 数。默认值 0
会导致在运行时使用 50% 的 CPU 内核进行压缩。如果显式设置,则用于压缩的内核数将限制为指定的值。此设置不适用于缓存快照。
有关 GOMAXPROCS
环境变量的更多信息,请参阅此页面上的 GOMAXPROCS
环境变量。
默认: 0
环境变量: INFLUXDB_DATA_MAX_CONCURRENT_COMPACTIONS
max-concurrent-deletes
分片上同时进行的 DELETE
调用的最大数量。默认值为 1
,对于大多数用例应保持不变。
默认: 1
环境变量: INFLUXDB_DATA_MAX_CONCURRENT_DELETES
compact-throughput
TSM 压缩每秒写入磁盘的最大字节数。允许短时间突发超过此值,如 compact-throughput-burst
所确定。
默认: "48m"
(4800 万)
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT
compact-throughput-burst
TSM 压缩在短暂突发期间每秒写入磁盘的最大字节数。
默认: "48m"
(4800 万)
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT_BURST
aggressive-points-per-block
在激进压缩期间要使用的每个块的点数。在某些情况下,TSM 文件不会完全压缩。这将调整内部参数以帮助确保这些文件得到完全压缩。
默认: 10000
环境变量: INFLUXDB_AGGRESSIVE_POINTS_PER_BLOCK
tsm-use-madv-willneed
如果为 true
,则 MMap Advise 值 MADV_WILLNEED
会告知内核如何处理输入/输出分页方面的映射内存区域,并期望在不久的将来访问 TSM 文件的映射内存区域。
由于此设置在某些内核(包括 CentOS 和 RHEL)上存在问题,因此默认值为 false
。在某些情况下,将值更改为 true
可能会对拥有慢速磁盘的用户有所帮助。
默认: false
环境变量: INFLUXDB_DATA_TSM_USE_MADV_WILLNEED
内存 (inmem
) 索引设置
max-series-per-database
每个数据库允许的最大 序列 数,超过此数量将丢弃写入。默认设置为 1000000
(一百万)。将设置更改为 0
以允许每个数据库的序列数不受限制。
如果某个点导致数据库中的序列数超过 max-series-per-database
,则 InfluxDB 将不会写入该点,并且会返回 500
并显示以下错误
{"error":"max series per database exceeded: <series>"}
任何序列计数超过 max-series-per-database
的现有数据库将继续接受对现有序列的写入,但创建新序列的写入将失败。
默认: 1000000
环境变量: INFLUXDB_DATA_MAX_SERIES_PER_DATABASE
max-values-per-tag
每个 标签键 允许的最大 标签值 数。默认值为 100000
(十万)。将设置更改为 0
以允许每个标签键的标签值数不受限制。如果标签值导致标签键的标签值数超过 max-values-per-tag
,则 InfluxDB 将不会写入该点,并且会返回 partial write
错误。
任何标签值超过 max-values-per-tag
的现有标签键将继续接受写入,但创建新标签值的写入将失败。
默认: 100000
环境变量: INFLUXDB_DATA_MAX_VALUES_PER_TAG
TSI (tsi1
) 索引设置
max-index-log-file-size
索引预写日志 (WAL) 文件压缩为索引文件的阈值(以字节为单位)。较低的大小将导致日志文件更快地压缩,并导致较低的堆使用率,但会牺牲写入吞吐量。较高的大小将压缩频率较低,在内存中存储更多序列,并提供更高的写入吞吐量。有效的大小后缀为 k
、m
或 g
(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。
默认: "1m"
环境变量: INFLUXDB_DATA_MAX_INDEX_LOG_FILE_SIZE
series-id-set-cache-size
TSI 索引中用于存储先前计算的序列结果的内部缓存的大小。缓存的结果将从缓存中快速返回,而无需在执行具有匹配标签键值谓词的后续查询时重新计算。将此值设置为 0
将禁用缓存,这可能会导致查询性能问题。仅当已知数据库的所有指标中常用的标签键值谓词集大于 100 时,才应增加此值。增加缓存大小可能会导致堆使用率增加。
默认: 100
环境变量: INFLUXDB_DATA_SERIES_ID_SET_CACHE_SIZE
查询管理设置
[coordinator]
本节包含查询管理的配置设置。有关管理查询的更多信息,请参阅 查询管理。
write-timeout
写入请求等待直到向调用者返回“超时”错误的时间。
默认: "10s"
环境变量: INFLUXDB_COORDINATOR_WRITE_TIMEOUT
max-concurrent-queries
您的实例上允许的最大运行查询数。
默认: 0
(无限制)
环境变量: INFLUXDB_COORDINATOR_MAX_CONCURRENT_QUERIES
query-timeout
查询在 InfluxDB 终止查询之前允许执行的最长持续时间。此设置是持续时间。
默认: "0s"
(无时间限制)
环境变量: INFLUXDB_COORDINATOR_QUERY_TIMEOUT
log-queries-after
查询可以运行的最长持续时间,直到 InfluxDB 使用 Detected slow query
消息记录查询。此设置是持续时间。
默认: "0s"
(从不记录慢查询)
环境变量: INFLUXDB_COORDINATOR_LOG_QUERIES_AFTER
max-select-point
SELECT
语句可以处理的最大 点 数。
默认: 0
(无限制)
环境变量: INFLUXDB_COORDINATOR_MAX_SELECT_POINT
max-select-series
SELECT
语句可以处理的最大 序列 数。
默认设置 (0
) 允许 SELECT
语句处理无限数量的序列。
默认: 0
环境变量: INFLUXDB_COORDINATOR_MAX_SELECT_SERIES
max-select-buckets
查询可以处理的最大 GROUP BY time()
存储桶数。
默认设置 (0
) 允许查询处理无限数量的存储桶。
默认: 0
环境变量: INFLUXDB_COORDINATOR_MAX_SELECT_BUCKETS
termination-query-log
当 InfluxDB 收到 SIGTERM
(当进程超出容器内存限制或由 kill
命令发送时发送)时,打印正在运行的查询列表。
默认: false
环境变量: INFLUXDB_COORDINATOR_TERMINATE_QUERY_LOG
Flux 查询管理设置
[flux-controller]
flux-controller
设置控制 Flux 查询的行为。
query-concurrency
允许并发执行的 Flux 查询数。0
表示无限制。
默认: 0
环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_CONCURRENCY
query-initial-memory-bytes
Flux 查询启动时为其分配的初始字节数。如果未设置,则使用 query-max-memory-bytes
。0
表示无限制。
默认: 0
环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_INITIAL_MEMORY_BYTES
query-max-memory-bytes
Flux 查询在任何给定时间允许使用的最大字节数(以表内存计)。0
表示无限制。
如果请求更多内存会与控制器可以请求的最大内存量冲突,则查询可能无法使用其整个内存配额。
默认: 0
环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_MAX_MEMORY_BYTES
total-max-memory-bytes
Flux 查询控制器允许分配给 Flux 查询的最大内存量。0
表示无限制。
如果未设置,则此数字为 query-concurrency * query-max-memory-bytes
。此数字必须大于或等于 query-concurrency * query-initial-memory-bytes
,并且可以小于 query-concurrency * query-max-memory-bytes
。
默认: 0
环境变量: INFLUXDB_FLUX_CONTROLLER_TOTAL_MAX_MEMORY_BYTES
query-queue-size
在新查询被拒绝之前,允许排队等待执行的 Flux 查询数。0
表示无限制。
默认值 0
允许排队无限数量的查询。
默认: 0
环境变量: INFLUXDB_FLUX_CONTROLLER_QUERY_QUEUE_SIZE
保留策略设置
[retention]
[retention]
设置控制强制执行保留策略以驱逐旧数据。
enabled
设置为 false
以防止 InfluxDB 强制执行保留策略。
默认: true
环境变量: INFLUXDB_RETENTION_ENABLED
check-interval
InfluxDB 检查以强制执行保留策略的时间间隔。
默认: "30m0s"
环境变量: INFLUXDB_RETENTION_CHECK_INTERVAL
分片预创建设置
[shard-precreation]
[shard-precreation]
设置控制分片的预创建,以便在数据到达之前分片可用。仅创建在创建后其开始时间和结束时间都在将来的分片。永远不会预创建全部或部分在过去的分片。
enabled
确定是否启用分片预创建服务。
默认: true
环境变量: INFLUXDB_SHARD_PRECREATION_ENABLED
check-interval
检查以预创建新分片运行的时间间隔。
默认: "10m"
环境变量: INFLUXDB_SHARD_PRECREATION_CHECK_INTERVAL
advance-period
InfluxDB 预创建分片的最长未来时间段。30m
默认值应适用于大多数系统。在未来
将此设置增加太远可能会导致效率低下。
默认: "30m"
环境变量: INFLUXDB_SHARD_PRECREATION_ADVANCE_PERIOD
监控设置
[monitor]
[monitor]
部分设置控制 InfluxDB 系统自我监控。
默认情况下,InfluxDB 将数据写入 _internal
数据库。如果该数据库不存在,InfluxDB 会自动创建它。_internal
数据库上的 DEFAULT
保留策略为七天。如果您想使用七天保留策略以外的保留策略,则必须创建它。
store-enabled
设置为 false
以禁用内部记录统计信息。如果设置为 false
,则会大大增加诊断安装问题
默认: true
环境变量: INFLUXDB_MONITOR_STORE_ENABLED
store-database
记录统计信息的目标数据库。
默认: _internal
环境变量: INFLUXDB_MONITOR_STORE_DATABASE
store-interval
InfluxDB 记录统计信息的时间间隔。默认值为每十秒 (10s
)。
默认: 10s
环境变量: INFLUXDB_MONITOR_STORE_INTERVAL
HTTP 端点设置
[http]
[http]
部分设置控制 InfluxDB 如何配置 HTTP 端点。这些是将数据输入和输出 InfluxDB 的主要机制。编辑此部分中的设置以启用 HTTPS 和身份验证。
有关启用 HTTPS 和身份验证的详细信息,请参阅 身份验证和授权。
enabled
确定是否启用 HTTP 端点。要禁用对 HTTP 端点的访问,请将值设置为 false
。请注意,InfluxDB 命令行界面 (CLI) 使用 InfluxDB API 连接到数据库。
默认: true
环境变量: INFLUXDB_HTTP_ENABLED
flux-enabled
确定是否启用 Flux 查询端点。要启用 Flux 查询的使用,请将值设置为 true
。
默认: false
环境变量: INFLUXDB_HTTP_FLUX_ENABLED
bind-address
HTTP 服务使用的绑定地址(端口)。
默认: ":8086"
环境变量: INFLUXDB_HTTP_BIND_ADDRESS
auth-enabled
确定是否通过 HTTP 和 HTTPS 启用用户身份验证。要要求身份验证,请将值设置为 true
。
默认: false
环境变量: INFLUXDB_HTTP_AUTH_ENABLED
realm
发出基本身份验证质询时发送回的默认领域。该领域是 HTTP 端点使用的 JWT 领域。
默认: "InfluxDB"
环境变量: INFLUXDB_HTTP_REALM
log-enabled
确定是否启用 HTTP 请求日志记录。要禁用日志记录,请将值设置为 false
。
默认: true
环境变量: INFLUXDB_HTTP_LOG_ENABLED
suppress-write-log
确定在启用日志时是否应禁止 HTTP 写入请求日志。
默认: false
环境变量: INFLUXDB_HTTP_SUPPRESS_WRITE_LOG
access-log-path
访问日志的路径,该路径确定是否使用 log-enabled = true
启用详细的写入日志记录。指定启用 HTTP 请求日志记录时是否将 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-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
确定是否启用详细的写入日志记录。设置为 true
可为写入负载启用日志记录。如果设置为 true
,这将在日志中复制每个写入语句,因此不建议常规使用。
默认: false
环境变量: INFLUXDB_HTTP_WRITE_TRACING
pprof-enabled
确定是否启用 /net/http/pprof
HTTP 端点。对故障排除和监控很有用。
默认: true
环境变量: INFLUXDB_HTTP_PPROF_ENABLED
pprof-auth-enabled
在 /debug
端点上启用身份验证。如果启用,用户需要管理员权限才能访问以下端点
/debug/pprof
/debug/requests
/debug/vars
如果 auth-enabled
或 pprof-enabled
设置为 false
,则此设置无效。
默认: false
环境变量: INFLUXDB_HTTP_PPROF_AUTH_ENABLED
debug-pprof-enabled
启用默认的 /pprof
端点并绑定到 localhost:6060
。对于调试启动性能问题很有用。
默认: false
环境变量: INFLUXDB_HTTP_DEBUG_PPROF_ENABLED
ping-auth-enabled
在 /ping
、/metrics
和已弃用的 /status
端点上启用身份验证。如果 auth-enabled
设置为 false
,则此设置无效。
默认: false
环境变量: INFLUXDB_HTTP_PING_AUTH_ENABLED
prom-read-auth-enabled
在 Prometheus 远程读取 API 上启用身份验证。如果 auth-enabled
设置为 false
,则此设置无效。
默认: false
环境变量: INFLUXDB_HTTP_PROM_READ_AUTH_ENABLED
http-headers
用户提供的 HTTP 响应标头。配置此部分以返回 安全标头,例如在需要时返回 X-Frame-Options
或 Content Security Policy
。
示例
[http.headers]
X-Frame-Options = "DENY"
https-enabled
确定是否启用 HTTPS。要启用 HTTPS,请将值设置为 true
。
默认: false
环境变量: INFLUXDB_HTTP_HTTPS_ENABLED
https-certificate
启用 HTTPS 时要使用的 SSL 证书文件的路径。
默认值: "/etc/ssl/influxdb.pem"
环境变量: 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
) 允许无限数量的行。如果查询结果超过指定值,则 InfluxDB 在响应正文中包含 "partial":true
标签。
默认: 0
环境变量: INFLUXDB_HTTP_MAX_ROW_LIMIT
max-connection-limit
一次可以打开的最大连接数。将丢弃超出限制的新连接。默认值 0
禁用此限制。
默认: 0
环境变量: INFLUXDB_HTTP_MAX_CONNECTION_LIMIT
unix-socket-enabled
通过 UNIX 域套接字启用 HTTP 服务。要通过 UNIX 域套接字启用 HTTP 服务,请将值设置为 true
。
默认: false
环境变量: INFLUXDB_HTTP_UNIX_SOCKET_ENABLED
bind-socket
UNIX 域套接字的路径。
默认值: "/var/run/influxdb.sock"
环境变量: INFLUXDB_HTTP_UNIX_BIND_SOCKET
max-body-size
客户端请求主体的最大大小(以字节为单位)。当 HTTP 客户端发送的数据超过配置的最大大小时,将返回 413 Request Entity Too Large
HTTP 响应。要禁用此限制,请将值设置为 0
。
默认值: 25000000
环境变量: 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
或将 max-concurrent-write-limit
值设置为 0
。
默认: 0
环境变量: INFLUXDB_HTTP_ENQUEUED_WRITE_TIMEOUT
日志记录设置
[logging]
控制记录器如何将日志发送到输出。
format
确定用于日志的日志编码器。有效值为 auto
(默认)、logfmt
和 json
。使用默认的 auto
选项,如果输出到 TTY 设备(例如,终端),则使用更用户友好的控制台编码。如果输出到文件,则 auto 选项使用 logfmt
编码。logfmt
和 json
选项对于与外部工具集成很有用。
默认值: auto
环境变量: INFLUXDB_LOGGING_FORMAT
level
要发出的日志级别。有效值为 error
、warn
、info
(默认)和 debug
。将发出等于或高于指定级别的日志。
默认值: info
环境变量: INFLUXDB_LOGGING_LEVEL
suppress-logo
禁止在程序启动时打印的徽标输出。如果 STDOUT
不是 TTY,则始终禁止徽标。
默认: false
环境变量: INFLUXDB_LOGGING_SUPPRESS_LOGO
订阅设置
[subscriber]
[subscriber]
部分控制 Kapacitor 如何接收数据。
enabled
确定是否启用订阅服务。要禁用订阅服务,请将值设置为 false
。
默认: true
环境变量: INFLUXDB_SUBSCRIBER_ENABLED
http-timeout
HTTP 写入订阅者的持续时间,直到超时。
默认值: "30s"
环境变量: INFLUXDB_SUBSCRIBER_HTTP_TIMEOUT
insecure-skip-verify
确定是否允许与订阅者建立不安全的 HTTPS 连接。这在测试自签名证书时很有用。
默认: false
环境变量: INFLUXDB_SUBSCRIBER_INSECURE_SKIP_VERIFY
ca-certs
PEM 编码的 CA 证书文件路径。如果该值为空字符串 (""
),则将使用默认系统证书。
默认: ""
环境变量: INFLUXDB_SUBSCRIBER_CA_CERTS
write-concurrency
处理写入通道的写入器 goroutine 的数量。
默认值: 40
环境变量: INFLUXDB_SUBSCRIBER_WRITE_CONCURRENCY
write-buffer-size
写入通道中缓冲的正在进行的写入数。
默认值: 1000
环境变量: INFLUXDB_SUBSCRIBER_WRITE_BUFFER_SIZE
total-buffer-bytes
分配给跨所有订阅缓冲的总字节大小。每个命名的订阅都会获得总量的平均分配。
默认: 0
环境变量: INFLUXDB_SUBSCRIBER_TOTAL_BUFFER_BYTES
Graphite 设置
[[graphite]]
此部分控制 Graphite 数据的一个或多个监听器。有关更多信息,请参阅 InfluxDB 中的 Graphite 协议支持。
enabled
设置为 true
以启用 Graphite 输入。
默认: false
环境变量: 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
或 udp
。
默认值: "tcp"
环境变量: INFLUXDB_GRAPHITE_PROTOCOL
consistency-level
必须确认写入的节点数。如果未满足要求,则返回值将为 partial write
(如果批处理中的某些点失败)或 write failure
(如果批处理中的所有点都失败)。有关更多信息,请参阅 InfluxDB 行协议语法参考中写入的查询字符串参数部分。
默认值: "one"
环境变量: INFLUXDB_GRAPHITE_CONSISTENCY_LEVEL
以下三个设置控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。如果有很多传入的点,批处理将在内存中缓冲点。
batch-size
如果缓冲了这么多点,输入将刷新。
默认值: 5000
环境变量: INFLUXDB_GRAPHITE_BATCH_SIZE
batch-pending
内存中可能挂起的批处理数。
默认值: 10
环境变量: INFLUXDB_GRAPHITE_BATCH_PENDING
batch-timeout
即使尚未达到配置的 batch-size,输入也会至少以这个频率刷新。
默认值: "1s"
环境变量: INFLUXDB_GRAPHITE_BATCH_TIMEOUT
udp-read-buffer
UDP 读取缓冲区大小,0
表示操作系统默认值。如果设置高于操作系统最大值,UDP 监听器将失败。
默认: 0
环境变量: INFLUXDB_GRAPHITE_UDP_READ_BUFFER
separator
此字符串连接多个匹配的“measurement”值,从而更好地控制最终的 measurement 名称。
默认值: "."
环境变量: INFLUXDB_GRAPHITE_SEPARATOR
CollectD 设置
[[collectd]]
[[collectd]]
设置控制 collectd
数据的监听器。有关更多信息,请参阅 InfluxDB 中的 CollectD 协议支持。
enabled
设置为 true
以启用 collectd
写入。
默认: false
环境变量: INFLUXDB_COLLECTD_ENABLED
bind-address
端口。
默认值: ":25826"
环境变量: INFLUXDB_COLLECTD_BIND_ADDRESS
database
要写入的数据库的名称。默认为 collectd
。
默认值: "collectd"
环境变量: INFLUXDB_COLLECTD_DATABASE
retention-policy
相关的保留策略。空字符串等效于数据库的 DEFAULT
保留策略。
默认: ""
环境变量: INFLUXDB_COLLECTD_RETENTION_POLICY
typesdb
collectd 服务支持扫描目录以查找多个 types db 文件,或指定单个 db 文件。可以在 此处找到示例 types.db
文件。
默认值: "/usr/local/share/collectd"
环境变量: INFLUXDB_COLLECTD_TYPESDB
security-level
默认值: "none"
环境变量: INFLUXDB_COLLECTD_SECURITY_LEVEL
auth-file
默认值: "/etc/collectd/auth_file"
环境变量: INFLUXDB_COLLECTD_AUTH_FILE
以下三个设置控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。如果有很多传入的点,批处理将在内存中缓冲点。*
batch-size
如果缓冲了这么多点,输入将刷新。
默认值: 5000
环境变量: INFLUXDB_COLLECTD_BATCH_SIZE
batch-pending
内存中可能挂起的批处理数。
默认值: 10
环境变量: INFLUXDB_COLLECTD_BATCH_PENDING
batch-timeout
即使尚未达到配置的 batch-size,输入也会至少以这个频率刷新。
默认: "10s"
环境变量: INFLUXDB_COLLECTD_BATCH_TIMEOUT
read-buffer
UDP 读取缓冲区大小,0
表示操作系统默认值。如果设置高于操作系统最大值,UDP 监听器将失败。
默认: 0
环境变量: INFLUXDB_COLLECTD_READ_BUFFER
parse-multivalue-plugin
当设置为 split
时,多值插件数据(例如,df free:5000,used:1000
)将拆分为单独的 measurement(例如,(df_free, value=5000)
(df_used, value=1000)
)。当设置为 join
时,多值插件数据将存储为单个多值 measurement(例如,(df, free=5000,used=1000)
)。
默认值: "split"
环境变量: INFLUXDB_COLLECTD_PARSE_MULTIVALUE_PLUGIN
OpenTSDB 设置
[[opentsdb]]
控制 OpenTSDB 数据的监听器。有关更多信息,请参阅 InfluxDB 中的 OpenTSDB 协议支持。
enabled
设置为 true
以启用 openTSDB 写入。
默认: false
环境变量: INFLUXDB_OPENTSDB_0_ENABLED
bind-address
默认端口。
默认值: ":4242"
环境变量: INFLUXDB_OPENTSDB_BIND_ADDRESS
database
要写入的数据库的名称。如果数据库不存在
,则在初始化输入时将自动创建它。
默认值: "opentsdb"
环境变量: INFLUXDB_OPENTSDB_DATABASE
retention-policy
相关的保留策略。空字符串等效于
数据库的 DEFAULT
保留策略。
默认: ""
环境变量: INFLUXDB_OPENTSDB_RETENTION_POLICY
consistency-level
设置写入一致性级别:any
、one
、quorum
或 all
用于写入。
默认值: "one"
环境变量: INFLUXDB_OPENTSDB_CONSISTENCY_LEVEL
tls-enabled
为 openTSDB 写入启用 TLS。
默认: false
环境变量: INFLUXDB_OPENTSDB_TLS_ENABLED
certificate
启用 TLS 时要使用的 SSL 证书文件的路径。
默认值: "/etc/ssl/influxdb.pem"
环境变量: INFLUXDB_OPENTSDB_CERTIFICATE
log-point-errors
为每个格式错误的点记录错误。
默认: true
环境变量: INFLUXDB_OPENTSDB_0_LOG_POINT_ERRORS
以下三个设置控制批处理的工作方式。您应该启用此功能,否则可能会丢失指标或性能不佳。只有通过 telnet 协议接收的点指标才进行批处理。*
batch-size
如果缓冲了这么多点,输入将刷新。
默认值: 1000
环境变量: INFLUXDB_OPENTSDB_BATCH_SIZE
batch-pending
内存中可能挂起的批处理数。
默认值: 5
环境变量: INFLUXDB_OPENTSDB_BATCH_PENDING
batch-timeout
即使尚未达到配置的 batch-size,输入也会至少以这个频率刷新。
默认值: "1s"
环境变量: INFLUXDB_OPENTSDB_BATCH_TIMEOUT
UDP 设置
[[udp]]
[[udp]]
设置控制使用 UDP 的 InfluxDB 行协议数据的监听器。有关更多信息,请参阅 InfluxDB 中的 UDP 协议支持。
enabled
确定是否启用 UDP 监听器。要通过 UDP 启用写入,请将值设置为 true
。
默认: false
环境变量: INFLUXDB_UDP_ENABLED
bind-address
空字符串等效于 0.0.0.0
。
默认值: ":8089"
环境变量: INFLUXDB_UDP_BIND_ADDRESS
database
要写入的数据库的名称。
默认值: "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
即使尚未达到
配置的 batch-size,输入也会至少以这个频率刷新。
默认值: "1s"
环境变量: INFLUXDB_UDP_BATCH_TIMEOUT
read-buffer
UDP 读取缓冲区大小,0
表示操作系统默认值。如果设置
高于操作系统最大值,UDP 监听器将失败。
默认: 0
环境变量: INFLUXDB_UDP_BATCH_SIZE
precision
时间精度,用于
解码时间值。默认为 nanoseconds
,这是
数据库的默认值。
默认: ""
环境变量: INFLUXDB_UDP_PRECISION
连续查询设置
[continuous_queries]
[continuous_queries]
设置控制 连续查询 (CQ) 在 InfluxDB 中如何运行。连续查询是在最近的时间间隔内执行的自动批处理查询。InfluxDB 对每个 GROUP BY time()
间隔执行一个自动生成的查询。
enabled
设置为 false
以禁用 CQ。
默认: true
环境变量: INFLUXDB_CONTINUOUS_QUERIES_ENABLED
log-enabled
设置为 false
以禁用 CQ 事件的日志记录。
默认: true
环境变量: INFLUXDB_CONTINUOUS_QUERIES_LOG_ENABLED
query-stats-enabled
当设置为 true
时,连续查询执行统计信息将写入
默认的监控存储。
默认: false
环境变量: INFLUXDB_CONTINUOUS_QUERIES_QUERY_STATS_ENABLED
run-interval
InfluxDB 检查是否需要运行 CQ 的间隔。将此
选项设置为 CQ 运行的最低间隔。例如,如果最
频繁的 CQ 每分钟运行一次,请将 run-interval
设置为 1m
。
默认值: "1s"
环境变量: INFLUXDB_CONTINUOUS_QUERIES_RUN_INTERVAL
传输层安全 (TLS) 设置
[tls]
InfluxDB 中传输层安全 (TLS) 的全局配置设置。有关更多信息,请参阅 启用 HTTPS。
如果未指定 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 设置在以下配置设置示例中指定
[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
设置中密码套件 ID 的顺序决定了按优先级选择哪些算法。TLS min-version
和 max-version
设置将支持限制为 TLS 1.3。
ciphers
指定要协商的密码套件 ID 集。如果未指定,ciphers
支持 Go crypto/tls
包中列出的所有现有密码套件 ID。这与以前版本中的行为一致。在此示例中,仅支持两个指定的密码套件 ID。
默认值: ["TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305", "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"]
环境变量: INFLUXDB_TLS_CIPHERS
min-version
将协商的 TLS 协议的最低版本。有效值包括:tls1.0
、tls1.1
、tls1.2
和 tls1.3
。如果未指定,min-version
是 Go crypto/tls
包中指定的最低 TLS 版本。在此示例中,tls1.0
将最低版本指定为 TLS 1.0,这与以前 InfluxDB 版本的行为一致。
默认值: "tls1.0"
环境变量: INFLUXDB_TLS_MIN_VERSION
max-version
将协商的 TLS 协议的最大版本。有效值包括:tls1.0
、tls1.1
、tls1.2
和 tls1.3
。如果未指定,max-version
是 Go crypto/tls
包中指定的最高 TLS 版本。在此示例中,tls1.3
将最大版本指定为 TLS 1.3,这与以前 InfluxDB 版本的行为一致。
默认值: tls1.3
环境变量: INFLUXDB_TLS_MAX_VERSION
此页面是否对您有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一份子!我们欢迎并鼓励您提供有关 InfluxDB 和本文档的反馈和错误报告。要查找支持,请使用以下资源
拥有年度合同或支持合同的客户可以联系 InfluxData 支持。