docs-v2/content/influxdb/v1.5/introduction/installation.md

284 lines
8.3 KiB
Markdown
Raw Normal View History

2020-07-30 03:44:04 +00:00
---
title: Installing InfluxDB OSS
menu:
influxdb_1_5:
name: Installing
weight: 20
parent: Introduction
2020-11-05 17:38:49 +00:00
aliases:
- /influxdb/v1.5/guides/hardware_sizing/
2020-07-30 03:44:04 +00:00
---
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 -
2020-07-30 03:44:04 +00:00
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 -
2020-07-30 03:44:04 +00:00
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.
Weve 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
```