1049 lines
34 KiB
Markdown
1049 lines
34 KiB
Markdown
---
|
|
title: InfluxDB Enterprise data node configurations
|
|
description: Covers the InfluxDB Enterprise data node configuration settings and environmental variables
|
|
menu:
|
|
enterprise_influxdb_1_6:
|
|
name: Data node configurations
|
|
weight: 12
|
|
parent: Administration
|
|
---
|
|
|
|
|
|
* [Data node configurations](#data-node-configurations)
|
|
* [Global](#global-settings)
|
|
* [Enterprise license [enterprise]](#enterprise-license-settings)
|
|
* [Meta node [meta]](#meta-node-settings)
|
|
* [Data [data]](#data-settings)
|
|
* [Cluster [cluster]](#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)
|
|
|
|
|
|
## Data node configurations
|
|
|
|
The InfluxDB Enterprise data node configuration settings overlap significantly
|
|
with the settings in InfluxDB OSS.
|
|
|
|
> **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.
|
|
|
|
-----
|
|
|
|
## Global settings
|
|
|
|
#### `reporting-disabled = 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 = ":8088"`
|
|
|
|
The TCP bind address to use for cluster-internal services, including the RPC service for [backup and restore](/enterprise_influxdb/v1.6/administration/backup-and-restore/).
|
|
|
|
Environment variable: `INFLUXDB_BIND_ADDRESS`
|
|
|
|
#### `hostname = "localhost"`
|
|
|
|
The hostname of the [data node](/enterprise_influxdb/v1.6/concepts/glossary/#data-node). This must be resolvable by all other nodes in the cluster.
|
|
|
|
Environment variable: `INFLUXDB_HOSTNAME`
|
|
|
|
#### `gossip-frequency = "3s"`
|
|
|
|
How often to update the cluster with this node's internal status.
|
|
|
|
Environment variable: `INFLUXDB_GOSSIP_FREQUENCY`
|
|
|
|
-----
|
|
|
|
## 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 = ""`
|
|
|
|
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 %}}
|
|
|
|
InfluxData recommends performing rolling restarts on the nodes after the license key update.
|
|
Restart one meta, data, or Enterprise service at a time and wait for it to come back up successfully.
|
|
The cluster should remain unaffected as long as only one node is restarting at a time as long as there are two or more data nodes.
|
|
|
|
Environment variable: `INFLUXDB_ENTERPRISE_LICENSE_KEY`
|
|
|
|
#### `license-path = ""`
|
|
|
|
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.
|
|
InfluxData recommends performing rolling restarts on the nodes after the license file update.
|
|
Restart one meta, data, or Enterprise service at a time and wait for it to come back up successfully.
|
|
The cluster should remain unaffected as long as only one node is restarting at a time as long as there are two or more data nodes.
|
|
|
|
{{% 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 = "/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 = false`
|
|
|
|
Whether to use TLS when connecting to meta nodes.
|
|
Set to `true` to if [`https-enabled`](#https-enabled-false) is set to `true`.
|
|
|
|
Environment variable: `INFLUXDB_META_META_TLS_ENABLED`
|
|
|
|
#### `meta-insecure-tls = 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-false) is set to `true`.
|
|
|
|
Environment variable: `INFLUXDB_META_META_INSECURE_TLS`
|
|
|
|
#### `meta-auth-enabled = false`
|
|
|
|
This setting must have the same value as the meta nodes' `[meta] auth-enabled` configuration.
|
|
|
|
Set to `true` if [`auth-enabled`](#auth-enabled-false) 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 = ""`
|
|
|
|
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.6/administration/config-meta-nodes/#internal-shared-secret) specified in the meta node configuration file.
|
|
|
|
Environment variable: `INFLUXDB_META_META_INTERNAL_SHARED_SECRET`
|
|
|
|
#### `retention-autocreate = true`
|
|
|
|
Automatically creates a default [retention policy](/influxdb/v1.6/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 = true`
|
|
|
|
Whether log messages are printed for the meta service.
|
|
|
|
Environment variable: `INFLUXDB_META_LOGGING_ENABLED`
|
|
|
|
-----
|
|
|
|
## 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.
|
|
|
|
For InfluxDB OSS, see the [OSS documentation](/influxdb/v1.6/administration/config/#data-settings-data).
|
|
|
|
#### `dir = "/var/lib/influxdb/data"`
|
|
|
|
The directory where the TSM storage engine stores TSM (read-optimized) files.
|
|
|
|
Environment variable: `INFLUXDB_DATA_DIR`
|
|
|
|
#### `wal-dir = "/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 = 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 = 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`
|
|
|
|
#### `wal-fsync-delay = "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`
|
|
|
|
|
|
### Data settings for the TSM engine
|
|
|
|
#### `cache-max-memory-size = "1g"`
|
|
|
|
The maximum size a shard cache can reach before it starts rejecting writes.
|
|
|
|
Environment variable: `INFLUXDB_DATA_CACHE_MAX_MEMORY_SIZE`
|
|
|
|
#### `cache-snapshot-memory-size = "25m"`
|
|
|
|
The size 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 = "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 = 0`
|
|
|
|
The maximum number of concurrent full and level compactions that can run at one time.
|
|
A value of `0` results in 50% of `runtime.GOMAXPROCS(0)` used at runtime.
|
|
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-full-write-cold-duration = "4h"`
|
|
|
|
The duration at which the TSM engine will compact all TSM files in a shard if it hasn't received a write or delete.
|
|
|
|
Environment variable: `INFLUXDB_DATA_COMPACT_FULL_WRITE_COLD_DURATION`
|
|
|
|
#### `index-version = "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`
|
|
|
|
#### `max-values-per-tag = 100000`
|
|
|
|
The maximum number of tag values per tag that are allowed before writes are dropped.
|
|
This limit can prevent high cardinality tag values from being written to a measurement.
|
|
This limit can be disabled by setting it to `0`.
|
|
|
|
Environment variable: `INFLUXDB_DATA_MAX_VALUES_PER_TAG`
|
|
|
|
-----
|
|
|
|
## Cluster settings
|
|
|
|
### `[cluster]`
|
|
|
|
Settings related to how the data nodes interact with other data nodes.
|
|
Controls how data is shared across shards and the options for query management.
|
|
|
|
#### `dial-timeout = "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 = "60s"`
|
|
|
|
The time a stream remains idle in the connection pool after which it's reaped.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_POOL_MAX_IDLE_TIME`
|
|
|
|
#### `pool-max-idle-streams = 100`
|
|
|
|
The maximum number of streams that can be idle in a pool, per node.
|
|
The number of active streams can exceed the maximum, but they will not return to the pool when released.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_POOL_MAX_IDLE_STREAMS`
|
|
|
|
#### `shard-reader-timeout = "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`
|
|
|
|
#### `cluster-tracing = 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 = "10s"`
|
|
|
|
The default time a write request will wait until a timeout error is returned to the caller.
|
|
|
|
Environment variable: `INFLUXDB_CLUSTER_WRITE_TIMEOUT`
|
|
|
|
#### `max-concurrent-queries = 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`
|
|
|
|
#### `query-timeout = "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 = "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`
|
|
|
|
#### `max-select-point = 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 = 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 = 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`
|
|
|
|
-----
|
|
|
|
## 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 = 512000`
|
|
|
|
The maximum number of bytes to write to a shard in a single request.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_BATCH_SIZE`
|
|
|
|
#### `dir = "/var/lib/influxdb/hh"`
|
|
|
|
The hinted handoff directory where the durable queue will be stored on disk.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_DIR`
|
|
|
|
#### `enabled = 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 = "10g`
|
|
|
|
The maximum size of the hinted handoff queue.
|
|
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 = "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 = 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 = 0`
|
|
|
|
The rate (in bytes per second) at which the hinted handoff retries writes.
|
|
The `retry-rate-limit` option is no longer in use and will be removed from the configuration file in a future release.
|
|
Changing the `retry-rate-limit` setting has no effect on your cluster.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_RATE_LIMIT`
|
|
|
|
#### `retry-interval = "1s"`
|
|
|
|
The time period after which the hinted handoff retries a write after the write fails.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_INTERVAL`
|
|
|
|
#### `retry-max-interval = "10s"`
|
|
|
|
The maximum interval after which the hinted handoff retries a write after the write fails.
|
|
The `retry-max-interval` option is no longer in use and will be removed from the configuration file in a future release.
|
|
Changing the `retry-max-interval` setting has no effect on your cluster.
|
|
|
|
Environment variable: `INFLUXDB_HINTED_HANDOFF_RETRY_MAX_INTERVAL`
|
|
|
|
#### `purge-interval = "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
|
|
|
|
### `[anti-entropy]`
|
|
|
|
Controls the copying and repairing of shards to ensure that data nodes contain the shard data they are supposed to.
|
|
|
|
#### `enabled = false`
|
|
|
|
Enables the anti-entropy service.
|
|
Default value is `false`.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_ENABLED`
|
|
|
|
#### `check-interval = "5m"`
|
|
|
|
The interval of time when anti-entropy checks run on each data node.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_CHECK_INTERVAL`
|
|
|
|
#### `max-fetch = 10`
|
|
|
|
The maximum number of shards that a single data node will copy or repair in parallel.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_MAX_FETCH`
|
|
|
|
|
|
#### `max-sync = 1`
|
|
|
|
The maximum number of concurrent sync operations that should be performed.
|
|
|
|
Environment variable: `INFLUXDB_ANTI_ENTROPY_MAX_SYNC`
|
|
|
|
|
|
#### `auto-repair-missing = true`
|
|
|
|
When set to `true`, missing shards will 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 = true`
|
|
|
|
Enables retention policy enforcement.
|
|
Default value is `true`.
|
|
|
|
Environment variable: `INFLUXDB_RETENTION_ENABLED`
|
|
|
|
#### `check-interval = "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 = true`
|
|
|
|
Enables the shard precreation service.
|
|
|
|
Environment variable: `INFLUXDB_SHARD_PRECREATION_ENABLED`
|
|
|
|
#### `check-interval = "10m"`
|
|
|
|
The interval of time when the check to precreate new shards runs.
|
|
|
|
Environment variable: `INFLUXDB_SHARD_PRECREATION_CHECK_INTERVAL`
|
|
|
|
#### `advance-period = "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](/influxdb/v1.6/query_language/database_management/#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 = true`
|
|
|
|
Enables the internal storage of statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_ENABLED`
|
|
|
|
#### `store-database = "_internal"`
|
|
|
|
The destination database for recorded statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_DATABASE`
|
|
|
|
#### `store-interval = "10s"`
|
|
|
|
The interval at which to record statistics.
|
|
|
|
Environment variable: `INFLUXDB_MONITOR_STORE_INTERVAL`
|
|
|
|
#### `remote-collect-interval = "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.
|
|
|
|
For InfluxDB OSS, see the [OSS documentation](/influxdb/v1.6/administration/config/#http-endpoint-settings-http).
|
|
|
|
#### `enabled = true`
|
|
|
|
Enables HTTP endpoints.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_ENABLED`
|
|
|
|
#### `bind-address = ":8086"`
|
|
|
|
The bind address used by the HTTP service.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_BIND_ADDRESS`
|
|
|
|
#### `auth-enabled = false`
|
|
|
|
Enables HTTP authentication.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_AUTH_ENABLED`
|
|
|
|
#### `realm = "InfluxDB"`
|
|
|
|
The default realm sent back when issuing a basic authorization challenge.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_REALM`
|
|
|
|
#### `log-enabled = true`
|
|
|
|
Enables HTTP request logging.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_LOG_ENABLED`
|
|
|
|
#### `write-tracing = false`
|
|
|
|
Enables detailed write logging.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_WRITE_TRACING`
|
|
|
|
#### `pprof-enabled = true`
|
|
|
|
Determines whether the `/pprof` endpoint is enabled.
|
|
This endpoint is used for troubleshooting and monitoring.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_PPROF_ENABLED`
|
|
|
|
#### `https-enabled = false`
|
|
|
|
Enables HTTPS.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_HTTPS_ENABLED`
|
|
|
|
#### `https-certificate = "/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 = ""`
|
|
|
|
The location of the separate private key.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_HTTPS_PRIVATE_KEY`
|
|
|
|
#### `shared-secret = ""`
|
|
|
|
The JWT authorization shared secret used to validate requests using JSON web tokens (JWTs).
|
|
|
|
Environment variable: `INFLUXDB_HTTP_SHARED_SECRET`
|
|
|
|
#### `max-row-limit = 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 = 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 = false`
|
|
|
|
Enables the HTTP service over the UNIX domain socket.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_UNIX_SOCKET_ENABLED`
|
|
|
|
#### `bind-socket = "/var/run/influxdb.sock"`
|
|
|
|
The path of the UNIX domain socket.
|
|
|
|
Environment variable: `INFLUXDB_HTTP_BIND_SOCKET`
|
|
|
|
#### `max-concurrent-write-limit = 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 = 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 = 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 = "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`.
|
|
|
|
#### `level = "info"`
|
|
|
|
Determines which level of logs will be emitted.
|
|
|
|
#### `suppress-logo = false`
|
|
|
|
Suppresses the logo output that is printed when the program is started.
|
|
|
|
-----
|
|
|
|
## Subscriber settings
|
|
|
|
### `[subscriber]`
|
|
|
|
Controls the subscriptions, which can be used to fork a copy of all data received by the InfluxDB host.
|
|
|
|
#### `enabled = true`
|
|
|
|
Determines whether the subscriber service is enabled.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_ENABLED`
|
|
|
|
#### `http-timeout = "30s"`
|
|
|
|
The default timeout for HTTP writes to subscribers.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_HTTP_TIMEOUT`
|
|
|
|
#### `insecure-skip-verify = 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 = ""`
|
|
|
|
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 = 40`
|
|
|
|
The number of writer Goroutines processing the write channel.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_WRITE_CONCURRENCY`
|
|
|
|
#### `write-buffer-size = 1000`
|
|
|
|
The number of in-flight writes buffered in the write channel.
|
|
|
|
Environment variable: `INFLUXDB_SUBSCRIBER_WRITE_BUFFER_SIZE`
|
|
|
|
-----
|
|
|
|
## Graphite settings
|
|
|
|
### `[[graphite]]`
|
|
|
|
#### `enabled = 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.
|
|
|
|
```
|
|
# database = "graphite"
|
|
# retention-policy = ""
|
|
# bind-address = ":2003"
|
|
# protocol = "tcp"
|
|
# consistency-level = "one"
|
|
```
|
|
|
|
#### `batch-size = 5000`
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### `batch-pending = 10`
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### `batch-timeout = "1s"`
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### `udp-read-buffer = 0`
|
|
|
|
UDP Read buffer size, `0` means OS default. UDP listener will fail if set above OS max.
|
|
|
|
#### `separator = "."`
|
|
|
|
This string joins multiple matching 'measurement' values providing more control over the final measurement name.
|
|
|
|
#### `tags = ["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
|
|
|
|
```
|
|
# 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
|
|
|
|
### `[[collectd]]`
|
|
|
|
```
|
|
# enabled = false
|
|
# bind-address = ":25826"
|
|
# database = "collectd"
|
|
# retention-policy = ""
|
|
# typesdb = "/usr/share/collectd/types.db"
|
|
```
|
|
#### `security-level = ""`
|
|
|
|
The collectd security level can be "" (or "none"), "sign", or "encrypt".
|
|
|
|
#### `auth-file = ""`
|
|
|
|
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 = 5000`
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### `batch-pending = 10`
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### `batch-timeout = "10s"`
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### `read-buffer = 0`
|
|
|
|
UDP Read buffer size, 0 means OS default. UDP listener will fail if set above OS max.
|
|
|
|
|
|
-----
|
|
|
|
## OpenTSDB settings
|
|
|
|
|
|
### `[[opentsdb]]`
|
|
|
|
```
|
|
# enabled = false
|
|
# bind-address = ":4242"
|
|
# database = "opentsdb"
|
|
# retention-policy = ""
|
|
# consistency-level = "one"
|
|
# tls-enabled = false
|
|
# certificate= "/etc/ssl/influxdb.pem"
|
|
```
|
|
|
|
#### `log-point-errors = 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 = 1000`
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### `batch-pending = 5`
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### `batch-timeout = "1s"`
|
|
|
|
Flush at least this often even if we haven't hit buffer limit.
|
|
|
|
|
|
-----
|
|
|
|
## UDP settings
|
|
|
|
### `[[udp]]`
|
|
|
|
```
|
|
# enabled = false
|
|
# bind-address = ":8089"
|
|
# database = "udp"
|
|
# retention-policy = ""
|
|
```
|
|
|
|
#### `precision = ""`
|
|
|
|
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 = 5000`
|
|
|
|
Flush if this many points get buffered.
|
|
|
|
#### `batch-pending = 10`
|
|
|
|
The number of batches that may be pending in memory.
|
|
|
|
#### `batch-timeout = "1s"`
|
|
|
|
Will flush at least this often even if we haven't hit buffer limit.
|
|
|
|
#### `read-buffer = 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 = true`
|
|
|
|
Determines whether the continuous query service is enabled.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_ENABLED`
|
|
|
|
#### `log-enabled = true`
|
|
|
|
Controls whether queries are logged when executed by the CQ service.
|
|
|
|
Environment variable: `INFLUXDB_CONTINUOUS_QUERIES_LOG_ENABLED`
|
|
|
|
#### `run-interval = "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.
|
|
|
|
####
|
|
|
|
```
|
|
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.2"
|
|
|
|
max-version = "tls1.2"
|
|
|
|
```
|
|
|
|
#### `min-version = "tls1.2"`
|
|
|
|
Minimum version of the TLS protocol that will be negotiated. Valid values include: `tls1.0`, `tls1.1`, and `tls1.2`. 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.0` specifies the minimum version as TLS 1.0, which is consistent with the behavior of previous InfluxDB releases.
|
|
|
|
Environment variable: `INFLUXDB_TLS_MIN_VERSION`
|
|
|
|
#### `max-version = "tls1.2"`
|
|
|
|
The maximum version of the TLS protocol that will be negotiated. Valid values include: `tls1.0`, `tls1.1`, and `tls1.2`. 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.2` specifies the maximum version as TLS 1.2, which is consistent with the behavior of previous InfluxDB releases.
|
|
|
|
Environment variable: `INFLUXDB_TLS_MAX_VERSION`
|