安装 InfluxDB OSS
本页面记录了 InfluxDB OSS 的早期版本。 InfluxDB OSS v2 是最新的稳定版本。请参见等效的 InfluxDB v2 文档: 安装 InfluxDB OSS v2。
此页面提供有关安装、启动和配置 InfluxDB 开源(OSS)的说明。
InfluxDB OSS 安装要求
安装InfluxDB软件包可能需要root或管理员权限才能成功完成。
InfluxDB OSS 网络端口
默认情况下,InfluxDB 使用以下网络端口:
- TCP 端口
8086可用于通过 InfluxDB API 进行客户端-服务器通信。 - TCP端口
8088可用于RPC服务执行备份和恢复操作。
除了上述端口,InfluxDB 还提供多个可能需要 自定义端口 的插件。所有端口映射可以通过 配置文件 进行修改,默认安装的配置文件位于 /etc/influxdb/influxdb.conf。
网络时间协议 (NTP)
InfluxDB使用主机的本地时间(UTC)为数据分配时间戳以及进行协调。 使用网络时间协议(NTP)在主机之间同步时间;如果主机的时钟没有与NTP同步,写入InfluxDB的数据的时间戳可能会不准确。
安装 InfluxDB OSS
对于不想安装任何软件并准备使用 InfluxDB 的用户,您可能想查看我们的 托管的 InfluxDB 服务。
有关如何从文件安装Debian软件包的说明,请参阅下载页面。
Debian 和 Ubuntu 用户可以使用最新稳定版本的 InfluxDB,通过 apt-get 包管理器进行安装。
对于 Ubuntu/Debian 用户,可以使用以下命令添加 InfluxData 存储库:
# 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
# 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
然后,安装并启动 InfluxDB 服务:
sudo apt-get update && sudo apt-get install influxdb
sudo service influxdb start
或者,如果你的操作系统使用的是systemd(Ubuntu 15.04+,Debian 8+):
sudo apt-get update && sudo apt-get install influxdb
sudo systemctl unmask influxdb.service
sudo systemctl start influxdb
有关如何从文件安装RPM包的说明,请参见下载页面。
Red Hat 和 CentOS 用户可以使用 yum 包管理器安装最新的稳定版本的 InfluxDB:
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
一旦将仓库添加到yum配置中,运行以下命令安装并启动InfluxDB服务:
sudo yum install influxdb
sudo service influxdb start
或者如果你的操作系统使用systemd(CentOS 7+,RHEL 7+):
sudo yum install influxdb
sudo systemctl start influxdb
openSUSE构建服务为SUSE Linux用户提供的RPM软件包:
# add go repository
zypper ar -f obs://devel:languages:go/ go
# install latest influxdb
zypper in influxdb
InfluxDB 是 FreeBSD 包系统的一部分。 它可以通过运行以下命令进行安装:
sudo pkg install influxdb
配置文件位于 /usr/local/etc/influxd.conf,示例在 /usr/local/etc/influxd.conf.sample 中。
通过执行以下命令启动后端:
sudo service influxd onestart
要使InfluxDB在系统启动时启动,请将 influxd_enable="YES" 添加到 /etc/rc.conf。
使用 Homebrew 在 macOS 上安装 InfluxDB:
brew update
brew install influxdb@1
通过Homebrew安装多个版本的InfluxDB
使用Homebrew安装InfluxDB 1.8和InfluxDB 2.0可能会导致意外的路径和命名冲突。您可以通过指定完整路径来始终运行所需版本:
$ /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)
验证下载的二进制文件的真实性(可选)
为了增加安全性,请按照以下步骤使用 gpg 验证您的 InfluxDB 下载的签名。
(大多数操作系统默认包含 gpg 命令。如果 gpg 不可用,请参阅 GnuPG homepage 以获取安装说明。)
下载并导入InfluxData的公钥:
curl -s https://repos.influxdata.com/influxdata-archive_compat.key | gpg --import通过将
.asc添加到下载 URL,下载发布的签名文件。 例如:wget https://download.influxdata.com/influxdb/releases/influxdb-1.11.8-linux-amd64.tar.gz.asc使用
gpg --verify验证签名:gpg --verify influxdb-1.11.8_linux_amd64.tar.gz.asc influxdb-1.11.8-linux-amd64.tar.gz此命令的输出应包括以下内容:
gpg: Good signature from "InfluxDB Packaging Service <support@influxdb.com>" [unknown]
配置 InfluxDB OSS
系统对于每个配置文件设置都有内部默认值。 使用 influxd config 命令查看默认配置设置。
注意: 如果InfluxDB部署在公共可访问的端点,强烈建议启用身份验证。否则数据将公开可供任何未经过身份验证的用户访问。默认设置不启用身份验证和授权。此外,身份验证和授权不应仅依赖于防止访问和保护数据不受恶意行为者的影响。如果需要额外的安全性或合规性功能,InfluxDB应在第三方服务后运行。请查看身份验证和授权设置。
本地配置文件中的大多数设置
(/etc/influxdb/influxdb.conf) 都被注释掉了;所有
被注释的设置将由内部默认值决定。
本地配置文件中未注释的设置将覆盖
内部默认值。
请注意,本地配置文件不需要包含每个
配置设置。
有两种方法可以使用你的配置文件启动InfluxDB:
通过使用
-config选项,将进程指向正确的配置文件:influxd -config /etc/influxdb/influxdb.conf将环境变量
INFLUXDB_CONFIG_PATH设置为您的配置文件的路径并启动过程。
例如:echo $INFLUXDB_CONFIG_PATH /etc/influxdb/influxdb.conf influxd
InfluxDB 首先检查 -config 选项,然后检查环境变量。
有关更多信息,请参阅配置文档。
数据和WAL目录权限
确保存储数据和提前写入日志(WAL)的目录对运行influxd服务的用户是可写的。
注意: 如果数据和WAL目录不可写,influxd 服务将无法启动。
运行 influxd 进程的用户应对 InfluxDB 文件系统 中的目录具有以下权限:
| 目录路径 | 权限 |
|---|---|
influxdb/ | 755 |
influxdb/data/ | 755 |
influxdb/meta/ | 755 |
influxdb/wal/ | 700 |
有关 data 和 wal 目录路径的信息可在 数据设置 部分的 配置 InfluxDB 文档中找到。
在AWS上托管InfluxDB OSS
InfluxDB的硬件要求
我们建议使用两个SSD卷,使用一个用于influxdb/wal,另一个用于influxdb/data。根据您的负载,每个卷应该有约1k-3k的预配置IOPS。influxdb/data卷应该有更多的磁盘空间,IOPS较低,而influxdb/wal卷应该有较少的磁盘空间,IOPS较高。
每台机器应该至少有8GB的内存。
我们在R4系列机器上看到了最佳性能,因为它们提供的内存比C3/C4系列和M4系列更多。
配置 InfluxDB OSS 实例
本例假设您正在使用两个SSD卷,并且您已适当地挂载它们。
本例还假设这两个卷分别挂载在 /mnt/influx 和 /mnt/db。
有关如何执行此操作的更多信息,请参见将卷添加到您的实例的Amazon文档。
配置文件
您需要为每个 InfluxDB 实例适当地更新配置文件。
...
[meta]
dir = "/mnt/db/meta"
...
...
[data]
dir = "/mnt/db/data"
...
wal-dir = "/mnt/influx/wal"
...
...
[hinted-handoff]
...
dir = "/mnt/db/hh"
...
身份验证与授权
对于所有AWS部署,我们强烈建议启用身份验证。如果不这样做,可能会导致您的InfluxDB实例对任何未身份验证的用户公开可用。默认设置不启用身份验证和授权。此外,不应仅仅依赖身份验证和授权来防止访问和保护数据免受恶意行为者的侵害。如果需要额外的安全性或合规性功能,InfluxDB应在AWS提供的其他服务后运行。审查身份验证和授权设置。
InfluxDB OSS 权限
当使用非标准目录存储InfluxDB的数据和配置时,还请确保正确设置文件系统权限:
chown influxdb:influxdb /mnt/influx
chown influxdb:influxdb /mnt/db
对于 InfluxDB 1.7.6 或更高版本,您必须将所有者权限授予 init.sh 文件。要做到这一点,请在您的 influxdb 目录中运行以下脚本:
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