Documentation

Install InfluxDB OSS

This page documents an earlier version of InfluxDB OSS. InfluxDB OSS v2 is the latest stable version. See the equivalent InfluxDB v2 documentation: Install InfluxDB OSS v2.

This page provides directions for installing, starting, and configuring InfluxDB open source (OSS).

InfluxDB OSS installation requirements

Installation of the InfluxDB package may require root or administrator privileges in order to complete successfully.

InfluxDB OSS networking ports

By default, InfluxDB uses the following network ports:

  • TCP port 8086 is available for client-server communication using the InfluxDB API.
  • TCP port 8088 is available for the RPC service to perform back up and restore operations.

In addition to the ports above, InfluxDB also offers multiple plugins that may require custom ports. All port mappings can be modified through the configuration file, which is located at /etc/influxdb/influxdb.conf for default installations.

Network Time Protocol (NTP)

InfluxDB uses a host’s local time in UTC to assign timestamps to data and for coordination purposes. Use the Network Time Protocol (NTP) to synchronize time between hosts; if hosts' clocks aren’t synchronized with NTP, the timestamps on the data written to InfluxDB can be inaccurate.

Installing InfluxDB OSS

For users who don’t want to install any software and are ready to use InfluxDB, you may want to check out our managed hosted InfluxDB offering.

For instructions on how to install the Debian package from a file, please see the downloads page.

Debian and Ubuntu users can install the latest stable version of InfluxDB using the apt-get package manager.

For Ubuntu/Debian users, add the InfluxData repository with the following commands:

# influxdata-archive_compat.key GPG Fingerprint: 9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E
wget -q https://repos.influxdata.com/influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
  • Copy
  • Fill window
# influxdata-archive_compat.key GPG Fingerprint: 9D539D90D3328DC7D6C8D3B9D8FF8E1F7DF8B07E
curl -s https://repos.influxdata.com/influxdata-archive_compat.key > influxdata-archive_compat.key
echo '393e8779c89ac8d958f81f942f9ad7fb82a25e133faddaf92e15b16e6ac9ce4c influxdata-archive_compat.key' | sha256sum -c && cat influxdata-archive_compat.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg > /dev/null
echo 'deb [signed-by=/etc/apt/trusted.gpg.d/influxdata-archive_compat.gpg] https://repos.influxdata.com/debian stable main' | sudo tee /etc/apt/sources.list.d/influxdata.list
  • Copy
  • Fill window

Then, install and start the InfluxDB service:

sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
  • Copy
  • Fill window

Or if your operating system is using systemd (Ubuntu 15.04+, Debian 8+):

sudo apt-get update && sudo apt-get install influxdb
sudo systemctl unmask influxdb.service
sudo systemctl start influxdb
  • Copy
  • Fill window

For instructions on how to install the RPM package from a file, please see the downloads page.

Red Hat and CentOS users can install the latest stable version of InfluxDB using the yum package manager:

cat <<EOF | sudo tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdata-archive_compat.key
EOF
  • Copy
  • Fill window

Once repository is added to the yum configuration, install and start the InfluxDB service by running:

sudo yum install influxdb
sudo service influxdb start
  • Copy
  • Fill window

Or if your operating system is using systemd (CentOS 7+, RHEL 7+):

sudo yum install influxdb
sudo systemctl start influxdb
  • Copy
  • Fill window

There are RPM packages provided by openSUSE Build Service for SUSE Linux users:

# add go repository
zypper ar -f obs://devel:languages:go/ go
# install latest influxdb
zypper in influxdb
  • Copy
  • Fill window

InfluxDB is part of the FreeBSD package system. It can be installed by running:

sudo pkg install influxdb
  • Copy
  • Fill window

The configuration file is located at /usr/local/etc/influxd.conf with examples in /usr/local/etc/influxd.conf.sample.

Start the backend by executing:

sudo service influxd onestart
  • Copy
  • Fill window

To have InfluxDB start at system boot, add influxd_enable="YES" to /etc/rc.conf.

Use Homebrew to install InfluxDB on macOS:

brew update
brew install influxdb@1
  • Copy
  • Fill window
Multiple versions of InfluxDB with Homebrew

Installing both InfluxDB 1.8 and InfluxDB 2.0 with Homebrew can result in unexpected path and naming conflicts. You can always run the desired version by specifying the full path:

$ /usr/local/opt/influxdb/bin/influxd version
InfluxDB 1.11.8 (git: none) build_date: 2021-04-01T17:55:08Z
$ /usr/local/opt/influxdb@1/bin/influxd version
InfluxDB v (git: unknown unknown)
  • Copy
  • Fill window

Verify the authenticity of downloaded binary (optional)

For added security, follow these steps to verify the signature of your InfluxDB download with gpg.

(Most operating systems include the gpg command by default. If gpg is not available, see the GnuPG homepage for installation instructions.)

  1. Download and import InfluxData’s public key:

    curl -s https://repos.influxdata.com/influxdata-archive_compat.key | gpg --import
    
    • Copy
    • Fill window
  2. Download the signature file for the release by adding .asc to the download URL. For example:

    wget https://download.influxdata.com/influxdb/releases/influxdb-1.11.8-linux-amd64.tar.gz.asc
    
    • Copy
    • Fill window
  3. Verify the signature with gpg --verify:

    gpg --verify influxdb-1.11.8_linux_amd64.tar.gz.asc influxdb-1.11.8-linux-amd64.tar.gz
    
    • Copy
    • Fill window

    The output from this command should include the following:

    gpg: Good signature from "InfluxDB Packaging Service <support@influxdb.com>" [unknown]
    
    • Copy
    • Fill window

