配置 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 选项,然后检查环境变量。
配置设置
注意: 要在允许多个配置的配置部分中设置或覆盖设置(任何带有
[[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 节点的数据,主要用于跟踪不同 InfluxDB 版本的采用率。这些数据帮助 InfluxData 支持 InfluxDB 的持续发展。
选项 reporting-disabled 切换每 24 小时向 usage.influxdata.com 报告数据的功能。每个报告包括一个随机生成的标识符、操作系统、架构、InfluxDB 版本,以及 databases、measurements 和唯一的 series 的数量。将此选项设置为 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//.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"
InfluxDB 目录,其中 TSM 引擎存储 TSM 文件。
此目录可能会更改。
注意: macOS 安装的默认目录是
/Users/。/.influxdb/data
环境变量: INFLUXDB_DATA_DIR
wal-dir = "/var/lib/influxdb/wal"
写前日志(WAL)文件的目录位置。
注意: 对于macOS安装,默认的WAL目录是
/Users/。/.influxdb/wal
环境变量: INFLUXDB_DATA_WAL_DIR
wal-fsync-delay = "0s"
写入在进行fsync之前等待的时间。使用大于 0 的持续时间来批处理多个fsync调用。
这对于较慢的磁盘或在遇到WAL写入争用时很有用。
0s的默认值会对每个写入进行fsync到WAL。
注意: 对于非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)。没有大小后缀的值以字节为单位。
如果遇到 cache maximum memory size exceeded 错误,请考虑增加此值。
环境变量: 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
一次可以运行的并发完全和级别 compactions 的最大数量。 默认值为 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 万字节)。
请注意,允许短时间的突发情况发生,可能会在由 compact-throughput-burst 设置的更大值下。
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT
compact-throughput-burst = "48m"
TSM 压缩在短时间内写入磁盘的最大字节数。默认值为 "48m" (4800万)。
环境变量: INFLUXDB_DATA_COMPACT_THROUGHPUT_BURST
tsm-use-madv-willneed = false
如果 true,则 MMap Advise 值 MADV_WILLNEED Advises 内核如何处理映射的内存区域,以便进行输入/输出分页,并期望在不久的将来访问映射的内存区域,这与 TSM 文件有关。因为这个设置在某些内核(包括 CentOS 和 RHEL)上存在问题,默认值为 false。在某些情况下,将值更改为 true 可能对拥有慢速磁盘的用户有所帮助。
环境变量: INFLUXDB_DATA_TSM_USE_MADV_WILLNEED
内存中的 (inmem) 索引设置
max-series-per-database = 1000000
每个数据库允许的最大series数量,在写操作被丢弃之前。默认设置是1000000(一百万)。将设置更改为0以允许每个数据库无限数量的series。
如果一个点导致数据库中的系列数量超过 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
每个 tag key 允许的最大 tag values 数量。 默认值为 100000(十万)。 将设置更改为 0 以允许每个标签键有无限数量的标签值。 如果一个标签值导致标签键的标签值数量超过 max-values-per-tag,则 InfluxDB 将不写入该点,并返回 partial write 错误。
任何现有的标签键,其标签值超过 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
查询管理设置
[coordinator]
本节包含查询管理的配置设置。有关管理查询的更多信息,请参见 查询管理。
write-timeout = "10s"
写请求等待直到返回“超时”错误给调用者的持续时间。默认值为10秒。
环境变量: INFLUXDB_COORDINATOR_WRITE_TIMEOUT
max-concurrent-queries = 0
允许在您的实例上运行的最大查询数。 默认设置 (0) 允许执行无限数量的查询。
环境变量: INFLUXDB_COORDINATOR_MAX_CONCURRENT_QUERIES
query-timeout = "0s"
查询允许执行的最长持续时间,超出后 InfluxDB 将终止查询。 默认设置(0)允许查询无限制地运行。 该设置是一个 duration。
环境变量: INFLUXDB_COORDINATOR_QUERY_TIMEOUT
log-queries-after = "0s"
查询的最大持续时间,直到 InfluxDB 使用 Detected slow query 消息记录该查询。 默认设置 ("0") 将永远不会让 InfluxDB 记录该查询。 此设置是一个 duration。
环境变量: INFLUXDB_COORDINATOR_LOG_QUERIES_AFTER
max-select-point = 0
一个SELECT语句可以处理的最大points数量。默认设置 (0) 允许SELECT语句处理无限数量的点。
环境变量: INFLUXDB_COORDINATOR_MAX_SELECT_POINT
max-select-series = 0
一个 series 的最大数量
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 数据库上的 DEFAULT 保留策略为七天。
如果您想使用不同于七天保留策略的保留策略,您必须 创建 它。
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和身份验证的详细信息,请参阅 Authentication and Authorization。
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 设备(例如终端),则使用更友好的控制台编码。
如果输出到文件,则 auto 选项使用 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 protocol support in InfluxDB。
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"
必须确认写入的节点数量。 如果未满足该要求,返回值将是 partial write(如果批处理中的某些点失败)或 write failure(如果批处理中的所有点失败)。有关更多信息,请参阅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 = "."
该字符串连接多个匹配的“measurement”值,从而提供对最终测量名称的更多控制。
环境变量: INFLUXDB_GRAPHITE_SEPARATOR
CollectD 设置
[[collectd]]
设置 [[collectd]] 控制 collectd 数据的监听器。有关更多信息,请参见 CollectD protocol support in InfluxDB。
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 服务支持扫描目录以查找多种类型的 db 文件,或指定单个 db 文件。一个示例 types.db 文件可以在 这里 找到。
环境变量: 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 = "10s"
即使未达到配置的批量大小,输入也至少会这么频繁地刷新。
环境变量: INFLUXDB_COLLECTD_BATCH_TIMEOUT
read-buffer = 0
UDP读取缓冲区大小,0表示操作系统默认值。
如果设置超过操作系统最大值,UDP监听器将失败。
环境变量: INFLUXDB_COLLECTD_READ_BUFFER
parse-multivalue-plugin = "split"
当设置为 split 时,多值插件数据(例如 df free:5000,used:1000)将被拆分为单独的测量(例如,(df_free,值=5000)(df_used,值=1000))。当设置为 join 时,多值插件将被存储为单个多值测量(例如,(df,free=5000,used=1000))。默认为 split。
OpenTSDB 设置
[[opentsdb]]
控制OpenTSDB数据的监听器。
有关更多信息,请参见 OpenTSDB协议在InfluxDB中的支持。
enabled = false
设置为 true 以启用 openTSDB 写入。
环境变量: 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 = "one"
设置写入一致性级别: any, one, quorum,或 all 用于写入。
环境变量: INFLUXDB_OPENTSDB_CONSISTENCY_LEVEL
tls-enabled = false
环境变量: INFLUXDB_OPENTSDB_TLS_ENABLED
certificate = "/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 = "1s"
即使未达到配置的批量大小,输入也至少会这么频繁地刷新。
环境变量: INFLUXDB_OPENTSDB_BATCH_TIMEOUT
UDP 设置
[[udp]]
[[udp]] 设置用于控制使用 UDP 的 InfluxDB 行协议数据的监听器。有关更多信息,请参见 UDP protocol support in InfluxDB。
enabled = false
确定UDP监听器是否启用。
要启用UDP写入,请将值设置为 true。
环境变量: INFLUXDB_UDP_ENABLED
bind-address = ":8089"
一个空字符串等效于 0.0.0.0。
环境变量: 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 = "1s"
即使未达到配置的批量大小,输入也至少会这么频繁地刷新。
环境变量: INFLUXDB_UDP_BATCH_TIMEOUT
read-buffer = 0
UDP读取缓冲区大小,0表示操作系统默认值。
如果设置超过操作系统最大值,UDP监听器将失败。
环境变量: INFLUXDB_UDP_BATCH_SIZE
precision = ""
解码时间值时使用的时间精度。默认为nanoseconds,这是数据库的默认值。
环境变量: INFLUXDB_UDP_PRECISION
连续查询设置
[持续查询]
设置 [continuous_queries] 控制连续查询 (CQs) 在 InfluxDB 中的运行方式。连续查询是对最近时间间隔执行的自动化查询批次。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是否需要运行的间隔。将此选项设置为您的CQs运行的最低间隔。例如,如果您最频繁的CQ每分钟运行一次,请将 run-interval 设置为 1m。
环境变量: INFLUXDB_CONTINUOUS_QUERIES_RUN_INTERVAL
传输层安全性 (TLS) 设置
[tls]
InfluxDB中传输层安全性(TLS)的全局配置设置。有关更多信息,请参见 启用HTTPS。
如果没有指定TLS配置设置,InfluxDB支持所有列出的密码套件ID和在Go crypto/tls包文档的常量部分中实现的所有TLS版本,这取决于用于构建InfluxDB的Go版本。使用SHOW DIAGNOSTICS命令查看用于构建InfluxDB的Go版本。
“现代兼容性”的推荐服务器配置
InfluxData 建议为您的 InfluxDB 服务器配置 TLS 设置以实现“现代兼容性”。这提供了更高的安全级别,并假设不需要向后兼容。我们推荐的 ciphers、min-version 和 max-version 的 TLS 配置设置基于 Mozilla 的“现代兼容性”TLS 服务器配置,如 Security/Server Side 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设置中密码套件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 package中指定的最大TLS版本。
在这个例子中, tls1.3 将最大版本指定为TLS 1.3,这与之前的InfluxDB版本的行为一致。
环境变量: INFLUXDB_TLS_MAX_VERSION