配置 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"
分片缓存达到之前可以拒绝写入的最大大小。
有效的内存大小后缀有:k
、m
或 g
(不区分大小写,1024 = 1k)。没有大小后缀的值以字节为单位。
如果遇到 缓存最大内存大小超出
错误,请考虑增加此值。
环境变量:INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE
cache-snapshot-memory-size = "25m"
在此大小上,引擎将快照缓存并将其写入 TSM 文件,从而释放内存。
有效的内存大小后缀有:k
、m
或 g
(不区分大小写,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)文件压缩成索引文件的字节数阈值。较小的尺寸会导致日志文件更快地压缩,并以降低写入吞吐量为代价减少堆的使用。较大的尺寸会较少压缩,存储更多的系列在内存中,并提高写入吞吐量。有效的大小后缀是k
、m
或g
(不区分大小写,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-bytes
。 0
表示无限制。默认为 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 = []
筛选应记录哪些请求。每个筛选器具有 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 = 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-enabled
或 pprof-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-Options
或 Content 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
(默认值),logfmt
和json
。使用默认的auto
选项,如果输出到TTY设备(例如,终端),则使用更用户友好的控制台编码。如果输出到文件,则自动选项使用logfmt
编码。logfmt
和json
选项有助于与外部工具集成。
环境变量:INFLUXDB_LOGGING_FORMAT
level = "info"
要发出的日志级别。有效值是error
,warn
,info
(默认值)和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"
设置为 tcp
或 udp
。
环境变量: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"
设置写入一致性级别:写入时为any
、one
、quorum
或all
。
环境变量: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 配置设置(ciphers
、min-version
和 max-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 的顺序决定了按优先级选择的算法。TLSmin-version
和max-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.0
、tls1.1
、tls1.2
和 tls1.3
。如果没有指定,min-version
是在 Go crypto/tls
包中指定的最小 TLS 版本。在此示例中,tls1.0
将最小版本指定为 TLS 1.0,这与之前 InfluxDB 版本的行为一致。
环境变量:INFLUXDB_TLS_MIN_VERSION
max-version = "tls1.3"
将要协商的TLS协议的最大版本。有效值包括:tls1.0
、tls1.1
、tls1.2
和tls1.3
。如果没有指定,则max-version
是Go crypto/tls
包中指定的最大TLS版本。在本例中,tls1.3
指定最大版本为TLS 1.3,这与之前InfluxDB版本的行为一致。
环境变量:INFLUXDB_TLS_MAX_VERSION
这个页面有帮助吗?
感谢您的反馈!