34 KiB
| title | description | menu | weight | influxdb/v2/tags | related | |||||
|---|---|---|---|---|---|---|---|---|---|---|
| Install InfluxDB | Download, install, and set up InfluxDB OSS. | influxdb_v2 | 2 |
|
|
The InfluxDB v2 time series platform is purpose-built to collect, store, process and visualize metrics and events. Download, install, and set up InfluxDB OSS.
{{< tabs-wrapper >}} {{% tabs %}} macOS Linux Windows Docker Kubernetes Raspberry Pi {{% /tabs %}}
{{% tab-content %}}
Install InfluxDB v2
Do one of the following:
{{% note %}}
InfluxDB and the influx CLI are separate packages
The InfluxDB server (influxd) and the
influx CLI are packaged and
versioned separately.
For information about installing the influx CLI, see
Install and use the influx CLI.
{{% /note %}}
Use Homebrew
We recommend using Homebrew to install InfluxDB v2 on macOS:
brew update
brew install influxdb
{{% note %}}
Homebrew also installs influxdb-cli as a dependency.
For information about using the influx CLI, see the
influx CLI reference documentation.
{{% /note %}}
Manually download and install
To download the InfluxDB v2 binary for macOS directly, do the following:
-
Download the InfluxDB package.
InfluxDB v2 (macOS)
# Download using cURL curl -O https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz \ --output-dir ~/Downloads -
Unpackage the InfluxDB binary.
Do one of the following:
-
In Finder, double-click the downloaded package file.
-
In your terminal (for example, Terminal or iTerm2), use
tarto unpackage the file--for example, enter the following command to extract it into the current directory:# Unpackage contents to the current working directory tar zxvf ~/Downloads/influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz
-
-
Optional: Place the
influxdbinary in your$PATH--for example, copy the binary to/usr/local/bin:# (Optional) Copy the influxd binary to your $PATH sudo cp influxdb2-{{< latest-patch >}}/influxd /usr/local/bin/With the
influxdbinary in your$PATH(/usr/local/bin), you can enterinfluxdin your terminal to start the server.If you choose not to move the
influxdbinary into your$PATH, enter the path to the binary to start the server--for example:./influxdb2-{{< latest-patch >}}/influxd
{{< expand-wrapper >}} {{% expand "Recommended – Set appropriate directory permissions" %}}
To prevent unwanted access to data, set the permissions on the influxdb data-dir to not be world readable.
For server installs, set a umask of 0027 to properly permission all newly created files.
Example:
> chmod 0750 ~/.influxdbv2
{{% /expand %}} {{% expand "Recommended – Verify the authenticity of the downloaded binary" %}}
For added security, use gpg to verify the signature of your download.
(Most operating systems include the gpg command by default.
If gpg is not available, see the GnuPG homepage for installation instructions.)
-
Download and import InfluxData's public key.
gpg --importoutputs to stderr. The following example shows how to import the key, redirect the output to stdout, and then check for the expected key name:curl -s https://repos.influxdata.com/influxdata-archive_compat.key \ | gpg --import - 2>&1 \ | grep 'InfluxData Package Signing Key <support@influxdata.com>'If successful, the output is similar to the following:
gpg: key D8FF8E1F7DF8B07E: public key "InfluxData Package Signing Key <support@influxdata.com>" imported -
Download the signature file for the release by adding
.ascto the download URL, and then usegpgto verify the download signature--for example:curl -s https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz.asc \ | gpg --verify - ~/Downloads/influxdb2-{{< latest-patch >}}_darwin_amd64.tar.gz \ 2>&1 | grep 'InfluxData Package Signing Key <support@influxdata.com>'If successful, the output is the following:
gpg: Good signature from "InfluxData Package Signing Key <support@influxdata.com>" [unknown]
{{% /expand %}} {{< /expand-wrapper >}}
{{% note %}}
Both InfluxDB 1.x and 2.x have associated influxd and influx binaries.
If InfluxDB 1.x binaries are already in your $PATH, run the v2 binaries in place
or rename them before putting them in your $PATH.
If you rename the binaries, all references to influxd and influx in this documentation refer to your renamed binaries.
{{% /note %}}
Networking ports
By default, InfluxDB uses TCP port 8086 for client-server communication over
the InfluxDB HTTP API.
Start and configure InfluxDB
To start InfluxDB, run the influxd daemon:
influxd
(macOS Catalina and newer) Authorize the influxd binary
macOS requires downloaded binaries to be signed by registered Apple developers.
Currently, when you first attempt to run influxd, macOS will prevent it from running.
To manually authorize the influxd binary, follow the instructions for your macOS version to allow downloaded applications.
Run InfluxDB on macOS Ventura
- Follow the preceding instructions to attempt to start
influxd. - Open System Settings and click Privacy & Security.
- Under the Security heading, there is a message about "influxd" being blocked, click Allow Anyway.
- When prompted, enter your password to allow the setting.
- Close System Settings.
- Attempt to start
influxd. - A prompt appears with the message "macOS cannot verify the developer of "influxd"..."". Click Open.
Run InfluxDB on macOS Catalina
- Attempt to start
influxd. - Open System Preferences and click Security & Privacy.
- Under the General tab, there is a message about
influxdbeing blocked. Click Open Anyway.
We are in the process of updating the build process to ensure released binaries are signed by InfluxData.
{{% warn %}}
"too many open files" errors
After running influxd, you might see an error in the log output like the
following:
too many open files
To resolve this error, follow the
recommended steps to increase
file and process limits for your operating system version then restart influxd.
{{% /warn %}}
To configure InfluxDB, see InfluxDB configuration options, and the influxd documentation for information about
available flags and options._
{{% note %}}
InfluxDB "phone home"
By default, InfluxDB sends telemetry data back to InfluxData. The InfluxData telemetry page provides information about what data is collected and how it is used.
To opt-out of sending telemetry data back to InfluxData, include the
--reporting-disabled flag when starting influxd.
influxd --reporting-disabled
{{% /note %}}
{{% /tab-content %}}
{{% tab-content %}}
Download and install InfluxDB v2
Do one of the following:
{{% note %}}
InfluxDB and the influx CLI are separate packages
The InfluxDB server (influxd) and the
influx CLI are packaged and
versioned separately.
For information about installing the influx CLI, see
Install and use the influx CLI.
{{% /note %}}
Install InfluxDB as a service with systemd
-
Download and install the appropriate
.debor.rpmfile using a URL from the InfluxData downloads page with the following commands:# Ubuntu/Debian AMD64 curl -O https://dl.influxdata.com/influxdb/releases/influxdb2_{{< latest-patch >}}-1_amd64.deb sudo dpkg -i influxdb2_{{< latest-patch >}}-1_amd64.deb# Ubuntu/Debian ARM64 curl -O https://dl.influxdata.com/influxdb/releases/influxdb2_{{< latest-patch >}}-1_arm64.deb sudo dpkg -i influxdb2_{{< latest-patch >}}-1_arm64.deb# Red Hat/CentOS/Fedora x86-64 (x64, AMD64) curl -O https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}-1.x86_64.rpm sudo yum localinstall influxdb2-{{< latest-patch >}}-1.x86_64.rpm# Red Hat/CentOS/Fedora AArch64 (ARMv8-A) curl -O https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}-1.aarch64.rpm sudo yum localinstall influxdb2-{{< latest-patch >}}-1.aarch64.rpm -
Start the InfluxDB service:
sudo service influxdb startInstalling the InfluxDB package creates a service file at
/lib/systemd/system/influxdb.serviceto start InfluxDB as a background service on startup. -
Restart your system and verify that the service is running correctly:
$ sudo service influxdb status ● influxdb.service - InfluxDB is an open-source, distributed, time series database Loaded: loaded (/lib/systemd/system/influxdb.service; enabled; vendor preset: enable> Active: active (running)
For information about where InfluxDB stores data on disk when running as a service, see File system layout.
To customize your InfluxDB configuration, use either command line flags (arguments), environment variables, or an InfluxDB configuration file. See InfluxDB configuration options for more information.
Pass arguments to systemd
-
Add one or more lines like the following containing arguments for
influxdto/etc/default/influxdb2:ARG1="--http-bind-address :8087" ARG2="<another argument here>" -
Edit the
/lib/systemd/system/influxdb.servicefile as follows:ExecStart=/usr/bin/influxd $ARG1 $ARG2
Manually download and install the influxd binary
-
Download the InfluxDB binary.
Download the InfluxDB binary from your browser or from the command line.
Download from your browser
InfluxDB v2 (amd64) InfluxDB v2 (arm)
Download from the command line
# amd64 curl -O https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz# arm64 curl -O https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}_linux_arm64.tar.gz -
Extract the downloaded binary.
Note: The following commands are examples. Adjust the filenames, paths, and utilities if necessary.
# amd64 tar xvzf ./influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz# arm64 tar xvzf ./influxdb2-{{< latest-patch >}}_linux_arm64.tar.gz -
Optional: Place the extracted
influxdexecutable binary in your system$PATH.**# amd64 sudo cp ./influxdb2-{{< latest-patch >}}/usr/bin/influxd /usr/local/bin/# arm64 sudo cp ./influxdb2-{{< latest-patch >}}/usr/bin/influxd /usr/local/bin/If you choose to not move the
influxdbinary into your$PATH, enter the path to the binary to start the server--for example:./influxdb2-{{< latest-patch >}}/usr/bin/influxd
{{< expand-wrapper >}} {{% expand "Recommended – Set appropriate directory permissions" %}}
To prevent unwanted access to data, we recommend setting the permissions on the influxdb data-dir to not be world readable. For server installs, it is also recommended to set a umask of 0027 to properly permission all newly created files. This can be done via the UMask directive in a systemd unit file, or by running influxdb under a specific user with the umask properly set.
Example:
> chmod 0750 ~/.influxdbv2
{{% /expand %}} {{% expand "Recommended – Verify the authenticity of downloaded binary" %}}
For added security, use gpg to verify the signature of your download.
(Most operating systems include the gpg command by default.
To install gpg, see the GnuPG installation instructions).
-
Download and import InfluxData's public key.
gpg --importoutputs to stderr. The following example shows how to import the key, redirect the output to stdout, and then check for the expected key name:curl -s https://repos.influxdata.com/influxdata-archive_compat.key \ | gpg --import - 2>&1 \ | grep 'InfluxData Package Signing Key <support@influxdata.com>'If successful, the output is similar to the following:
gpg: key D8FF8E1F7DF8B07E: public key "InfluxData Package Signing Key <support@influxdata.com>" imported -
Download the signature file for the release by adding
.ascto the download URL, and then usegpgto verify the download signature--for example:curl -s https://dl.influxdata.com/influxdb/releases/influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz.asc \ | gpg --verify - influxdb2-{{< latest-patch >}}_linux_amd64.tar.gz \ 2>&1 | grep 'InfluxData Package Signing Key <support@influxdata.com>'If successful, the output is the following:
gpg: Good signature from "InfluxData Package Signing Key <support@influxdata.com>" [unknown]
{{% /expand %}} {{< /expand-wrapper >}}
Start InfluxDB
If InfluxDB was installed as a systemd service, systemd manages the influxd daemon and no further action is required.
If the binary was manually downloaded and added to the system $PATH, start the influxd daemon with the following command:
influxd
See the influxd documentation for information about
available flags and options.
Networking ports
By default, InfluxDB uses TCP port 8086 for client-server communication over
the InfluxDB HTTP API.
{{% note %}}
InfluxDB "phone home"
By default, InfluxDB sends telemetry data back to InfluxData. The InfluxData telemetry page provides information about what data is collected and how it is used.
To opt-out of sending telemetry data back to InfluxData, include the
--reporting-disabled flag when starting influxd.
influxd --reporting-disabled
{{% /note %}}
{{% /tab-content %}}
{{% tab-content %}} {{% note %}}
System requirements
- Windows 10
- 64-bit AMD architecture
- Powershell or Windows Subsystem for Linux (WSL)
Command line examples
Use Powershell or WSL to execute influx and influxd commands.
The command line examples in this documentation use influx and influxd as if
installed on the system PATH.
If these binaries are not installed on your PATH, replace influx and influxd
in the provided examples with ./influx and ./influxd respectively.
{{% /note %}}
Download and install InfluxDB v2
{{% note %}}
InfluxDB and the influx CLI are separate packages
The InfluxDB server (influxd) and the
influx CLI are packaged and
versioned separately.
For information about installing the influx CLI, see
Install and use the influx CLI.
{{% /note %}}
InfluxDB v2 (Windows)
Expand the downloaded archive into C:\Program Files\InfluxData\ and rename the files if desired.
> Expand-Archive .\influxdb2-{{< latest-patch >}}-windows.zip -DestinationPath 'C:\Program Files\InfluxData\'
> mv 'C:\Program Files\InfluxData\influxdb2-{{< latest-patch >}}' 'C:\Program Files\InfluxData\influxdb'
{{< expand-wrapper >}} {{% expand "Recommended – Set appropriate directory permissions" %}}
To prevent unwanted access to data, we recommend setting the permissions on the influxdb data-dir to not be world readable.
Example:
> $acl = Get-Acl "C:\Users\<username>\.influxdbv2"
> $accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("everyone","Read","Deny")
> $acl.SetAccessRule($accessRule)
> $acl | Set-Acl "C:\Users\<username>\.influxdbv2"
{{% /expand %}} {{< /expand-wrapper >}}
Networking ports
By default, InfluxDB uses TCP port 8086 for client-server communication over
the InfluxDB HTTP API.
Start InfluxDB
In Powershell, navigate into C:\Program Files\InfluxData\influxdb and start
InfluxDB by running the influxd daemon:
> cd -Path 'C:\Program Files\InfluxData\influxdb'
> ./influxd
See the influxd documentation for information about
available flags and options.
{{% note %}}
Grant network access
When starting InfluxDB for the first time, Windows Defender will appear with the following message:
Windows Defender Firewall has blocked some features of this app.
- Select Private networks, such as my home or work network.
- Click Allow access. {{% /note %}}
{{% note %}}
InfluxDB "phone home"
By default, InfluxDB sends telemetry data back to InfluxData. The InfluxData telemetry page provides information about what data is collected and how it is used.
To opt-out of sending telemetry data back to InfluxData, include the
--reporting-disabled flag when starting influxd.
./influxd --reporting-disabled
{{% /note %}}
{{% /tab-content %}}
{{% tab-content %}}
Download and run InfluxDB v2
Use docker run to download and run the InfluxDB v2 Docker image.
Expose port 8086, which InfluxDB uses for client-server communication over
the InfluxDB HTTP API.
docker run --name influxdb -p 8086:8086 influxdb:{{< latest-patch >}}
To run InfluxDB in detached mode, include the -d flag in the docker run command.
Persist data outside the InfluxDB container
-
Create a new directory to store your data in and navigate into the directory.
mkdir path/to/influxdb-docker-data-volume && cd $_ -
From within your new directory, run the InfluxDB Docker container with the
--volumeflag to persist data from/var/lib/influxdb2inside the container to the current working directory in the host file system.docker run \ --name influxdb \ -p 8086:8086 \ --volume $PWD:/var/lib/influxdb2 \ influxdb:{{< latest-patch >}}
Configure InfluxDB with Docker
To mount an InfluxDB configuration file and use it from within Docker:
-
Use the command below to generate the default configuration file on the host file system:
docker run \ --rm influxdb:{{< latest-patch >}} \ influx server-config > config.yml -
Modify the default configuration, which will now be available under
$PWD. -
Start the InfluxDB container:
docker run -p 8086:8086 \ -v $PWD/config.yml:/etc/influxdb2/config.yml \ influxdb:{{< latest-patch >}}
(Find more about configuring InfluxDB here.)
Open a shell in the InfluxDB container
To use the influx command line interface, open a shell in the influxdb Docker container:
docker exec -it influxdb /bin/bash
{{% note %}}
InfluxDB "phone home"
By default, InfluxDB sends telemetry data back to InfluxData. The InfluxData telemetry page provides information about what data is collected and how it is used.
To opt-out of sending telemetry data back to InfluxData, include the
--reporting-disabled flag when starting the InfluxDB container.
docker run -p 8086:8086 influxdb:{{< latest-patch >}} --reporting-disabled
{{% /note %}}
{{% /tab-content %}}
{{% tab-content %}}
Install InfluxDB in a Kubernetes cluster
The instructions below use minikube or kind, but the steps should be similar in any Kubernetes cluster. InfluxData also makes Helm charts available.
-
Start a local cluster:
# with minikube minikube start# with kind kind create cluster -
Apply the sample InfluxDB configuration by running:
kubectl apply -f https://raw.githubusercontent.com/influxdata/docs-v2/master/static/downloads/influxdb-k8-minikube.yamlThis creates an
influxdbNamespace, Service, and StatefulSet. A PersistentVolumeClaim is also created to store data written to InfluxDB.Important: Always inspect YAML manifests before running
kubectl apply -f <url>! -
Ensure the Pod is running:
kubectl get pods -n influxdb -
Ensure the Service is available:
kubectl describe service -n influxdb influxdbYou should see an IP address after
Endpointsin the command's output. -
Forward port 8086 from inside the cluster to localhost:
kubectl port-forward -n influxdb service/influxdb 8086:8086
{{% /tab-content %}}
{{% tab-content %}}
Install InfluxDB v2 on Raspberry Pi
{{% note %}}
Requirements
To run InfluxDB on Raspberry Pi, you need:
- a Raspberry Pi 4+ or 400
- a 64-bit operating system. We recommend installing a 64-bit version of Ubuntu of Ubuntu Desktop or Ubuntu Server compatible with 64-bit Raspberry Pi. {{% /note %}}
Install Linux binaries
Follow the Linux installation instructions to install InfluxDB on a Raspberry Pi.
Monitor your Raspberry Pi
Use the InfluxDB Raspberry Pi template to easily configure collecting and visualizing system metrics for the Raspberry Pi.
Monitor 32-bit Raspberry Pi systems
If you have a 32-bit Raspberry Pi, use Telegraf to collect and send data to:
- InfluxDB OSS, running on a 64-bit system
- InfluxDB Cloud with a Free Tier account
- InfluxDB Cloud with a paid Usage-Based account with relaxed resource restrictions.
{{% /tab-content %}}
{{< /tabs-wrapper >}}
Download and install the influx CLI
The influx CLI lets you manage InfluxDB
from your command line.
Download and install the influx CLI
Set up InfluxDB
The initial setup process for an InfluxDB instance creates the following:
- An organization with the name you provide.
- A primary bucket with the name you provide.
- An admin authorization with the following properties:
- The username and password that you provide.
- An API token (operator token).
- Read-write permissions for all resources in the InfluxDB instance.
To run an interactive setup that prompts you for the required information,
use the InfluxDB user interface (UI) or the influx command line interface (CLI).
To automate the setup--for example, with a script that you write--
use the influx command line interface (CLI) or the InfluxDB /api/v2 API.
{{< tabs-wrapper >}} {{% tabs %}} Set up with the UI Set up with the CLI {{% /tabs %}}
{{% tab-content %}}
Set up InfluxDB through the UI
- With InfluxDB running, visit http://localhost:8086.
- Click Get Started
Set up your initial user
-
Enter a Username for your initial user.
-
Enter a Password and Confirm Password for your user.
-
Enter your initial Organization Name.
-
Enter your initial Bucket Name.
-
Click Continue.
-
Copy the provided operator API token and store it for safe keeping.
{{% note %}} We recommend using a password manager or a secret store to securely store sensitive tokens. {{% /note %}}
Your InfluxDB instance is now initialized.
(Optional) Set up and use the influx CLI
To avoid having to pass your InfluxDB
API token with each influx command, set up a configuration profile to store your credentials--for example,
enter the following code in your terminal:
{{% code-placeholders "API_TOKEN|ORG|http://localhost:8086|default|USERNAME|PASSWORD" %}}
# Set up a configuration profile
influx config create \
--config-name default \
--host-url http://localhost:8086 \
--org ORG \
--token API_TOKEN \
--active
{{% /code-placeholders %}}
Replace the following:
- {{% code-placeholder-key %}}
ORG{{% /code-placeholder-key %}}: your organization name. - {{% code-placeholder-key %}}
API_TOKEN{{% /code-placeholder-key %}}: your API token.
This configures a new profile named default and makes the profile active
so your influx CLI commands run against the specified InfluxDB instance.
For more detail about configuration profiles, see influx config.
Once you have the default configuration profile, you're ready to create All-Access tokens
or get started collecting and writing data.
{{% /tab-content %}}
{{% tab-content %}}
Set up InfluxDB through the influx CLI
Use the influx setup CLI command in interactive or non-interactive (headless) mode to initialize
your InfluxDB instance.
Do one of the following:
Run influx setup without user interaction
To run the InfluxDB setup process with your automation scripts, pass flags
with the required information to the influx setup command.
Pass the -f, --force flag to bypass screen prompts.
The following example command shows how to set up InfluxDB in non-interactive mode with an initial admin user, operator token, and bucket:
influx setup \
--username USERNAME \
--password PASSWORD \
--token TOKEN \
--org ORGANIZATION_NAME \
--bucket BUCKET_NAME \
--force
The command outputs the following:
User Organization Bucket
USERNAME ORGANIZATION_NAME BUCKET_NAME
{{% note %}}
If you run influx setup without the -t, --token flag, InfluxDB
automatically generates an operator API token and stores it in an
influx CLI connection configuration.
{{% /note %}}
Once setup completes, InfluxDB is initialized with an operator token, user, organization, and bucket.
InfluxDB creates a default configuration profile for you that provides your
InfluxDB URL, organization, and API token to influx CLI commands.
For more detail about configuration profiles, see influx config.
Once you have the default configuration profile, you're ready to create All-Access tokens
or get started collecting and writing data.
Run influx setup with user prompts
To run setup with prompts for the required information, enter the following command in your terminal:
influx setup
Complete the following steps as prompted by the CLI:
- Enter a primary username.
- Enter a password for your user.
- Confirm your password by entering it again.
- Enter a name for your primary organization.
- Enter a name for your primary bucket.
- Enter a retention period for your primary bucket—valid units are
nanoseconds (
ns), microseconds (usorµs), milliseconds (ms), seconds (s), minutes (m), hours (h), days (d), and weeks (w). Enter nothing for an infinite retention period. - Confirm the details for your primary user, organization, and bucket.
Once setup completes, InfluxDB is initialized with the user, organization, bucket, and operator token.
InfluxDB creates a default configuration profile for you that provides your
InfluxDB URL, organization, and API token to influx CLI commands.
For more detail about configuration profiles, see influx config.
Once you have the default configuration profile, you're ready to create All-Access tokens
or get started collecting and writing data.
{{% /tab-content %}}
{{< /tabs-wrapper >}}
Create All-Access tokens
Because Operator tokens have full read and write access to all organizations in the database, we recommend creating an All-Access token for each organization and using those tokens to manage InfluxDB.