InfluxDB 3 Core 配置选项
InfluxDB 3 Core 允许您通过使用 influxdb3 命令选项或设置环境变量来自定义配置。
配置服务器
通过命令选项或环境变量传递配置选项。命令选项的优先级高于环境变量。
TOML 配置文件
DEB 和 RPM 安装包包含一个位于 /etc/influxdb3/influxdb3-core.conf 的 TOML 配置文件。systemd 启动程序会读取此文件,并在调用 influxdb3 serve 之前,将每个条目转换为 INFLUXDB3_* 环境变量(转换模式为 INFLUXDB3_<KEY>,并将连字符替换为下划线并转换为大写)。
influxdb3 serve 目前尚不支持原生读取 TOML;该文件的作用是通过启动程序设置的环境变量来实现的。传递给 influxdb3 serve 的 CLI 标志仍然会覆盖 TOML 文件中定义的值,因为它们会覆盖该文件所转换成的环境变量。
有关日常的 systemd 操作(包括应用更改时的“编辑并重启”工作流程),请参阅 作为系统服务运行 (Linux)。
全局选项与 serve 特定选项
某些选项是全局的(在命令之前指定),而另一些则是 serve 特定的(在 serve 之后指定)。
- 全局选项:应用于
influxdb3CLI 本身(例如--num-io-threads)。 - Serve 选项:仅应用于
serve命令(例如--node-id、--object-store、--verbose)。
包含全局选项和 serve 特定选项的示例命令
influxdb3 --num-io-threads=4 serve \
--node-id node0 \
--object-store file \
--data-dir ~/.influxdb3 \
--verbose \
--log-filter info环境变量示例
export INFLUXDB3_NODE_IDENTIFIER_PREFIX=my-node
export INFLUXDB3_OBJECT_STORE=file
export INFLUXDB3_DB_DIR=~/.influxdb3
export INFLUXDB3_LOG_FILTER=info
influxdb3 serve全局配置选项
以下选项全局应用于 influxdb3 CLI,并且必须在任何子命令(例如 serve)之前指定。
num-io-threads
设置分配给 IO 运行时线程池的线程数。IO 线程负责处理 HTTP 请求服务、行协议解析和文件操作。
--num-io-threads 是一个全局选项,必须在 serve 命令之前指定。
# Set IO threads (global option before serve)
influxdb3 --num-io-threads=8 serve --node-id=node0 --object-store=file| influxdb3 选项 | 环境变量 |
|---|---|
--num-io-threads | INFLUXDB3_NUM_IO_THREADS |
服务器配置选项
常规
data-dir
对于 file 对象存储,定义 InfluxDB 3 Core 在本地存储文件的位置。使用 file 对象存储时必须设置此项。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--data-dir | INFLUXDB3_DB_DIR |
node-id
指定用作所有对象存储文件路径前缀的节点标识符。对于共享相同对象存储配置(例如同一个存储桶)的所有主机,此标识符应该是唯一的。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--node-id | INFLUXDB3_NODE_IDENTIFIER_PREFIX |
object-store
指定用于存储 Parquet 文件的对象存储服务。此选项支持以下值:
memory:实际上没有对象持久性。memory-throttled:类似于memory,但具有与云对象存储相似的延迟和吞吐量。file:将对象存储在本地文件系统中(必须同时设置--data-dir)。s3:Amazon S3(必须同时设置--bucket、--aws-access-key-id、--aws-secret-access-key,以及可选的--aws-default-region)。google:Google Cloud Storage(必须同时设置--bucket和--google-service-account)。azure:Microsoft Azure blob 存储(必须同时设置--bucket、--azure-storage-account和--azure-storage-access-key)。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store | INFLUXDB3_OBJECT_STORE |
安全性
- tls-key
- tls-cert
- tls-minimum-versions
- without-auth
- disable-authz
- admin-token-recovery-http-bind
- admin-token-file
tls-key
启用 TLS 所需的密钥文件路径。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--tls-key | INFLUXDB3_TLS_KEY |
tls-cert
启用 TLS 所需的证书文件路径。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--tls-cert | INFLUXDB3_TLS_CERT |
tls-minimum-version
TLS 的最低版本。有效值为 tls-1.2 或 tls-1.3。默认值为 tls-1.2。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--tls-minimum-version | INFLUXDB3_TLS_MINIMUM_VERSION |
without-auth
禁用所有服务器操作(CLI 命令和 API 请求)的身份验证。服务器处理所有请求时无需令牌或身份验证。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--without-auth | INFLUXDB3_START_WITHOUT_AUTH |
disable-authz
通过传入逗号分隔的资源列表来选择性地禁用授权。有效值为 health、ping 和 metrics。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--disable-authz | INFLUXDB3_DISABLE_AUTHZ |
admin-token-recovery-http-bind
在单独的端口上启用管理员令牌恢复 HTTP 服务器。此服务器允许在没有现有身份验证的情况下重新生成丢失的管理员令牌。令牌成功重新生成后,服务器会自动关闭。
此选项会创建一个无需身份验证的终端节点来重新生成管理员令牌。仅在丢失管理员令牌访问权限时使用此选项,并确保服务器仅能从受信任的网络访问。
默认值: 127.0.0.1:8182(启用时)
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--admin-token-recovery-http-bind | INFLUXDB3_ADMIN_TOKEN_RECOVERY_HTTP_BIND |
示例用法
# Start server with recovery endpoint
influxdb3 serve --admin-token-recovery-http-bind
# In another terminal, regenerate the admin token
influxdb3 create token --admin --regenerate --host http://127.0.0.1:8182admin-token-file
指定当服务器启动时没有令牌时使用的离线管理员令牌文件。启动后,可以使用提供的令牌与服务器进行交互。离线管理员令牌专为辅助自动化部署而设计。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--admin-token-file | INFLUXDB3_ADMIN_TOKEN_FILE |
离线管理员令牌定义在 JSON 格式的文件中。使用以下命令生成离线管理员令牌文件:
influxdb3 create token --admin \
--name "example-admin-token" \
--expiry 1d \
--offline \
--output-file ./path/to/admin-token.json示例用法
# Generate an admin token offline
influxdb3 create token \
--admin \
--name "example-admin-token" \
--expiry 1d \
--offline \
--output-file ./path/to/admin-token.json
# Start InfluxDB 3 Core using the generated token
influxdb3 serve --admin-token-file ./path/to/admin-token.jsonAWS
- aws-access-key-id
- aws-secret-access-key
- aws-default-region
- aws-endpoint
- aws-session-token
- aws-allow-http
- aws-skip-signature
- aws-credentials-file
aws-access-key-id
使用 Amazon S3 作为对象存储时,将其设置为具有读写指定 S3 存储桶权限的访问密钥。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-access-key-id | AWS_ACCESS_KEY_ID |
aws-secret-access-key
使用 Amazon S3 作为对象存储时,将其设置为与指定访问密钥 ID 配对的密钥访问密钥。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-secret-access-key | AWS_SECRET_ACCESS_KEY |
aws-default-region
使用 Amazon S3 作为对象存储时,如果存储桶区域不同于回退值,请在此处指定。
默认值: us-east-1
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-default-region | AWS_DEFAULT_REGION |
aws-endpoint
使用 Amazon S3 兼容的存储服务时,将其设置为终端节点。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-endpoint | AWS_ENDPOINT |
aws-session-token
使用 Amazon S3 作为对象存储时,将其设置为会话令牌。这在使用联合登录或 SSO 并通过 UI 获取凭据时非常有用。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-session-token | AWS_SESSION_TOKEN |
aws-allow-http
允许与 AWS 进行未加密的 HTTP 连接。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-allow-http | AWS_ALLOW_HTTP |
aws-skip-signature
如果启用,S3 对象存储将不会获取凭据且不会对请求进行签名。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-skip-signature | AWS_SKIP_SIGNATURE |
aws-credentials-file
指定 S3 凭据文件的路径。使用凭据文件时,文件中的设置会覆盖相应的 CLI 标志。
S3 凭据文件为 JSON 格式,应包含以下内容:
{
"aws_access_key_id": "AWS_ACCESS_KEY_ID",
"aws_secret_access_key": "AWS_SECRET_ACCESS_KEY",
"aws_session_token": "AWS_SESSION_TOKEN",
"expiry": "UNIX_SECONDS_TIMESTAMP"
}aws_session_token 和 expiry 字段是可选的。系统会在过期时间或每 1 小时自动检查文件更新。
如果对象存储返回“未认证”错误,InfluxDB 将尝试从该文件更新内存中的凭据,然后重试对象存储请求。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--aws-credentials-file | AWS_CREDENTIALS_FILE |
Google Cloud Service
google-service-account
使用 Google Cloud Storage 作为对象存储时,将其设置为包含 Google 凭据的 JSON 文件路径。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--google-service-account | GOOGLE_SERVICE_ACCOUNT |
Microsoft Azure
azure-storage-account
使用 Microsoft Azure 作为对象存储时,将其设置为导航至 所有服务 > 存储帐户 > [名称] 时看到的名称。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--azure-storage-account | AZURE_STORAGE_ACCOUNT |
azure-storage-access-key
使用 Microsoft Azure 作为对象存储时,将其设置为存储帐户的 设置 > 访问密钥 中的其中一个密钥值。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--azure-storage-access-key | AZURE_STORAGE_ACCESS_KEY |
azure-endpoint
使用 Microsoft Azure 作为对象存储时,将其设置为 Azure Blob 存储终端节点。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--azure-endpoint | AZURE_ENDPOINT |
azure-allow-http
使用 Microsoft Azure 作为对象存储时,允许对 Azure Blob 存储进行未加密的 HTTP 请求。
默认值: false
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--azure-allow-http | AZURE_ALLOW_HTTP |
对象存储
- bucket
- object-store-connection-limit
- object-store-http2-only
- object-store-http2-max-frame-size
- object-store-request-timeout
- object-store-max-retries
- object-store-retry-timeout
- object-store-cache-endpoint
- object-store-tls-allow-insecure
- object-store-tls-ca
bucket
设置要使用的对象存储桶名称。必须同时将 --object-store 设置为云对象存储,此选项才会生效。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--bucket | INFLUXDB3_BUCKET |
object-store-connection-limit
使用基于网络的对象存储时,将连接数限制为此值。
默认值: 16
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-connection-limit | INFLUXDB3_OBJECT_STORE_CONNECTION_LIMIT(推荐)OBJECT_STORE_CONNECTION_LIMIT(已弃用;为了向后兼容而支持) |
object-store-http2-only
强制使用 HTTP/2 连接到基于网络的对象存储。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-http2-only | INFLUXDB3_OBJECT_STORE_HTTP2_ONLY(推荐)OBJECT_STORE_HTTP2_ONLY(已弃用;为了向后兼容而支持) |
object-store-http2-max-frame-size
设置 HTTP/2 连接的最大帧大小(字节/八位字节)。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-http2-max-frame-size | INFLUXDB3_OBJECT_STORE_HTTP2_MAX_FRAME_SIZE(推荐)OBJECT_STORE_HTTP2_MAX_FRAME_SIZE(已弃用;为了向后兼容而支持) |
object-store-request-timeout
设置对象存储请求的 HTTP 请求超时时间。
默认值: 30s
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-request-timeout | INFLUXDB3_OBJECT_STORE_REQUEST_TIMEOUT(推荐)OBJECT_STORE_REQUEST_TIMEOUT(已弃用;为了向后兼容而支持) |
object-store-max-retries
定义请求的最大重试次数。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-max-retries | INFLUXDB3_OBJECT_STORE_MAX_RETRIES(推荐)OBJECT_STORE_MAX_RETRIES(已弃用;为了向后兼容而支持) |
object-store-retry-timeout
指定从初始请求开始,不再尝试进一步重试的最大时间长度。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-retry-timeout | INFLUXDB3_OBJECT_STORE_RETRY_TIMEOUT(推荐)OBJECT_STORE_RETRY_TIMEOUT(已弃用;为了向后兼容而支持) |
object-store-cache-endpoint
设置兼容 S3、支持 HTTP/2 的对象存储缓存的终端节点。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-cache-endpoint | INFLUXDB3_OBJECT_STORE_CACHE_ENDPOINT(推荐)OBJECT_STORE_CACHE_ENDPOINT(已弃用;为了向后兼容而支持) |
object-store-tls-allow-insecure
连接对象存储时允许无效的 TLS 证书。
这会禁用 TLS 证书验证,仅应在测试时使用。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-tls-allow-insecure | INFLUXDB3_OBJECT_STORE_TLS_ALLOW_INSECURE(推荐)OBJECT_STORE_TLS_ALLOW_INSECURE(已弃用;为了向后兼容而支持) |
object-store-tls-ca
指定用于验证对象存储连接的自定义 CA 证书文件(PEM 格式)路径。当对象存储使用由私有 CA 签名的证书时,请使用此项。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--object-store-tls-ca | INFLUXDB3_OBJECT_STORE_TLS_CA(推荐)OBJECT_STORE_TLS_CA(已弃用;为了向后兼容而支持) |
日志
log-filter
设置日志的过滤指令。使用此选项可全局或针对特定组件控制服务器日志的详细程度。
日志级别
以下是可用的日志级别(从最简洁到最详细)
| Level | 描述 |
|---|---|
error | 仅错误 |
warn | 警告和错误 |
info | 信息性消息、警告和错误 (默认) |
debug | 用于故障排除的调试信息,以及上述所有级别 |
trace | 非常详细的跟踪信息,以及上述所有级别(会产生大量日志) |
基本用法
要全局设置日志级别,请传入其中一个日志级别
influxdb3 serve --log-filter debug针对性过滤
全局启用 debug 或 trace 会产生大量日志输出。为了更具针对性的调试,您可以使用 <global_level>,<component>=<level> 格式为特定组件设置不同的日志级别。
调试写入缓冲区操作
influxdb3 serve --log-filter info,influxdb3_write_buffer=debug跟踪 WAL 操作
influxdb3 serve --log-filter info,influxdb3_wal=trace多个针对性过滤
influxdb3 serve --log-filter info,influxdb3_write_buffer=debug,influxdb3_wal=debug常用组件名称
以下是可用于针对性过滤的常用组件名称
| 组件 | 描述 |
|---|---|
influxdb3_write_buffer | 写入缓冲区操作 |
influxdb3_wal | 预写日志操作 |
influxdb3_catalog | 目录和模式操作 |
influxdb3_cache | 缓存操作 |
针对性过滤需要了解代码库的组件名称。组件名称对应于 InfluxDB 3 源代码中的 Rust 包名称。请谨慎在特定组件上使用 debug 或 trace,以避免产生过多的日志输出。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--log-filter | INFLUXDB3_LOG_FILTER(推荐)LOG_FILTER(已弃用;为了向后兼容而支持) |
log-destination
指定日志的目标位置。
此选项支持以下值:
stdout(默认)stderr
默认值: stdout
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--log-destination | INFLUXDB3_LOG_DESTINATION(推荐)LOG_DESTINATION(已弃用;为了向后兼容而支持) |
log-format
定义日志的消息格式。
此选项支持以下值:
full(默认)
默认值: full
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--log-format | INFLUXDB3_LOG_FORMAT(推荐)LOG_FORMAT(已弃用;为了向后兼容而支持) |
query-log-size
定义查询日志的大小。在为新查询腾出空间而清除旧查询之前,日志中最多可保留这么多查询。
默认值: 1000
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--query-log-size | INFLUXDB3_QUERY_LOG_SIZE |
跟踪 (Traces)
- traces-exporter
- traces-exporter-jaeger-agent-host
- traces-exporter-jaeger-agent-port
- traces-exporter-jaeger-service-name
- traces-exporter-jaeger-trace-context-header-name
- traces-jaeger-debug-name
- traces-jaeger-tags
- traces-jaeger-max-msgs-per-second
traces-exporter
设置跟踪导出器的类型。
默认值: none
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-exporter | INFLUXDB3_TRACES_EXPORTER(推荐)TRACES_EXPORTER(已弃用;为了向后兼容而支持) |
traces-exporter-jaeger-agent-host
指定用于跟踪的 Jaeger 代理网络主机名。
默认值: 0.0.0.0
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-exporter-jaeger-agent-host | INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_HOST(推荐)TRACES_EXPORTER_JAEGER_AGENT_HOST(已弃用;为了向后兼容而支持) |
traces-exporter-jaeger-agent-port
定义用于跟踪的 Jaeger 代理网络端口。
默认值: 6831
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-exporter-jaeger-agent-port | INFLUXDB3_TRACES_EXPORTER_JAEGER_AGENT_PORT(推荐)TRACES_EXPORTER_JAEGER_AGENT_PORT(已弃用;为了向后兼容而支持) |
traces-exporter-jaeger-service-name
设置用于跟踪的 Jaeger 服务名称。
默认值: iox-conductor
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-exporter-jaeger-service-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_SERVICE_NAME(推荐)TRACES_EXPORTER_JAEGER_SERVICE_NAME(已弃用;为了向后兼容而支持) |
traces-exporter-jaeger-trace-context-header-name
指定用于传递跟踪上下文的标头名称。
默认值: uber-trace-id
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-exporter-jaeger-trace-context-header-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME(推荐)TRACES_EXPORTER_JAEGER_TRACE_CONTEXT_HEADER_NAME(已弃用;为了向后兼容而支持) |
traces-jaeger-debug-name
指定用于跟踪中强制采样所使用的标头名称。
默认值: jaeger-debug-id
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-jaeger-debug-name | INFLUXDB3_TRACES_EXPORTER_JAEGER_DEBUG_NAME(推荐)TRACES_EXPORTER_JAEGER_DEBUG_NAME(已弃用;为了向后兼容而支持) |
traces-jaeger-tags
定义一组 key=value 对,用于标注跟踪跨度 (tracing spans)。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-jaeger-tags | INFLUXDB3_TRACES_EXPORTER_JAEGER_TAGS(推荐)TRACES_EXPORTER_JAEGER_TAGS(已弃用;为了向后兼容而支持) |
traces-jaeger-max-msgs-per-second
指定每秒发送到 Jaeger 服务的最大消息数。
默认值: 1000
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--traces-jaeger-max-msgs-per-second | INFLUXDB3_TRACES_JAEGER_MAX_MSGS_PER_SECOND(推荐)TRACES_JAEGER_MAX_MSGS_PER_SECOND(已弃用;为了向后兼容而支持) |
DataFusion
- datafusion-num-threads
- datafusion-max-parquet-fanout
- datafusion-use-cached-parquet-loader
- datafusion-config
datafusion-num-threads
设置要使用的 DataFusion 运行时线程的最大数量。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--datafusion-num-threads | INFLUXDB3_DATAFUSION_NUM_THREADS |
datafusion-max-parquet-fanout
当需要以排序方式处理多个 Parquet 文件时(例如去重),指定最大扇出 (fanout)。
默认值: 1000
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--datafusion-max-parquet-fanout | INFLUXDB3_DATAFUSION_MAX_PARQUET_FANOUT |
datafusion-use-cached-parquet-loader
从对象存储读取 Parquet 文件时,使用缓存的 Parquet 加载器。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--datafusion-use-cached-parquet-loader | INFLUXDB3_DATAFUSION_USE_CACHED_PARQUET_LOADER |
datafusion-config
以逗号分隔的 key:value 对列表形式向 DataFusion 提供自定义配置。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--datafusion-config | INFLUXDB3_DATAFUSION_CONFIG |
HTTP
max-http-request-size
指定 HTTP 请求的最大大小。
默认值: 10485760
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--max-http-request-size | INFLUXDB3_MAX_HTTP_REQUEST_SIZE |
http-bind
定义 InfluxDB 服务 HTTP API 请求的地址。
默认值: 0.0.0.0:8181
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--http-bind | INFLUXDB3_HTTP_BIND_ADDR |
Memory
exec-mem-pool-bytes
指定用于查询处理和数据操作的内存池大小。当 InfluxDB 3 Core 处理查询和执行内部数据管理任务时,会使用此内存池。可以作为绝对值(字节)或总可用内存的百分比给出,例如:8000000000 或 10%。
默认值: 8589934592
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--exec-mem-pool-bytes | INFLUXDB3_EXEC_MEM_POOL_BYTES |
force-snapshot-mem-threshold
指定内部内存缓冲区的阈值。支持百分比(可用内存的一部分)或 MB 为单位的绝对值,例如:70% 或 1000。
默认值: 70%
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--force-snapshot-mem-threshold | INFLUXDB3_FORCE_SNAPSHOT_MEM_THRESHOLD |
预写日志 (WAL)
- checkpoint-interval
- wal-flush-interval
- wal-snapshot-size
- wal-max-write-buffer-size
- snapshotted-wal-files-to-keep
- wal-replay-fail-on-error
- wal-replay-concurrency-limit
checkpoint-interval
设置将 快照 合并为月度检查点的时间间隔,以加快服务器启动速度。快照会随着时间的推移在对象存储中积累,且不会自动删除。
如果不进行检查点设置,服务器在启动时会加载单个快照。快照的数量由回溯窗口(gen1-lookback-duration,默认为 1 个月)除以 gen1-duration(默认为 10 分钟)确定,最少为 100 个。在默认设置下,这可能多达 ~4,320 个快照。
启用检查点后,服务器会定期将快照元数据合并到对象存储中的检查点。启动时,服务器每个日历月加载一到两个检查点,然后仅加载自上次检查点以来创建的快照。启用检查点不会删除旧快照。
启动期间最多可同时加载 10 个检查点。服务器每个日历月保留两个检查点,并自动处理月份滚动更新。
接受 持续时间 值,例如:1h、30m、10m。
默认值: 未设置(已禁用)
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--checkpoint-interval | INFLUXDB3_CHECKPOINT_INTERVAL |
示例
influxdb3 serve --checkpoint-interval 1hwal-flush-interval
指定将缓冲数据刷新到 WAL 文件的时间间隔。等待 WAL 确认的写入操作最多需要此时间间隔才能完成。使用 s 表示秒,或 ms 表示毫秒。对于本地磁盘,建议使用 100 ms。
默认值: 1s
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--wal-flush-interval | INFLUXDB3_WAL_FLUSH_INTERVAL |
wal-snapshot-size
定义在快照中尝试移除的 WAL 文件数量。该数字乘以间隔时间,决定了拍摄快照的频率。
默认值: 600
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--wal-snapshot-size | INFLUXDB3_WAL_SNAPSHOT_SIZE |
wal-max-write-buffer-size
指定在必须执行并成功完成刷新之前可以缓冲的最大写入请求数。
默认值: 100000
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--wal-max-write-buffer-size | INFLUXDB3_WAL_MAX_WRITE_BUFFER_SIZE |
snapshotted-wal-files-to-keep
指定在对象存储中保留的已快照 WAL 文件数量。刷新 WAL 文件不会立即清除它们;当已快照的 WAL 文件数量超过此数字时,它们才会被删除。
默认值: 300
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--snapshotted-wal-files-to-keep | INFLUXDB3_NUM_WAL_FILES_TO_KEEP |
wal-replay-fail-on-error
确定 WAL 重放时遇到错误是否应失败。
默认值: false
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--wal-replay-fail-on-error | INFLUXDB3_WAL_REPLAY_FAIL_ON_ERROR |
wal-replay-concurrency-limit
WAL 重放期间的并发限制。将此数字设置得过高可能导致内存溢出 (OOM)。默认值是动态确定的。
默认值: max(num_cpus, 10)
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--wal-replay-concurrency-limit | INFLUXDB3_WAL_REPLAY_CONCURRENCY_LIMIT |
压缩 (Compaction)
gen1-duration
指定 Parquet 文件被编排成的持续时间。数据时间戳将每一行放入此持续时间的文件中。支持的持续时间为 1m、5m 和 10m。这些文件被称为“第 1 代”文件,InfluxDB 3 Enterprise 中的压缩器可以将它们合并为更大的世代。
默认值: 10m
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--gen1-duration | INFLUXDB3_GEN1_DURATION |
缓存
preemptive-cache-age
指定压缩期间预取到 Parquet 缓存的时间间隔。
默认值: 3d
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--preemptive-cache-age | INFLUXDB3_PREEMPTIVE_CACHE_AGE |
parquet-mem-cache-size
指定内存中 Parquet 缓存的大小。接受以兆字节为单位的值(作为整数)或总可用内存的百分比(例如,20%,4096)。
默认值: 20%
v3.0.0 中的破坏性更改
在 v3.0.0 中,--parquet-mem-cache-size-mb 被 --parquet-mem-cache-size 取代。新选项同时接受兆字节(整数)和百分比值。默认值从 1000 MB 更改为总可用内存的 20%。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--parquet-mem-cache-size | INFLUXDB3_PARQUET_MEM_CACHE_SIZE |
parquet-mem-cache-prune-percentage
指定在内存 Parquet 缓存修剪操作期间要修剪的条目百分比。
默认值: 0.1
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--parquet-mem-cache-prune-percentage | INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_PERCENTAGE |
parquet-mem-cache-prune-interval
设置检查内存 Parquet 缓存是否需要修剪的时间间隔。
默认值: 1s
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--parquet-mem-cache-prune-interval | INFLUXDB3_PARQUET_MEM_CACHE_PRUNE_INTERVAL |
parquet-mem-cache-query-path-duration
指定
在内存中缓存最近 Parquet 文件的时间窗口。默认值为 5h。
仅当在查询期间访问时,才会缓存时间戳介于 now 和 now - duration 之间的数据文件——例如,使用默认的 5h 设置:
- 当前时间:
2024-06-10 15:00:00 - 缓存窗口:过去 5 小时(
2024-06-10 10:00:00至现在)
如果查询请求的数据来自 2024-06-09(旧)和 2024-06-10 14:00(最近)
- 已缓存:包含来自
2024-06-10 14:00的数据的 Parquet 文件(在 5 小时窗口内) - 未缓存:包含来自
2024-06-09的数据的 Parquet 文件(在 5 小时窗口外)
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--parquet-mem-cache-query-path-duration | INFLUXDB3_PARQUET_MEM_CACHE_QUERY_PATH_DURATION |
disable-parquet-mem-cache
禁用内存 Parquet 缓存。默认情况下,缓存已启用。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--disable-parquet-mem-cache | INFLUXDB3_DISABLE_PARQUET_MEM_CACHE |
table-index-cache-max-entries
指定表索引缓存中的最大条目数。
默认值: 1000
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--table-index-cache-max-entries | INFLUXDB3_TABLE_INDEX_CACHE_MAX_ENTRIES |
table-index-cache-concurrency-limit
限制表索引缓存操作的并发级别。
默认值: 8
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--table-index-cache-concurrency-limit | INFLUXDB3_TABLE_INDEX_CACHE_CONCURRENCY_LIMIT |
last-cache-eviction-interval
指定从 Last-N-Value 缓存中逐出过期条目的时间间隔,以人类可读的持续时间表示——例如:20s、1m、1h。
默认值: 10s
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--last-cache-eviction-interval | INFLUXDB3_LAST_CACHE_EVICTION_INTERVAL |
distinct-cache-eviction-interval
指定从不同值缓存中逐出过期条目的时间间隔,以人类可读的持续时间表示——例如:20s、1m、1h。
默认值: 10s
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--distinct-cache-eviction-interval | INFLUXDB3_DISTINCT_CACHE_EVICTION_INTERVAL |
query-file-limit
限制查询可以访问的 Parquet 文件数量。如果查询尝试读取超过此限制的数量,InfluxDB 3 Core 将返回错误。
默认值: 432
在默认的 432 设置和 10 分钟的默认 gen1-duration 设置下,查询最多可以访问 72 小时的数据,但具体取决于给定 10 分钟时间块内的所有数据是否在同一时期摄入,实际访问量可能会更少。
您可以增加此限制以允许查询更多文件,但请注意以下副作用:
- 读取更多 Parquet 文件的查询性能会下降
- 内存使用量增加
- 您的系统可能因为内存溢出 (OOM) 错误而终止
influxdb3进程 - 如果使用对象存储来存储数据,则会有大量用于访问数据的 GET 请求(每个文件最多 2 个)
我们建议保持默认设置并查询较小的时间范围。如果您需要查询更长的时间范围,或对访问一小时或更长时间数据的查询需要更快的查询性能,InfluxDB 3 Enterprise 通过压缩和重新编排 Parquet 文件来优化数据存储,从而实现更快的查询性能。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--query-file-limit | INFLUXDB3_QUERY_FILE_LIMIT |
处理引擎
plugin-dir
指定包含 Python 插件及其测试文件的本地目录。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--plugin-dir | INFLUXDB3_PLUGIN_DIR |
不同部署类型的默认行为
| 部署方式 | 默认状态 | 配置 |
|---|---|---|
| Docker 镜像 | 已启用 | INFLUXDB3_PLUGIN_DIR=/plugins |
| DEB/RPM 包 | 已启用 | plugin-dir="/var/lib/influxdb3/plugins" |
| 二进制/源码 | 已禁用 | 未配置 plugin-dir |
禁用处理引擎
要禁用处理引擎,请确保未配置 plugin-dir。
设置 plugin-dir="" 或 INFLUXDB3_PLUGIN_DIR=""(空字符串)并不会禁用处理引擎。您必须注释掉、删除或取消设置配置——而不是将其设置为空。
Docker: 使用自定义入口点 (entrypoint)
docker run --entrypoint /bin/sh influxdb:3-core -c 'unset INFLUXDB3_PLUGIN_DIR && exec influxdb3 serve --object-store memory'systemd (DEB/RPM): 在配置文件中注释掉或删除 plugin-dir
sudo nano /etc/influxdb3/influxdb3-core.conf# plugin-dir="/var/lib/influxdb3/plugins"然后重启服务
sudo systemctl restart influxdb3-core当处理引擎被禁用时:
- Python 环境和 PyO3 绑定不会被初始化
- 插件相关操作返回“未配置插件目录”错误
- 服务器以更少的资源占用运行
plugin-repo
指定当使用 gh: 前缀引用插件时使用的远程存储库的基本 URL。当您创建插件文件名以 gh: 开头的触发器时,InfluxDB 会从该存储库 URL 获取插件代码。
URL 构建会自动处理末尾斜杠——两种格式效果相同:
https://example.com/plugins/(带末尾斜杠)https://example.com/plugins(不带末尾斜杠)
默认值: 官方 InfluxDB 3 插件存储库:https://raw.githubusercontent.com/influxdata/influxdb3_plugins/main/
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--plugin-repo | INFLUXDB3_PLUGIN_REPO |
示例用法
# Use a custom organization repository
influxdb3 serve \
--plugin-dir ~/.plugins \
--plugin-repo "https://raw.githubusercontent.com/myorg/influxdb-plugins/main/"
# Use an internal mirror
influxdb3 serve \
--plugin-dir ~/.plugins \
--plugin-repo "https://internal.company.com/influxdb-plugins/"
# Set via environment variable
export INFLUXDB3_PLUGIN_REPO="https://custom-repo.example.com/plugins/"
influxdb3 serve --plugin-dir ~/.pluginsvirtual-env-location
指定处理引擎使用的 Python 虚拟环境的位置。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--virtual-env-location | VIRTUAL_ENV |
package-manager
在 InfluxDB 3 Core 3.10 中已弃用
--package-manager 已弃用。Python 和 pip 随 InfluxDB 3 Core 打包在一起,pip 始终用于安装插件依赖项。如果您设置此选项,服务器仍会启动,但会打印弃用警告。出于兼容性考虑,disabled 继续阻止插件包安装 API 调用。
指定处理引擎用于安装插件依赖项的 Python 包管理器。
此选项支持以下值:
discover(默认):自动检测并使用可用的包管理器(uv或pip)pip:仅使用 pip 包管理器uv:仅使用 uv 包管理器disabled:禁用自动包安装(所有依赖项必须预先安装)
默认值: discover
安全模式 (disabled)
当设置为 disabled 时,InfluxDB 3 Core 出于安全和合规性要求会阻止所有包安装尝试。处理引擎和插件功能继续正常运行,但包安装请求(通过 CLI 或 API)将返回 403 Forbidden 错误。
此模式旨在用于:
- 企业安全要求:防止任意包安装
- 合规环境:精确控制哪些包可用
- 气隙部署:在部署前预先安装所有依赖项
- 多租户场景:防止租户安装可能具有恶意目的的包
在使用 --package-manager disabled 之前,管理员必须将所有所需的 Python 包预先安装到插件将使用的虚拟环境中。
示例
# Start InfluxDB 3 with disabled package manager
influxdb3 serve \
--node-id node0 \
--object-store file \
--data-dir ~/.influxdb3 \
--plugin-dir ~/.plugins \
--package-manager disabled有关插件和包管理的更多信息,请参阅 处理引擎插件。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--package-manager | INFLUXDB3_PACKAGE_MANAGER |
restrict-plugin-triggers-to
将插件触发器限制为一种或多种触发器类型。提供 wal、schedule 或 request 中的一种或多种。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--restrict-plugin-triggers-to | INFLUXDB3_RESTRICT_PLUGIN_TRIGGERS_TO |
资源限制
max-concurrent-queries
限制可以并发运行的查询数量。您还可以使用 POST /api/v3/configure/query_concurrency_limit 在运行时更新此限制。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--max-concurrent-queries |
datafusion-num-threads
设置分配给 DataFusion 运行时线程池的线程数。DataFusion 线程负责处理:
- 查询执行和处理
- 数据聚合和转换
- 快照创建(排序/去重操作)
- Parquet 文件生成
默认值: 所有可用核心数减去 IO 线程数
DataFusion 线程既用于查询处理,也用于快照操作。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--datafusion-num-threads | INFLUXDB3_DATAFUSION_NUM_THREADS |
--num-io-threads 是一个 全局配置选项。
数据生命周期管理
gen1-lookback-duration
指定创建第 1 代 Parquet 文件时的回溯时间。
默认值: 24h
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--gen1-lookback-duration | INFLUXDB3_GEN1_LOOKBACK_DURATION |
retention-check-interval
检查并执行保留策略的时间间隔。以人类可读的时间输入——例如:30m 或 1h。
默认值: 30m
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--retention-check-interval | INFLUXDB3_RETENTION_CHECK_INTERVAL |
delete-grace-period
指定永久删除数据之前的宽限期。
默认值: 24h
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--delete-grace-period | INFLUXDB3_DELETE_GRACE_PERIOD |
hard-delete-default-duration
设置硬删除数据的默认持续时间。
默认值: 90d
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--hard-delete-default-duration | INFLUXDB3_HARD_DELETE_DEFAULT_DURATION |
遥测
disable-telemetry-upload
禁用向 InfluxData 上传遥测数据。
默认值: false
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--disable-telemetry-upload | INFLUXDB3_TELEMETRY_DISABLE_UPLOAD |
telemetry-endpoint
指定遥测数据上传的终端节点。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--telemetry-endpoint | INFLUXDB3_TELEMETRY_ENDPOINT |
TCP 监听器
tcp-listener-file-path
指定 TCP 监听器配置的文件路径。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--tcp-listener-file-path | INFLUXDB3_TCP_LISTINER_FILE_PATH |
admin-token-recovery-tcp-listener-file-path
指定用于管理员令牌恢复操作的 TCP 监听器文件路径。
| influxdb3 serve 选项 | 环境变量 |
|---|---|
--admin-token-recovery-tcp-listener-file-path | INFLUXDB3_ADMIN_TOKEN_RECOVERY_TCP_LISTENER_FILE_PATH |
此页面是否有帮助?
感谢您的反馈!
支持和反馈
感谢您成为我们社区的一员!我们欢迎并鼓励您对 InfluxDB 3 Core 和本文档提供反馈和错误报告。要获得支持,请使用以下资源
具有年度合同或支持合同的客户可以 联系 InfluxData 支持。