Configuring InfluxDB OSS

The system has internal defaults for every configuration file setting. View the default configuration settings with the influxd config command.

Note: If InfluxDB is being deployed on a publicly accessible endpoint, we strongly recommend authentication be enabled. Otherwise the data will be publicly available to any unauthenticated user. The default settings do NOT enable authentication and authorization. Further, authentication and authorization should not be solely relied upon to prevent access and protect data from malicious actors. If additional security or compliance features are desired, InfluxDB should be run behind a third-party service. Review the authentication and authorization settings.

Most of the settings in the local configuration file (/etc/influxdb/influxdb.conf) are commented out; all commented-out settings will be determined by the internal defaults. Any uncommented settings in the local configuration file override the internal defaults. Note that the local configuration file does not need to include every configuration setting.

There are two ways to launch InfluxDB with your configuration file:

  • Point the process to the correct configuration file by using the -config option:

    influxd -config /etc/influxdb/influxdb.conf
    
    • Copy
    • Fill window
  • Set the environment variable INFLUXDB_CONFIG_PATH to the path of your configuration file and start the process. For example:

    echo $INFLUXDB_CONFIG_PATH
    /etc/influxdb/influxdb.conf
    
    influxd
    
    • Copy
    • Fill window

InfluxDB first checks for the -config option and then for the environment variable.

See the Configuration documentation for more information.

Data and WAL directory permissions

Make sure the directories in which data and the write ahead log (WAL) are stored are writable for the user running the influxd service.

Note: If the data and WAL directories are not writable, the influxd service will not start.

The user running the influxd process should have the following permissions for directories in the InfluxDB file system:

Directory pathPermission
influxdb/755
influxdb/data/755
influxdb/meta/755
influxdb/wal/700

Information about data and wal directory paths is available in the Data settings section of the Configuring InfluxDB documentation.

Hosting InfluxDB OSS on AWS

Hardware requirements for InfluxDB

We recommend using two SSD volumes, using one for the influxdb/wal and the other for the influxdb/data. Depending on your load, each volume should have around 1k-3k provisioned IOPS. The influxdb/data volume should have more disk space with lower IOPS and the influxdb/wal volume should have less disk space with higher IOPS.

Each machine should have a minimum of 8GB RAM.

We’ve seen the best performance with the R4 class of machines, as they provide more memory than either of the C3/C4 class and the M4 class.

Configuring InfluxDB OSS instances

This example assumes that you are using two SSD volumes and that you have mounted them appropriately. This example also assumes that each of those volumes is mounted at /mnt/influx and /mnt/db. For more information on how to do that see the Amazon documentation on how to Add a Volume to Your Instance.

Configuration file

You’ll have to update the configuration file appropriately for each InfluxDB instance you have.

...

[meta]
  dir = "/mnt/db/meta"
  ...

...

[data]
  dir = "/mnt/db/data"
  ...
wal-dir = "/mnt/influx/wal"
  ...

...

[hinted-handoff]
    ...
dir = "/mnt/db/hh"
    ...
  • Copy
  • Fill window

Authentication and Authorization

For all AWS deployments, we strongly recommend authentication be enabled. Without this, it is possible that your InfluxDB instance may be publicly available to any unauthenticated user. The default settings do NOT enable authentication and authorization. Further, authentication and authorization should not be solely relied upon to prevent access and protect data from malicious actors. If additional security or compliance features are desired, InfluxDB should be run behind additional services offered by AWS. Review the authentication and authorization settings.

InfluxDB OSS permissions

When using non-standard directories for InfluxDB data and configurations, also be sure to set filesystem permissions correctly:

chown influxdb:influxdb /mnt/influx
chown influxdb:influxdb /mnt/db
  • Copy
  • Fill window

For InfluxDB 1.7.6 or later, you must give owner permissions to the init.sh file. To do this, run the following script in your influxdb directory:

if [ ! -f "$STDOUT" ]; then
    mkdir -p $(dirname $STDOUT)
    chown $USER:$GROUP $(dirname $STDOUT)
 fi

 if [ ! -f "$STDERR" ]; then
    mkdir -p $(dirname $STDERR)
    chown $USER:$GROUP $(dirname $STDERR)
 fi

 # Override init script variables with DEFAULT values
  • Copy
  • Fill window

Was this page helpful?

Thank you for your feedback!


The future of Flux

Flux is going into maintenance mode. You can continue using it as you currently are without any changes to your code.

Read more

InfluxDB 3 Core and Enterprise are now in Beta

InfluxDB 3 Core and Enterprise are now available for beta testing, available under MIT or Apache 2 license.

InfluxDB 3 Core is a high-speed, recent-data engine that collects and processes data in real-time, while persisting it to local disk or object storage. InfluxDB 3 Enterprise is a commercial product that builds on Core’s foundation, adding high availability, read replicas, enhanced security, and data compaction for faster queries. A free tier of InfluxDB 3 Enterprise will also be available for at-home, non-commercial use for hobbyists to get the full historical time series database set of capabilities.

For more information, check out: