1699 lines
51 KiB
Markdown
1699 lines
51 KiB
Markdown
---
|
|
title: Configure InfluxDB Enterprise data nodes
|
|
description: >
|
|
Configure InfluxDB Enterprise data node settings and environmental variables.
|
|
menu:
|
|
enterprise_influxdb_v1:
|
|
name: Configure data nodes
|
|
parent: Configure
|
|
weight: 20
|
|
aliases:
|
|
- /enterprise_influxdb/v1/administration/config-data-nodes/
|
|
---
|
|
|
|
- [Data node configuration settings](#data-node-configuration-settings)
|
|
- [Global](#global-settings)
|
|
- [Enterprise license [enterprise]](#enterprise-license-settings)
|
|
- [Meta node `[meta]`](#meta-node-settings)
|
|
- [Data `[data]`](#data-settings)
|
|
- [Cluster `[cluster]` (includes InfluxQL query controls)](#cluster-settings)
|
|
- [Retention `[retention]`](#retention-policy-settings)
|
|
- [Hinted Handoff `[hinted-handoff]`](#hinted-handoff-settings)
|
|
- [Anti-Entropy `[anti-entropy]`](#anti-entropy-ae-settings)
|
|
- [Shard precreation `[shard-precreation]`](#shard-precreation-settings)
|
|
- [Monitor `[monitor]`](#monitor-settings)
|
|
- [HTTP endpoints `[http]`](#http-endpoint-settings)
|
|
- [Logging `[logging]`](#logging-settings)
|
|
- [Subscriber `[subscriber]`](#subscriber-settings)
|
|
- [Graphite `[graphite]`](#graphite-settings)
|
|
- [Collectd `[collectd]`](#collectd-settings)
|
|
- [OpenTSDB `[opentsdb]`](#opentsdb-settings)
|
|
- [UDP `[udp]`](#udp-settings)
|
|
- [Continuous queries `[continuous-queries]`](#continuous-queries-settings)
|
|
- [TLS `[tls]`](#tls-settings)
|
|
- [Flux Query controls `[flux-controller]`](#flux-controller)
|
|
|
|
## Data node configuration settings
|
|
|
|
{{% note %}}
|
|
The system has internal defaults for every configuration file setting.
|
|
View the default settings with the `influxd config` command.
|
|
The local configuration file (`/etc/influxdb/influxdb.conf`) overrides any
|
|
internal defaults but the configuration file does not need to include
|
|
every configuration setting.
|
|
Starting with version 1.0.1, most of the settings in the local configuration
|
|
file are commented out.
|
|
All commented-out settings will be determined by the internal defaults.
|
|
{{% /note %}}
|
|
|
|
-----
|
|
|
|
## Global settings
|
|
|
|
#### reporting-disabled
|
|
|
|
Default is `false`.
|
|
|
|
Once every 24 hours InfluxDB Enterprise will report usage data to usage.influxdata.com.
|
|
The data includes a random ID, os, arch, version, the number of series and other usage data. No data from user databases is ever transmitted.
|
|
Change this option to true to disable reporting.
|
|
|
|
#### bind-address
|
|
|
|
Default is `":8088"`.
|
|
|
|
The TCP bind address used by the RPC service for inter-node communication and [backup and restore](/enterprise_influxdb/v1/administration/backup-and-restore/).
|
|
|
|
Environment variable: `INFLUXDB_BIND_ADDRESS`
|
|
|
|
#### hostname
|
|
|
|
Default is `"localhost"`.
|
|
|
|
The hostname of the [data node](/enterprise_influxdb/v1/concepts/glossary/#data-node). This must be resolvable by all other nodes in the cluster.
|
|
|
|
Environment variable: `INFLUXDB_HOSTNAME`
|
|
|
|
#### gossip-frequency
|
|
|
|
Default is `"3s"`.
|
|
|
|
How often to update the cluster with this node's internal status.
|
|
|
|
Environment variable: `INFLUXDB_GOSSIP_FREQUENCY`
|
|
|
|
#### compact-series-file {metadata="v1.11.4+"}
|
|
|
|
Default is `false`.
|
|
|
|
Determines if series files should be compacted on startup. If `true`, InfluxDB
|
|
runs [`influxd_inspect -compact-series-file`](/enterprise_influxdb/v1/tools/influx_inspect/#--compact-series-file-)
|
|
before starting the `influxd` server.
|
|
|
|
{{% note %}}
|
|
##### Series file compaction
|
|
|
|
Series files are stored in `_series` directories inside the
|
|
[InfluxDB data directory](/enterprise_influxdb/v1/concepts/file-system-layout/#data-node-file-system-layout).
|
|
Default: `/var/lib/data/<db-name>/_series`.
|
|
|
|
When compacting series files on startup:
|
|
|
|
- If any series files are corrupt, the `influx_inspect` or `influxd` processes on
|
|
the data node may fail to start. In both cases, delete the series file
|
|
directories before restarting the database. InfluxDB automatically
|
|
regenerates the necessary series directories and files when restarting.
|
|
- To check if series files are corrupt before starting the database, run the
|
|
[`influx_inspect verify-seriesfile` command](/enterprise_influxdb/v1/tools/influx_inspect/#verify-seriesfile)
|
|
while the database is off-line.
|
|
- If series files are large (20+ gigabytes), it may be faster to delete the
|
|
series file directories before starting the database.
|
|
{{% /note %}}
|
|
|
|
|
|
-----
|
|
|
|
## Enterprise license settings
|
|
|
|
### [enterprise]
|
|
|
|
The `[enterprise]` section contains the parameters for the meta node's registration with the [InfluxDB Enterprise License Portal](https://portal.influxdata.com/).
|
|
|
|
#### license-key
|
|
|
|
Default is `""`.
|
|
|
|
The license key created for you on [InfluxPortal](https://portal.influxdata.com). The meta node transmits the license key to [portal.influxdata.com](https://portal.influxdata.com) over port 80 or port 443 and receives a temporary JSON license file in return.
|
|
The server caches the license file locally.
|
|
The data process will only function for a limited time without a valid license file.
|
|
You must use the [`license-path` setting](#license-path) if your server cannot communicate with [https://portal.influxdata.com](https://portal.influxdata.com).
|
|
|
|
{{% warn %}}
|
|
Use the same key for all nodes in the same cluster.
|
|
The `license-key` and `license-path` settings are
|
|
mutually exclusive and one must remain set to the empty string.
|
|
{{% /warn %}}
|
|
|
|
> **Note:** You must trigger data nodes to reload your configuration. For more information, see how to [renew or update your license key](/enterprise_influxdb/v1/administration/renew-license/).
|
|
|
|
Environment variable: `INFLUXDB_ENTERPRISE_LICENSE_KEY`
|
|
|
|
#### license-path
|
|
|
|
Default is `""`.
|
|
|
|
The local path to the permanent JSON license file that you received from InfluxData for instances that do not have access to the internet.
|
|
The data process will only function for a limited time without a valid license file.
|
|
Contact [sales@influxdb.com](mailto:sales@influxdb.com) if a license file is required.
|
|
|
|
The license file should be saved on every server in the cluster, including Meta, Data, and Enterprise nodes.
|
|
The file contains the JSON-formatted license, and must be readable by the `influxdb` user. Each server in the cluster independently verifies its license.
|
|
|
|
> **Note:** You must trigger data nodes to reload your configuration. For more information, see how to [renew or update your license key](/enterprise_influxdb/v1/administration/renew-license/).
|
|
|
|
{{% warn %}}
|
|
Use the same license file for all nodes in the same cluster.
|
|
The `license-key` and `license-path` settings are mutually exclusive and one must remain set to the empty string.
|
|
{{% /warn %}}
|
|
|
|
Environment variable: `INFLUXDB_ENTERPRISE_LICENSE_PATH`
|
|
|
|
-----
|
|
|
|
## Meta node settings
|
|
|
|
### [meta]
|
|
|
|
Settings related to how the data nodes interact with the meta nodes.
|
|
|
|
#### dir
|
|
|
|
Default is `"/var/lib/influxdb/meta"`.
|
|
|
|
The directory where the cluster metadata is stored.
|
|
|
|
> **Note:** Data nodes do require a local meta directory.
|
|
|
|
Environment variable: `INFLUXDB_META_DIR`
|
|
|
|
#### meta-tls-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Whether to use TLS when connecting to meta nodes.
|
|
Set to `true` to if [`https-enabled`](#https-enabled) is set to `true`.
|
|
|
|
Environment variable: `INFLUXDB_META_META_TLS_ENABLED`
|
|
|
|
#### meta-insecure-tls
|
|
|
|
Default is `false`.
|
|
|
|
Allows insecure TLS connections to meta nodes.
|
|
This is useful when testing with self-signed certificates.
|
|
|
|
Set to `true` to allow the data node to accept self-signed certificates if [`https-enabled`](#https-enabled) is set to `true`.
|
|
|
|
Environment variable: `INFLUXDB_META_META_INSECURE_TLS`
|
|
|
|
#### meta-auth-enabled
|
|
|
|
Default is `false`.
|
|
|
|
This setting must have the same value as the meta nodes' `[meta] auth-enabled` configuration.
|
|
|
|
Set to `true` if [`auth-enabled`](#auth-enabled) is set to `true` in the meta node configuration files.
|
|
For JWT authentication, also see the [`meta-internal-shared-secret`](#meta-internal-shared-secret) configuration option.
|
|
|
|
Environment variable: `INFLUXDB_META_META_AUTH_ENABLED`
|
|
|
|
#### meta-internal-shared-secret
|
|
|
|
Default is `""`.
|
|
|
|
The shared secret used by the internal API for JWT authentication between InfluxDB nodes.
|
|
This value must be the same as the [`internal-shared-secret`](/enterprise_influxdb/v1/administration/configure/config-meta-nodes/#internal-shared-secret)
|
|
specified in the meta node configuration file.
|
|
|
|
Environment variable: `INFLUXDB_META_META_INTERNAL_SHARED_SECRET`
|
|
|
|
#### retention-autocreate
|
|
|
|
Default is `true`.
|
|
|
|
Automatically creates a default [retention policy](/enterprise_influxdb/v1/concepts/glossary/#retention-policy-rp) (RP) when the system creates a database.
|
|
The default RP (`autogen`) has an infinite duration, a shard group duration of seven days, and a replication factor set to the number of data nodes in the cluster.
|
|
The system targets the `autogen` RP when a write or query does not specify an RP.
|
|
Set this option to `false` to prevent the system from creating the `autogen` RP when the system creates a database.
|
|
|
|
Environment variable: `INFLUXDB_META_RETENTION_AUTOCREATE`
|
|
|
|
#### logging-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Whether log messages are printed for the meta service.
|
|
|
|
Environment variable: `INFLUXDB_META_LOGGING_ENABLED`
|
|
|
|
#### password-hash
|
|
|
|
Default is `bcrypt`.
|
|
|
|
Configures password hashing algorithm.
|
|
Supported options are: `bcrypt` (the default), `pbkdf2-sha256`, and `pbkdf2-sha512`
|
|
This setting must have the same value as the meta node option [`meta.password-hash`](/enterprise_influxdb/v1/administration/configure/config-meta-nodes/#password-hash).
|
|
|
|
For detailed configuration information, see [`meta.password-hash`](/enterprise_influxdb/v1/administration/configure/config-meta-nodes/#password-hash).
|
|
|
|
Environment variable: `INFLUXDB_META_PASSWORD_HASH`
|
|
|
|
#### ensure-fips
|
|
|
|
Default is `false`.
|
|
|
|
When `true`, enables a FIPS-readiness check on startup.
|
|
Default is `false`.
|
|
|
|
For detailed configuration information, see [`meta.ensure-fips`](/enterprise_influxdb/v1/administration/configure/config-meta-nodes/#ensure-fips).
|
|
|
|
Environment variable: `INFLUXDB_META_ENSURE_FIPS`
|
|
|
|
-----
|
|
|
|
## Data settings
|
|
|
|
### [data]
|
|
|
|
Controls where the actual shard data for InfluxDB lives and how it is compacted from the WAL.
|
|
"dir" may need to be changed to a suitable place for your system.
|
|
The defaults should work for most systems.
|
|
|
|
#### dir
|
|
|
|
Default is `"/var/lib/influxdb/data"`.
|
|
|
|
The directory where the TSM storage engine stores TSM (read-optimized) files.
|
|
|
|
Environment variable: `INFLUXDB_DATA_DIR`
|
|
|
|
#### wal-dir
|
|
|
|
Default is `"/var/lib/influxdb/wal"`.
|
|
|
|
The directory where the TSM storage engine stores WAL (write-optimized) files.
|
|
|
|
Environment variable: `INFLUXDB_DATA_WAL_DIR`
|
|
|
|
#### trace-logging-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Trace logging provides more verbose output around the TSM engine.
|
|
Turning this on can provide more useful output for debugging TSM engine issues.
|
|
|
|
Environmental variable: `INFLUXDB_DATA_TRACE_LOGGING_ENABLED`
|
|
|
|
#### query-log-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Whether queries should be logged before execution.
|
|
Very useful for troubleshooting, but will log any sensitive data contained within a query.
|
|
|
|
Environment variable: `INFLUXDB_DATA_QUERY_LOG_ENABLED`
|
|
|
|
#### query-log-path
|
|
|
|
An absolute path to the query log file.
|
|
The default is `""` (queries aren't logged to a file).
|
|
|
|
Query logging supports SIGHUP-based log rotation.
|
|
|
|
The following is an example of a `logrotate` configuration:
|
|
|
|
```
|
|
/var/log/influxdb/queries.log {
|
|
rotate 5
|
|
daily
|
|
compress
|
|
missingok
|
|
notifempty
|
|
create 644 root root
|
|
postrotate
|
|
/bin/kill -HUP `pgrep -x influxd`
|
|
endscript
|
|
}
|
|
```
|
|
|
|
#### wal-fsync-delay
|
|
|
|
Default is `"0s"`.
|
|
|
|
The amount of time that a write waits before fsyncing.
|
|
Use a duration greater than 0 to batch up multiple fsync calls.
|
|
This is useful for slower disks or when experiencing WAL write contention.
|
|
A value of `0s` fsyncs every write to the WAL.
|
|
InfluxData recommends values ranging from `0ms` to `100ms` for non-SSD disks.
|
|
|
|
Environment variable: `INFLUXDB_DATA_WAL_FSYNC_DELAY`
|
|
|
|
#### ingress-metric-by-measurement-enabled
|
|
|
|
Default is `false`.
|
|
|
|
When `true`, collect statistics of points, values and new series written per-measurement. Metrics are gathered per data node.
|
|
These can be accessed via the `/debug/vars` endpoint and in the `_internal` database if enabled.
|
|
|
|
Environment variable: `INFLUXDB_DATA_INGRESS_METRIC_BY_MEASUREMENT_ENABLED`
|
|
|
|
#### ingress-metric-by-login-enabled
|
|
|
|
Default is `false`.
|
|
|
|
When `true`, collect statistics of points, values and new series written per-login. Metrics are gathered per data node.
|
|
These can be accessed via the `/debug/vars` endpoint and in the `_internal` database if enabled.
|
|
|
|
Environment variable: `INFLUXDB_DATA_INGRESS_METRIC_BY_LOGIN_ENABLED`
|
|
|
|
### Data settings for the TSM engine
|
|
|
|
#### cache-max-memory-size
|
|
|
|
Default is `1000000000`.
|
|
|
|
The maximum size in bytes that a shard cache can reach before it starts rejecting writes.
|
|
|
|
Consider increasing this value if encountering `cache maximum memory size exceeded` errors.
|
|
|
|
Environment variable: `INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE`
|
|
|
|
#### cache-snapshot-memory-size
|
|
|
|
Default is `26214400`.
|
|
|
|
The size in bytes at which the TSM engine will snapshot the cache and write it to a TSM file, freeing up memory.
|
|
|
|
Environment variable: `INFLUXDB_DATA_CACHE_SNAPSHOT_MEMORY_SIZE`
|
|
|
|
#### cache-snapshot-write-cold-duration
|
|
|
|
Default is `"10m"`.
|
|
|
|
The length of time at which the TSM engine will snapshot the cache and write it to a new TSM file if the shard hasn't received writes or deletes.
|
|
|
|
Environment variable: `INFLUXDB_DATA_CACHE_SNAPSHOT_WRITE_COLD_DURATION`
|
|
|
|
#### max-concurrent-compactions
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of concurrent full and level compactions that can run at one time.
|
|
A value of `0` (unlimited compactions) results in 50% of `runtime.GOMAXPROCS(0)` used at runtime,
|
|
so when 50% of the CPUs aren't available, compactions are limited.
|
|
Any number greater than `0` limits compactions to that value.
|
|
This setting does not apply to cache snapshotting.
|
|
|
|
Environmental variable: `INFLUXDB_DATA_CACHE_MAX_CONCURRENT_COMPACTIONS`
|
|
|
|
#### compact-throughput
|
|
|
|
Default is `50331648`.
|
|
|
|
The maximum number of bytes per seconds TSM compactions write to disk. Default is `"48m"` (48 million).
|
|
Note that short bursts are allowed to happen at a possibly larger value, set by `compact-throughput-burst`.
|
|
|
|
Environment variable: `INFLUXDB_DATA_COMPACT_THROUGHPUT`
|
|
|
|
|
|
#### compact-throughput-burst
|
|
|
|
Default is `50331648`.
|
|
|
|
The maximum number of bytes per seconds TSM compactions write to disk during brief bursts. Default is `"48m"` (48 million).
|
|
|
|
Environment variable: `INFLUXDB_DATA_COMPACT_THROUGHPUT_BURST`
|
|
|
|
#### compact-full-write-cold-duration
|
|
|
|
Default is `"4h"`.
|
|
|
|
The duration at which to compact all TSM and TSI files in a shard if it has not received a write or delete.
|
|
|
|
Environment variable: `INFLUXDB_DATA_COMPACT_FULL_WRITE_COLD_DURATION`
|
|
|
|
#### index-version
|
|
|
|
Default is `"inmem"`.
|
|
|
|
The type of shard index to use for new shards.
|
|
The default (`inmem`) is to use an in-memory index that is recreated at startup.
|
|
A value of `tsi1` will use a disk-based index that supports higher cardinality datasets.
|
|
Value should be enclosed in double quotes.
|
|
|
|
Environment variable: `INFLUXDB_DATA_INDEX_VERSION`
|
|
|
|
### In-memory (`inmem`) index settings
|
|
|
|
#### max-series-per-database
|
|
|
|
Default is `1000000`.
|
|
|
|
The maximum number of [series](/enterprise_influxdb/v1/concepts/glossary/#series) allowed per database before writes are dropped.
|
|
The default setting is `1000000` (one million).
|
|
Change the setting to `0` to allow an unlimited number of series per database.
|
|
|
|
If a point causes the number of series in a database to exceed
|
|
`max-series-per-database`, InfluxDB will not write the point, and it returns a
|
|
`500` with the following error:
|
|
|
|
```bash
|
|
{"error":"max series per database exceeded: <series>"}
|
|
```
|
|
|
|
> **Note:** Any existing databases with a series count that exceeds `max-series-per-database`
|
|
> will continue to accept writes to existing series, but writes that create a
|
|
> new series will fail.
|
|
|
|
Environment variable: `INFLUXDB_DATA_MAX_SERIES_PER_DATABASE`
|
|
|
|
#### max-values-per-tag
|
|
|
|
Default is `100000`.
|
|
|
|
The maximum number of [tag values](/enterprise_influxdb/v1/concepts/glossary/#tag-value) allowed per [tag key](/enterprise_influxdb/v1/concepts/glossary/#tag-key).
|
|
The default value is `100000` (one hundred thousand).
|
|
Change the setting to `0` to allow an unlimited number of tag values per tag
|
|
key.
|
|
If a tag value causes the number of tag values of a tag key to exceed
|
|
`max-values-per-tag`, then InfluxDB will not write the point, and it returns
|
|
a `partial write` error.
|
|
|
|
Any existing tag keys with tag values that exceed `max-values-per-tag`
|
|
will continue to accept writes, but writes that create a new tag value
|
|
will fail.
|
|
|
|
Environment variable: `INFLUXDB_DATA_MAX_VALUES_PER_TAG`
|
|
|
|
### TSI (`tsi1`) index settings
|
|
|
|
#### max-index-log-file-size
|
|
|
|
Default is `1048576`.
|
|
|
|
The threshold, in bytes, when an index write-ahead log (WAL) file will compact
|
|
into an index file. Lower sizes will cause log files to be compacted more
|
|
quickly and result in lower heap usage at the expense of write throughput.
|
|
Higher sizes will be compacted less frequently, store more series in-memory,
|
|
and provide higher write throughput.
|
|
Valid size suffixes are `k`, `m`, or `g` (case-insensitive, 1024 = 1k).
|
|
Values without a size suffix are in bytes.
|
|
|
|
Environment variable: `INFLUXDB_DATA_MAX_INDEX_LOG_FILE_SIZE`
|
|
|
|
#### series-id-set-cache-size
|
|
|
|
Default is `100`.
|
|
|
|
The size of the internal cache used in the TSI index to store previously
|
|
calculated series results. Cached results will be returned quickly from the cache rather
|
|
than needing to be recalculated when a subsequent query with a matching tag key-value
|
|
predicate is executed.
|
|
Setting this value to `0` will disable the cache, which may lead to query performance issues.
|
|
This value should only be increased if it is known that the set of regularly used
|
|
tag key-value predicates across all measurements for a database is larger than 100. An
|
|
increase in cache size may lead to an increase in heap usage.
|
|
|
|
Environment variable: `INFLUXDB_DATA_SERIES_ID_SET_CACHE_SIZE`
|
|
|
|
-----
|
|
|
|
## Cluster settings
|
|
|
|
### [cluster]
|
|
|
|
Settings related to how data nodes interact with each other, how data is shared across shards, and how InfluxQL queries are managed.
|
|
|
|
An InfluxDB Enterprise cluster uses remote procedure calls (RPCs) for inter-node communication.
|
|
An RPC connection pool manages the stream connections and efficiently uses system resources.
|
|
InfluxDB data nodes multiplex RPC streams over a single TCP connection to avoid the overhead of
|
|
frequently establishing and destroying TCP connections and exhausting ephemeral ports.
|
|
Typically, a data node establishes a single, persistent TCP connection to each of the other data nodes
|
|
to perform most RPC requests. In special circumstances, for example, when copying shards,
|
|
a single-use TCP connection may be used.
|
|
|
|
For information on InfluxDB `_internal` measurement statistics related to clusters, RPCs, and shards,
|
|
see [Measurements for monitoring InfluxDB Enterprise (`_internal`)](/platform/monitoring/influxdata-platform/tools/measurements-internal/#cluster-enterprise-only).
|
|
|
|
#### dial-timeout
|
|
|
|
Default is `"1s"`.
|
|
|
|
The duration for which the meta node waits for a connection to a remote data node before the meta node attempts to connect to a different remote data node.
|
|
This setting applies to queries only.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_DIAL_TIMEOUT`
|
|
|
|
#### pool-max-idle-time
|
|
|
|
Default is `"60s"`.
|
|
|
|
The maximum time that a TCP connection to another data node remains idle in the connection pool.
|
|
When the connection is idle longer than the specified duration, the inactive connection is reaped —
|
|
retired or recycled — so that the connection pool is not filled with inactive connections. Reaping
|
|
idle connections minimizes inactive connections, decreases system load, and prevents system failure.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_POOL_MAX_IDLE_TIME`
|
|
|
|
#### pool-max-idle-streams
|
|
|
|
Default is `100`.
|
|
|
|
The maximum number of idle RPC stream connections to retain in an idle pool between two nodes.
|
|
When a new RPC request is issued, a connection is temporarily pulled from the idle pool, used, and then returned.
|
|
If an idle pool is full and a stream connection is no longer required, the system closes the stream connection and resources become available.
|
|
The number of active streams can exceed the maximum number of idle pool connections,
|
|
but are not returned to the idle pool when released.
|
|
Creating streams are relatively inexpensive operations to perform,
|
|
so it is unlikely that changing this value will measurably improve performance between two nodes.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_POOL_MAX_IDLE_STREAMS`
|
|
|
|
#### allow-out-of-order-writes
|
|
|
|
Default is `false`.
|
|
|
|
By default, this option is set to false and writes are processed in the order that they are received. This means if any points are in the hinted handoff (HH) queue for a shard, all incoming points must go into the HH queue.
|
|
|
|
If true, writes may process in a different order than they were received. This can reduce the time required to drain the HH queue and increase throughput during recovery.
|
|
|
|
**Do not enable if your use case involves updating points, which may cause points to be overwritten.** To overwrite an existing point, the measurement name, tag keys and values (if the point includes tags), field keys, and timestamp all have to be the same as a previous write.
|
|
|
|
For example, if you have two points with the same measurement (`cpu`), field key (`v`), and timestamp (`1234`), the following could happen:
|
|
|
|
Point 1 (`cpu v=1.0 1234`) arrives at `node1`, attempts to replicate on `node2`, and finds `node2` is down, so point 1 goes to the local HH queue. Now, `node2` comes back online and point 2 `cpu v=20. 1234` arrives at `node1`, overwrites point 1, and is written to `node2` (bypassing the HH queue). Because the point 2 arrives at `node2` before point 1, point 2 is stored before point 1.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_ALLOW_OUT_OF_ORDER`
|
|
|
|
#### shard-reader-timeout
|
|
|
|
Default is `"0"`.
|
|
|
|
The default timeout set on shard readers.
|
|
The time in which a query connection must return its response after which the system returns an error.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_SHARD_READER_TIMEOUT`
|
|
|
|
#### https-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Determines whether data nodes use HTTPS to communicate with each other.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_HTTPS_ENABLED`
|
|
|
|
#### https-certificate
|
|
|
|
Default is `""`.
|
|
|
|
The SSL certificate to use when HTTPS is enabled.
|
|
The certificate should be a PEM-encoded bundle of the certificate and key.
|
|
If it is just the certificate, a key must be specified in `https-private-key`.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_HTTPS_CERTIFICATE`
|
|
|
|
#### https-private-key
|
|
|
|
Default is `""`.
|
|
|
|
Use a separate private key location.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_HTTPS_PRIVATE_KEY`
|
|
|
|
#### https-insecure-tls
|
|
|
|
Default is `false`.
|
|
|
|
Whether data nodes will skip certificate validation communicating with each other over HTTPS.
|
|
This is useful when testing with self-signed certificates.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_HTTPS_INSECURE_TLS`
|
|
|
|
#### cluster-tracing
|
|
|
|
Default is `false`.
|
|
|
|
Enables cluster trace logging.
|
|
Set to `true` to enable logging of cluster communications.
|
|
Enable this setting to verify connectivity issues between data nodes.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_CLUSTER_TRACING`
|
|
|
|
#### write-timeout
|
|
|
|
Default is `"10s"`.
|
|
|
|
The duration a write request waits until a "timeout" error is returned to the caller. The default value is 10 seconds.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_WRITE_TIMEOUT`
|
|
|
|
#### max-concurrent-queries
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of concurrent queries allowed to be executing at one time.
|
|
If a query is executed and exceeds this limit, an error is returned to the caller.
|
|
This limit can be disabled by setting it to `0`.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_MAX_CONCURRENT_QUERIES`
|
|
|
|
#### max-concurrent-deletes
|
|
|
|
The default is `1`.
|
|
|
|
The maximum number of allowed simultaneous `DELETE` calls on a shard.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_MAX_CONCURRENT_DELETES`
|
|
|
|
#### query-timeout
|
|
|
|
Default is `"0s"`.
|
|
|
|
The maximum time a query is allowed to execute before being killed by the system.
|
|
This limit can help prevent run away queries. Setting the value to `0` disables the limit.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_QUERY_TIMEOUT`
|
|
|
|
#### log-queries-after
|
|
|
|
Default is `"0s"`.
|
|
|
|
The time threshold when a query will be logged as a slow query.
|
|
This limit can be set to help discover slow or resource intensive queries.
|
|
Setting the value to `0` disables the slow query logging.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_LOG_QUERIES_AFTER`
|
|
|
|
#### `log-timedout-queries = false` {metadata="v1.11+"}
|
|
|
|
Set to `true` to log queries that are killed due to exceeding the `query-timeout`.
|
|
The default setting (`false`) will not log timedout queries.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_LOG_TIMEDOUT_QUERIES`
|
|
|
|
#### max-select-point
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of points a SELECT statement can process.
|
|
A value of `0` will make the maximum point count unlimited.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_MAX_SELECT_POINT`
|
|
|
|
#### max-select-series
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of series a SELECT can run.
|
|
A value of `0` will make the maximum series count unlimited.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_MAX_SELECT_SERIES`
|
|
|
|
#### max-select-buckets
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of group by time buckets a SELECT can create.
|
|
A value of `0` will make the maximum number of buckets unlimited.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_MAX_SELECT_BUCKETS`
|
|
|
|
#### termination-query-log = false
|
|
|
|
Set to `true` to print all running queries to the log when a data node process receives a `SIGTERM` (for example, a k8s process exceeds the container memory limit or the process is terminated).
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_TERMINATION_QUERY_LOG`
|
|
|
|
-----
|
|
|
|
## Hinted Handoff settings
|
|
|
|
### [hinted-handoff]
|
|
|
|
Controls the hinted handoff (HH) queue, which allows data nodes to temporarily cache writes destined for another data node when that data node is unreachable.
|
|
|
|
#### batch-size
|
|
|
|
Default is `512000`.
|
|
|
|
The maximum number of bytes to write to a shard in a single request.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_BATCH_SIZE`
|
|
|
|
#### max-writes-pending
|
|
|
|
Default is `1024`.
|
|
|
|
The maximum number of incoming pending writes allowed in the hinted handoff queue.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_MAX_WRITES_PENDING`
|
|
|
|
#### dir
|
|
|
|
Default is `"/var/lib/influxdb/hh"`.
|
|
|
|
The hinted handoff directory where the durable queue will be stored on disk.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_DIR`
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Set to `false` to disable hinted handoff.
|
|
Disabling hinted handoff is not recommended and can lead to data loss if another data node is unreachable for any length of time.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_ENABLED`
|
|
|
|
#### max-size
|
|
|
|
Default is `10737418240`.
|
|
|
|
The maximum size of the hinted handoff queue in bytes.
|
|
Each queue is for one and only one other data node in the cluster.
|
|
If there are N data nodes in the cluster, each data node may have up to N-1 hinted handoff queues.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_MAX_SIZE`
|
|
|
|
#### max-age
|
|
|
|
Default is `"168h0m0s"`.
|
|
|
|
The time interval that writes sit in the queue before they are purged.
|
|
The time is determined by how long the batch has been in the queue, not by the timestamps in the data.
|
|
If another data node is unreachable for more than the `max-age` it can lead to data loss.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_MAX_AGE`
|
|
|
|
#### retry-concurrency
|
|
|
|
Default is `20`.
|
|
|
|
The maximum number of hinted handoff blocks that the source data node attempts to write to each destination data node.
|
|
Hinted handoff blocks are sets of data that belong to the same shard and have the same destination data node.
|
|
|
|
If `retry-concurrency` is 20 and the source data node's hinted handoff has 25 blocks for destination data node A, then the source data node attempts to concurrently write 20 blocks to node A.
|
|
If `retry-concurrency` is 20 and the source data node's hinted handoff has 25 blocks for destination data node A and 30 blocks for destination data node B, then the source data node attempts to concurrently write 20 blocks to node A and 20 blocks to node B.
|
|
If the source data node successfully writes 20 blocks to a destination data node, it continues to write the remaining hinted handoff data to that destination node in sets of 20 blocks.
|
|
|
|
If the source data node successfully writes data to destination data nodes, a higher `retry-concurrency` setting can accelerate the rate at which the source data node empties its hinted handoff queue.
|
|
|
|
Note that increasing `retry-concurrency` also increases network traffic.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_CONCURRENCY`
|
|
|
|
#### retry-rate-limit
|
|
|
|
Default is `0`.
|
|
|
|
The rate limit (in bytes per second) that hinted handoff retries hints. A value of `0` disables the rate limit.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_RATE_LIMIT`
|
|
|
|
#### retry-interval
|
|
|
|
Default is `"1s"`.
|
|
|
|
The time period after which the hinted handoff retries a write after the write fails. There is an exponential back-off, which starts at 1 second and increases with each failure until it reaches `retry-max-interval`. Retries will then occur at the `retry-max-interval`. Once there is a successful retry, the waiting period will be reset to the `retry-interval`.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_INTERVAL`
|
|
|
|
#### retry-max-interval
|
|
|
|
Default is `"200s"`.
|
|
|
|
The maximum interval after which the hinted handoff retries a write after the write fails.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_MAX_INTERVAL`
|
|
|
|
#### purge-interval
|
|
|
|
Default is `"1m0s"`.
|
|
|
|
The interval at which InfluxDB checks to purge data that are above `max-age`.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_PURGE_INTERVAL`
|
|
|
|
-----
|
|
|
|
## Anti-Entropy (AE) settings
|
|
|
|
For information about the Anti-Entropy service, see [Anti-entropy service in InfluxDB Enterprise](/enterprise_influxdb/v1/administration/anti-entropy).
|
|
|
|
### [anti-entropy]
|
|
|
|
Controls the copying and repairing of shards to ensure that data nodes contain the shard data they are supposed to.
|
|
|
|
#### enabled
|
|
|
|
Default is `false`.
|
|
|
|
Enables the anti-entropy service.
|
|
Default value is `false`.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_ENABLED`
|
|
|
|
#### check-interval
|
|
|
|
Default is `"5m"`.
|
|
|
|
The interval of time when anti-entropy checks run on each data node.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_CHECK_INTERVAL`
|
|
|
|
#### max-fetch
|
|
|
|
Default is `10`.
|
|
|
|
The maximum number of shards that a single data node will copy or repair in parallel.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_MAX_FETCH`
|
|
|
|
{{% note %}}
|
|
Having `max-fetch=10` with higher numbers of shards (100+) can add significant overhead to running nodes.
|
|
The more shards you have, the lower this should be set.
|
|
If AE is enabled while lowering your `max-fetch`, initially, you'll see
|
|
higher CPU load as new shard digest files are created.
|
|
The added load drops off after shard digests are completed for existing shards.
|
|
{{% /note %}}
|
|
|
|
#### max-sync
|
|
|
|
Default is `1`.
|
|
|
|
The maximum number of concurrent sync operations that should be performed.
|
|
Modify this setting only when requested by InfluxData support.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_MAX_SYNC`
|
|
|
|
#### auto-repair-missing
|
|
|
|
Default is `true`.
|
|
|
|
Enables missing shards to automatically be repaired.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_AUTO_REPAIR_MISSING`
|
|
|
|
-----
|
|
|
|
## Retention policy settings
|
|
|
|
### [retention]
|
|
|
|
Controls the enforcement of retention policies for evicting old data.
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Enables retention policy enforcement.
|
|
Default value is `true`.
|
|
|
|
Environment variable: `INFLUXDB_RETENTION_ENABLED`
|
|
|
|
#### check-interval
|
|
|
|
Default is `"30m0s"`.
|
|
|
|
The interval of time when retention policy enforcement checks run.
|
|
|
|
Environment variable: `INFLUXDB_RETENTION_CHECK_INTERVAL`
|
|
|
|
-----
|
|
|
|
## Shard precreation settings
|
|
|
|
### [shard-precreation]
|
|
|
|
Controls the precreation of shards, so they are available before data arrives.
|
|
Only shards that, after creation, will have both a start- and end-time in the future, will ever be created. Shards are never precreated that would be wholly or partially in the past.
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Enables the shard precreation service.
|
|
|
|
Environment variable: `INFLUXDB_SHARD_PRECREATION_ENABLED`
|
|
|
|
#### check-interval
|
|
|
|
Default is `"10m"`.
|
|
|
|
The interval of time when the check to precreate new shards runs.
|
|
|
|
Environment variable: `INFLUXDB_SHARD_PRECREATION_CHECK_INTERVAL`
|
|
|
|
#### advance-period
|
|
|
|
Default is `"30m"`.
|
|
|
|
The default period ahead of the end time of a shard group that its successor group is created.
|
|
|
|
Environment variable: `INFLUXDB_SHARD_PRECREATION_ADVANCE_PERIOD`
|
|
|
|
-----
|
|
|
|
## Monitor settings
|
|
|
|
### [monitor]
|
|
|
|
By default, InfluxDB writes system monitoring data to the `_internal` database.
|
|
If that database does not exist, InfluxDB creates it automatically.
|
|
The `DEFAULT` retention policy on the `internal` database is seven days.
|
|
To change the default seven-day retention policy, you must [create](/enterprise_influxdb/v1/query_language/manage-database/#retention-policy-management) it.
|
|
|
|
For InfluxDB Enterprise production systems, InfluxData recommends including a dedicated InfluxDB (OSS) monitoring instance for monitoring InfluxDB Enterprise cluster nodes.
|
|
|
|
* On the dedicated InfluxDB monitoring instance, set `store-enabled = false` to avoid potential performance and storage issues.
|
|
* On each InfluxDB cluster node, install a Telegraf input plugin and Telegraf output plugin configured to report data to the dedicated InfluxDB monitoring instance.
|
|
|
|
#### store-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Enables the internal storage of statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_ENABLED`
|
|
|
|
#### store-database
|
|
|
|
Default is `"_internal"`.
|
|
|
|
The destination database for recorded statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_DATABASE`
|
|
|
|
#### store-interval
|
|
|
|
Default is `"10s"`.
|
|
|
|
The interval at which to record statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_INTERVAL`
|
|
|
|
#### remote-collect-interval
|
|
|
|
Default is `"10s"`.
|
|
|
|
The time interval to poll other data nodes' stats when aggregating cluster stats.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_REMOTE_COLLECT_INTERVAL`
|
|
|
|
-----
|
|
|
|
## HTTP endpoint settings
|
|
|
|
### [http]
|
|
|
|
Controls how the HTTP endpoints are configured. These are the primary mechanism for getting data into and out of InfluxDB.
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Enables HTTP endpoints.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_ENABLED`
|
|
|
|
#### flux-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Determines whether the Flux query endpoint is enabled. To enable the use of Flux queries, set the value to `true`.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_FLUX_ENABLED`
|
|
|
|
#### bind-address
|
|
|
|
Default is `":8086"`.
|
|
|
|
The bind address used by the HTTP service.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_BIND_ADDRESS`
|
|
|
|
#### auth-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Enables HTTP authentication.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_AUTH_ENABLED`
|
|
|
|
#### realm
|
|
|
|
Default is `"InfluxDB"`.
|
|
|
|
The default realm sent back when issuing a basic authorization challenge.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_REALM`
|
|
|
|
#### log-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Enables HTTP request logging.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_LOG_ENABLED`
|
|
|
|
#### suppress-write-log
|
|
|
|
Default is `false`.
|
|
|
|
Determines whether the HTTP write request logs should be suppressed when the log is enabled.
|
|
|
|
#### access-log-path
|
|
|
|
Default is `""`.
|
|
|
|
The path to the access log, which determines whether detailed write logging is enabled using `log-enabled = true`.
|
|
Specifies whether HTTP request logging is written to the specified path when enabled.
|
|
If `influxd` is unable to access the specified path, it will log an error and fall back to `stderr`.
|
|
When HTTP request logging is enabled, this option specifies the path where log entries should be written.
|
|
If unspecified, the default is to write to stderr, which intermingles HTTP logs with internal InfluxDB logging.
|
|
If `influxd` is unable to access the specified path, it will log an error and fall back to writing the request log to `stderr`.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_ACCESS_LOG_PATH`
|
|
|
|
#### access-log-status-filters
|
|
|
|
Default is `[]`.
|
|
|
|
Filters which requests should be logged. Each filter is of the pattern `nnn`, `nnx`, or `nxx` where `n` is
|
|
a number and `x` is the wildcard for any number.
|
|
To filter all `5xx` responses, use the string `5xx`.
|
|
If multiple filters are used, then only one has to match.
|
|
The default value is no filters, with every request being printed.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_x`
|
|
|
|
##### Examples
|
|
|
|
###### Setting access log status filters using configuration settings
|
|
|
|
`access-log-status-filter = ["4xx", "5xx"]`
|
|
|
|
`"4xx"` is in array position `0`
|
|
`"5xx"` is in array position `1`
|
|
|
|
###### Setting access log status filters using environment variables
|
|
|
|
The input values for the `access-log-status-filters` is an array.
|
|
When using environment variables, the values can be supplied as follows.
|
|
|
|
`INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_0=4xx`
|
|
|
|
`INFLUXDB_HTTP_ACCESS_LOG_STATUS_FILTERS_1=5xx`
|
|
|
|
The `_n` at the end of the environment variable represents the array position of the entry.
|
|
|
|
#### write-tracing
|
|
|
|
Default is `false`.
|
|
|
|
Enables detailed write logging.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_WRITE_TRACING`
|
|
|
|
#### pprof-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Determines whether the `/pprof` endpoint is enabled.
|
|
This endpoint is used for troubleshooting and monitoring.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_PPROF_ENABLED`
|
|
|
|
#### https-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Enables HTTPS.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_HTTPS_ENABLED`
|
|
|
|
#### https-certificate
|
|
|
|
Default is `"/etc/ssl/influxdb.pem"`.
|
|
|
|
The SSL certificate to use when HTTPS is enabled.
|
|
The certificate should be a PEM-encoded bundle of the certificate and key.
|
|
If it is just the certificate, a key must be specified in `https-private-key`.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_HTTPS_CERTIFICATE`
|
|
|
|
#### https-private-key
|
|
|
|
Default is `""`.
|
|
|
|
The location of the separate private key.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_HTTPS_PRIVATE_KEY`
|
|
|
|
#### shared-secret
|
|
|
|
Default is `""`.
|
|
|
|
The JWT authorization shared secret used to validate requests using JSON web tokens (JWTs).
|
|
|
|
Environment variable: `INFLUXDB_HTTP_SHARED_SECRET`
|
|
|
|
#### max-body-size
|
|
|
|
Default is `25000000`.
|
|
|
|
The maximum size, in bytes, of a client request body.
|
|
When a HTTP client sends data that exceeds the configured maximum size, a `413 Request Entity Too Large` HTTP response is returned.
|
|
To disable the limit, set the value to `0`.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_MAX_BODY_SIZE`
|
|
|
|
#### max-row-limit
|
|
|
|
Default is `0`.
|
|
|
|
The default chunk size for result sets that should be chunked.
|
|
The maximum number of rows that can be returned in a non-chunked query.
|
|
The default setting of `0` allows for an unlimited number of rows.
|
|
InfluxDB includes a `"partial":true` tag in the response body if query results exceed the `max-row-limit` setting.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_MAX_ROW_LIMIT`
|
|
|
|
#### max-connection-limit
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of HTTP connections that may be open at once.
|
|
New connections that would exceed this limit are dropped.
|
|
The default value of `0` disables the limit.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_MAX_CONNECTION_LIMIT`
|
|
|
|
#### unix-socket-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Enables the HTTP service over the UNIX domain socket.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_UNIX_SOCKET_ENABLED`
|
|
|
|
#### bind-socket
|
|
|
|
Default is `"/var/run/influxdb.sock"`.
|
|
|
|
The path of the UNIX domain socket.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_BIND_SOCKET`
|
|
|
|
#### max-concurrent-write-limit
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of writes processed concurrently.
|
|
The default value of `0` disables the limit.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_MAX_CONCURRENT_WRITE_LIMIT`
|
|
|
|
#### max-enqueued-write-limit
|
|
|
|
Default is `0`.
|
|
|
|
The maximum number of writes queued for processing.
|
|
The default value of `0` disables the limit.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_MAX_ENQUEUED_WRITE_LIMIT`
|
|
|
|
#### enqueued-write-timeout
|
|
|
|
Default is `0`.
|
|
|
|
The maximum duration for a write to wait in the queue to be processed.
|
|
Setting this to `0` or setting `max-concurrent-write-limit` to `0` disables the limit.
|
|
|
|
-----
|
|
|
|
## Logging settings
|
|
|
|
### [logging]
|
|
|
|
#### format
|
|
|
|
Default is `"logfmt"`.
|
|
|
|
Determines which log encoder to use for logs.
|
|
Valid options are `auto`, `logfmt`, and `json`.
|
|
A setting of `auto` will use a more a more user-friendly output format if the output terminal is a TTY, but the format is not as easily machine-readable.
|
|
When the output is a non-TTY, `auto` will use `logfmt`.
|
|
|
|
Environment variable: `INFLUXDB_LOGGING_FORMAT`
|
|
|
|
#### level
|
|
|
|
Default is `"info"`.
|
|
|
|
Determines which level of logs will be emitted.
|
|
|
|
Environment variable: `INFLUXDB_LOGGING_LEVEL`
|
|
|
|
#### suppress-logo
|
|
|
|
Default is `false`.
|
|
|
|
Suppresses the logo output that is printed when the program is started.
|
|
|
|
Environment variable: `INFLUXDB_LOGGING_SUPPRESS_LOGO`
|
|
|
|
-----
|
|
|
|
## Subscriber settings
|
|
|
|
### [subscriber]
|
|
|
|
Controls the subscriptions, which can be used to fork a copy of all data received by the InfluxDB host.
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Determines whether the subscriber service is enabled.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_ENABLED`
|
|
|
|
#### http-timeout
|
|
|
|
Default is `"30s"`.
|
|
|
|
The default timeout for HTTP writes to subscribers.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_HTTP_TIMEOUT`
|
|
|
|
#### insecure-skip-verify
|
|
|
|
Default is `false`.
|
|
|
|
Allows insecure HTTPS connections to subscribers.
|
|
This option is useful when testing with self-signed certificates.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_INSECURE_SKIP_VERIFY`
|
|
|
|
#### ca-certs
|
|
|
|
Default is `""`.
|
|
|
|
The path to the PEM-encoded CA certs file.
|
|
If the set to the empty string (`""`), the default system certs will used.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_CA_CERTS`
|
|
|
|
#### write-concurrency
|
|
|
|
Default is `40`.
|
|
|
|
The number of writer Goroutines processing the write channel.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_WRITE_CONCURRENCY`
|
|
|
|
#### write-buffer-size
|
|
|
|
Default is `1000`.
|
|
|
|
The number of in-flight writes buffered in the write channel.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_WRITE_BUFFER_SIZE`
|
|
|
|
#### total-buffer-bytes
|
|
|
|
Default is `0`.
|
|
|
|
Total number of bytes allocated to buffering across all subscriptions.
|
|
Each named subscription receives an equal share of the total.
|
|
`0` means unlimited.
|
|
Default is `0`.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_TOTAL_BUFFER_BYTES`
|
|
|
|
-----
|
|
|
|
## Graphite settings
|
|
|
|
### [[graphite]]
|
|
|
|
This section controls one or many listeners for Graphite data.
|
|
For more information, see [Graphite protocol support in InfluxDB](/enterprise_influxdb/v1/supported_protocols/graphite/).
|
|
|
|
#### enabled
|
|
|
|
Default is `false`.
|
|
|
|
Determines whether the graphite endpoint is enabled.
|
|
|
|
These next lines control how batching works.
|
|
You should have this enabled otherwise you could get dropped metrics or poor performance.
|
|
Batching will buffer points in memory if you have many coming in.
|
|
|
|
```toml
|
|
# database = "graphite"
|
|
# retention-policy = ""
|
|
# bind-address = ":2003"
|
|
# protocol = "tcp"
|
|
# consistency-level = "one"
|
|
```
|
|
|
|
#### batch-size
|
|
|
|
Default is `5000`.
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### batch-pending
|
|
|
|
Default is `10`.
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### batch-timeout
|
|
|
|
Default is `"1s"`.
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### udp-read-buffer
|
|
|
|
Default is `0`.
|
|
|
|
UDP Read buffer size, `0` means OS default. UDP listener will fail if set above OS max.
|
|
|
|
#### separator
|
|
|
|
Default is `"."`.
|
|
|
|
This string joins multiple matching 'measurement' values providing more control over the final measurement name.
|
|
|
|
#### tags
|
|
|
|
Default is `["region=us-east", "zone=1c"]`.
|
|
|
|
Default tags that will be added to all metrics.
|
|
These can be overridden at the template level or by tags extracted from metric.
|
|
|
|
#### Templates pattern
|
|
|
|
```toml
|
|
# templates = [
|
|
# "*.app env.service.resource.measurement",
|
|
# # Default template
|
|
# "server.*",
|
|
# ]
|
|
```
|
|
|
|
Each template line requires a template pattern.
|
|
It can have an optional filter before the template and separated by spaces.
|
|
It can also have optional extra tags following the template.
|
|
Multiple tags should be separated by commas and no spaces similar to the line protocol format.
|
|
There can be only one default template.
|
|
|
|
-----
|
|
|
|
## CollectD settings
|
|
|
|
The `[[collectd]]` settings control the listener for `collectd` data.
|
|
For more information, see [CollectD protocol support in InfluxDB](/enterprise_influxdb/v1/supported_protocols/collectd/).
|
|
|
|
### [[collectd]]
|
|
|
|
```toml
|
|
# enabled`
|
|
|
|
Default is `false.
|
|
# bind-address = ":25826"
|
|
# database = "collectd"
|
|
# retention-policy = ""
|
|
# typesdb = "/usr/share/collectd/types.db"
|
|
```
|
|
|
|
#### security-level
|
|
|
|
Default is `""`.
|
|
|
|
The collectd security level can be "" (or "none"), "sign", or "encrypt".
|
|
|
|
#### auth-file
|
|
|
|
Default is `""`.
|
|
|
|
The path to the `collectd` authorization file.
|
|
Must be set if security level is sign or encrypt.
|
|
|
|
|
|
These next lines control how batching works.
|
|
You should have this enabled otherwise you could get dropped metrics or poor performance.
|
|
Batching will buffer points in memory if you have many coming in.
|
|
|
|
#### batch-size
|
|
|
|
Default is `5000`.
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### batch-pending
|
|
|
|
Default is `10`.
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### batch-timeout
|
|
|
|
Default is `"10s"`.
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### read-buffer
|
|
|
|
Default is `0`.
|
|
|
|
UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
|
|
|
-----
|
|
|
|
## OpenTSDB settings
|
|
|
|
Controls the listener for OpenTSDB data.
|
|
For more information, see [OpenTSDB protocol support in InfluxDB](/enterprise_influxdb/v1/supported_protocols/opentsdb/).
|
|
|
|
### [[opentsdb]]
|
|
|
|
```toml
|
|
# enabled = false
|
|
# bind-address = ":4242"
|
|
# database = "opentsdb"
|
|
# retention-policy = ""
|
|
# consistency-level = "one"
|
|
# tls-enabled = false
|
|
# certificate= "/etc/ssl/influxdb.pem"
|
|
```
|
|
|
|
#### log-point-errors
|
|
|
|
Default is `true`.
|
|
|
|
Log an error for every malformed point.
|
|
|
|
#### Settings for batching
|
|
|
|
These next lines control how batching works.
|
|
You should have this enabled otherwise you could get dropped metrics or poor performance.
|
|
Only points metrics received over the telnet protocol undergo batching.
|
|
|
|
#### batch-size
|
|
|
|
Default is `1000`.
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### batch-pending
|
|
|
|
Default is `5`.
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### batch-timeout
|
|
|
|
Default is `"1s"`.
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
-----
|
|
|
|
## UDP settings
|
|
|
|
The `[[udp]]` settings control the listeners for InfluxDB line protocol data using UDP.
|
|
For more information, see [UDP protocol support in InfluxDB](/enterprise_influxdb/v1/supported_protocols/udp/).
|
|
|
|
### [[udp]]
|
|
|
|
```toml
|
|
# enabled = false
|
|
# bind-address = ":8089"
|
|
# database = "udp"
|
|
# retention-policy = ""
|
|
```
|
|
|
|
#### precision
|
|
|
|
Default is `""`.
|
|
|
|
InfluxDB precision for timestamps on received points ("" or "n", "u", "ms", "s", "m", "h")
|
|
|
|
These next lines control how batching works. You should have this enabled otherwise you could get dropped metrics or poor performance.
|
|
Batching will buffer points in memory if you have many coming in.
|
|
|
|
#### batch-size
|
|
|
|
Default is `5000`.
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### batch-pending
|
|
|
|
Default is `10`.
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### batch-timeout
|
|
|
|
Default is `"1s"`.
|
|
|
|
Will flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### read-buffer
|
|
|
|
Default is `0`.
|
|
|
|
UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
|
|
|
-----
|
|
|
|
## Continuous queries settings
|
|
|
|
### [continuous_queries]
|
|
|
|
Controls how continuous queries are run within InfluxDB.
|
|
|
|
#### enabled
|
|
|
|
Default is `true`.
|
|
|
|
Determines whether the continuous query service is enabled.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_ENABLED`
|
|
|
|
#### log-enabled
|
|
|
|
Default is `true`.
|
|
|
|
Controls whether queries are logged when executed by the CQ service.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_LOG_ENABLED`
|
|
|
|
#### query-stats-enabled
|
|
|
|
Default is `false`.
|
|
|
|
Write continuous query execution statistics to the default monitor store.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_QUERY_STATS_ENABLED`
|
|
|
|
#### run-interval
|
|
|
|
Default is `"1s"`.
|
|
|
|
The interval for how often continuous queries will be checked whether they need to run.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_RUN_INTERVAL`
|
|
|
|
-----
|
|
|
|
## TLS settings
|
|
|
|
|
|
### [tls]
|
|
|
|
Global configuration settings for Transport Layer Security (TLS) in InfluxDB.
|
|
|
|
If the TLS configuration settings is not specified, InfluxDB supports all of the cipher suite IDs listed and all TLS versions implemented in the [Constants section of the Go `crypto/tls` package documentation](https://golang.org/pkg/crypto/tls/#pkg-constants), depending on the version of Go used to build InfluxDB.
|
|
Use the `SHOW DIAGNOSTICS` command to see the version of Go used to build InfluxDB.
|
|
|
|
### Recommended server configuration for "modern compatibility"
|
|
|
|
InfluxData recommends configuring your InfluxDB server's TLS settings for "modern compatibility" that provides a higher level of security and assumes that backward compatibility is not required.
|
|
Our recommended TLS configuration settings for `ciphers`, `min-version`, and `max-version` are based on Mozilla's "modern compatibility" TLS server configuration described in [Security/Server Side TLS](https://wiki.mozilla.org/Security/Server_Side_TLS#Modern_compatibility).
|
|
|
|
InfluxData's recommended TLS settings for "modern compatibility" are specified in the following configuration settings example.
|
|
|
|
#### Recommended "modern compatibility" cipher settings
|
|
|
|
```toml
|
|
ciphers = [ "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305",
|
|
"TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305",
|
|
"TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256",
|
|
"TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256",
|
|
"TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384",
|
|
"TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
|
|
]
|
|
|
|
min-version = "tls1.3"
|
|
|
|
max-version = "tls1.3"
|
|
|
|
```
|
|
|
|
#### min-version
|
|
|
|
Default is `"tls1.3"`.
|
|
|
|
Minimum version of the TLS protocol that will be negotiated.
|
|
Valid values include: `tls1.0`, `tls1.1`, and `tls1.3`.
|
|
If not specified, `min-version` is the minimum TLS version specified in the [Go `crypto/tls` package](https://golang.org/pkg/crypto/tls/#pkg-constants).
|
|
In this example, `tls1.3` specifies the minimum version as TLS 1.3.
|
|
|
|
Environment variable: `INFLUXDB_TLS_MIN_VERSION`
|
|
|
|
#### max-version
|
|
|
|
Default is `"tls1.3"`.
|
|
|
|
The maximum version of the TLS protocol that will be negotiated.
|
|
Valid values include: `tls1.0`, `tls1.1`, and `tls1.3`.
|
|
If not specified, `max-version` is the maximum TLS version specified in the [Go `crypto/tls` package](https://golang.org/pkg/crypto/tls/#pkg-constants).
|
|
In this example, `tls1.3` specifies the maximum version as TLS 1.3.
|
|
|
|
Environment variable: `INFLUXDB_TLS_MAX_VERSION`
|
|
|
|
## Flux query management settings
|
|
|
|
### [flux-controller]
|
|
|
|
This section contains configuration settings for Flux query management.
|
|
For more on managing queries, see [Query Management](/enterprise_influxdb/v1/troubleshooting/query_management/).
|
|
|
|
#### query-concurrency
|
|
|
|
Number of queries allowed to execute concurrently.
|
|
`0` means unlimited.
|
|
Default is `0`.
|
|
|
|
#### query-initial-memory-bytes
|
|
|
|
Initial bytes of memory allocated for a query.
|
|
`0` means unlimited.
|
|
Default is `0`.
|
|
|
|
#### query-max-memory-bytes
|
|
|
|
Maximum total bytes of memory allowed for an individual query.
|
|
`0` means unlimited.
|
|
Default is `0`.
|
|
|
|
#### total-max-memory-bytes
|
|
|
|
Maximum total bytes of memory allowed for all running Flux queries.
|
|
`0` means unlimited.
|
|
Default is `0`.
|
|
|
|
#### query-queue-size
|
|
|
|
Maximum number of queries allowed in execution queue.
|
|
When queue limit is reached, new queries are rejected.
|
|
`0` means unlimited.
|
|
Default is `0`.
|