284 lines
8.3 KiB
Markdown
284 lines
8.3 KiB
Markdown
---
|
||
title: Installing InfluxDB OSS
|
||
menu:
|
||
influxdb_1_5:
|
||
name: Installing
|
||
weight: 20
|
||
parent: Introduction
|
||
aliases:
|
||
- /influxdb/v1.5/guides/hardware_sizing/
|
||
---
|
||
|
||
This page provides directions for installing, starting, and configuring InfluxDB.
|
||
|
||
## 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 used for client-server communication over InfluxDB's HTTP API
|
||
- TCP port `8088` is used for the RPC service for backup and restore
|
||
|
||
In addition to the ports above, InfluxDB also offers multiple plugins that may
|
||
require [custom ports](/influxdb/v1.5/administration/ports/).
|
||
All port mappings can be modified through the [configuration file](/influxdb/v1.5/administration/config),
|
||
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](https://cloud.influxdata.com).
|
||
|
||
{{< tabs-wrapper >}}
|
||
{{% tabs %}}
|
||
[Ubuntu & Debian](#)
|
||
[Red Hat & CentOS](#)
|
||
[SLES & openSUSE](#)
|
||
[FreeBSD/PC-BSD](#)
|
||
[macOS](#)
|
||
{{% /tabs %}}
|
||
{{% tab-content %}}
|
||
For instructions on how to install the Debian package from a file,
|
||
please see the
|
||
[downloads page](https://influxdata.com/downloads/).
|
||
|
||
Debian and Ubuntu
|
||
users can install the latest stable version of InfluxDB using the
|
||
`apt-get` package manager.
|
||
|
||
For Ubuntu users, add the InfluxData repository with the following commands:
|
||
|
||
```bash
|
||
curl -s https://repos.influxdata.com/influxdb.key | sudo apt-key add -
|
||
source /etc/lsb-release
|
||
echo "deb https://repos.influxdata.com/${DISTRIB_ID,,} ${DISTRIB_CODENAME} stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
|
||
```
|
||
|
||
For Debian users, add the InfluxData repository:
|
||
|
||
```bash
|
||
curl -s https://repos.influxdata.com/influxdb.key | sudo apt-key add -
|
||
source /etc/os-release
|
||
test $VERSION_ID = "7" && echo "deb https://repos.influxdata.com/debian wheezy stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
|
||
test $VERSION_ID = "8" && echo "deb https://repos.influxdata.com/debian jessie stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
|
||
test $VERSION_ID = "9" && echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list
|
||
```
|
||
|
||
Then, install and start the InfluxDB service:
|
||
|
||
```bash
|
||
sudo apt-get update && sudo apt-get install influxdb
|
||
sudo service influxdb start
|
||
```
|
||
|
||
Or if your operating system is using systemd (Ubuntu 15.04+, Debian 8+):
|
||
|
||
```bash
|
||
sudo apt-get update && sudo apt-get install influxdb
|
||
sudo systemctl start influxdb
|
||
```
|
||
|
||
{{% /tab-content %}}
|
||
|
||
{{% tab-content %}}
|
||
|
||
For instructions on how to install the RPM package from a file, please see the [downloads page](https://influxdata.com/downloads/).
|
||
|
||
Red Hat and CentOS users can install the latest stable version of InfluxDB using the `yum` package manager:
|
||
|
||
```bash
|
||
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/influxdb.key
|
||
EOF
|
||
```
|
||
|
||
Once repository is added to the `yum` configuration, install and start the InfluxDB service by running:
|
||
|
||
```bash
|
||
sudo yum install influxdb
|
||
sudo service influxdb start
|
||
```
|
||
|
||
Or if your operating system is using systemd (CentOS 7+, RHEL 7+):
|
||
|
||
```bash
|
||
sudo yum install influxdb
|
||
sudo systemctl start influxdb
|
||
```
|
||
|
||
{{% /tab-content %}}
|
||
|
||
{{% tab-content %}}
|
||
|
||
There are RPM packages provided by openSUSE Build Service for SUSE Linux users:
|
||
|
||
```bash
|
||
# add go repository
|
||
zypper ar -f obs://devel:languages:go/ go
|
||
# install latest influxdb
|
||
zypper in influxdb
|
||
```
|
||
|
||
{{% /tab-content %}}
|
||
|
||
{{% tab-content %}}
|
||
|
||
InfluxDB is part of the FreeBSD package system.
|
||
It can be installed by running:
|
||
|
||
```bash
|
||
sudo pkg install influxdb
|
||
```
|
||
|
||
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:
|
||
|
||
```bash
|
||
sudo service influxd onestart
|
||
```
|
||
|
||
To have InfluxDB start at system boot, add `influxd_enable="YES"` to `/etc/rc.conf`.
|
||
|
||
{{% /tab-content %}}
|
||
|
||
{{% tab-content %}}
|
||
|
||
Users of macOS 10.8 and higher can install InfluxDB using the [Homebrew](http://brew.sh/) package manager.
|
||
Once `brew` is installed, you can install InfluxDB by running:
|
||
|
||
```bash
|
||
brew update
|
||
brew install influxdb
|
||
```
|
||
|
||
To have `launchd` start InfluxDB now and restart at login, run:
|
||
|
||
```bash
|
||
brew services start influxdb
|
||
```
|
||
|
||
Or, if you don't want/need launchctl, in a separate terminal window you can just run:
|
||
|
||
```bash
|
||
influxd -config /usr/local/etc/influxdb.conf
|
||
```
|
||
|
||
{{% /tab-content %}}
|
||
{{< /tabs-wrapper >}}
|
||
|
||
## Configuring InfluxDB OSS
|
||
|
||
The system has internal defaults for every configuration file setting.
|
||
View the default configuration settings with the `influxd config` command.
|
||
|
||
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:
|
||
|
||
```bash
|
||
influxd -config /etc/influxdb/influxdb.conf
|
||
```
|
||
* 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
|
||
```
|
||
|
||
InfluxDB first checks for the `-config` option and then for the environment
|
||
variable.
|
||
|
||
See the [Configuration](/influxdb/v1.5/administration/config/) documentation for more information.
|
||
|
||
### Data and WAL directory permissions
|
||
|
||
Make sure the directories in which data and the [write ahead log](/influxdb/v1.5/concepts/glossary/#wal-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.
|
||
|
||
Information about `data` and `wal` directory paths is available in the [Data settings](/influxdb/v1.5/administration/config/#data-settings-data) section of the [Configuring InfluxDB](/influxdb/v1.5/administration/config/) 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 8G 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](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-attaching-volume.html).
|
||
|
||
### Config file
|
||
You'll have to update the config 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"
|
||
...
|
||
```
|
||
|
||
### InfluxDB OSS permissions
|
||
|
||
When using non-standard directories for InfluxDB data and configurations, also be sure to set filesystem permissions correctly:
|
||
|
||
```bash
|
||
chown influxdb:influxdb /mnt/influx
|
||
chown influxdb:influxdb /mnt/db
|
||
```
|