如何在 Rocky Linux 9 上安装 InfluxDB 和 Telegraf
在此页
- 先决条件
- 设置存储库
- 安装 InfluxDB
- 安装 influxdb CLI
- 通过 InfluxDB CLI 配置 InfluxDB
- 使用 TLS 保护 InfluxDB
- 通过 Telegraf 收集数据
- 可视化数据和创建仪表板
- 结论
InfluxDB 是一个用 Go 编写的开源时间序列数据库。它是一个高性能的时间序列平台,专门用于收集、存储、处理和可视化时间序列数据。 InfluxDB 是时序数据库的首选解决方案,它提供了一个高性能的时序数据引擎,内置强大的 API 用于构建实时应用程序。 InfluxDB 是一个用于操作监控、应用程序和服务器性能指标、物联网传感器数据和实时分析的平台。
在本教程中,您将在 Rocky Linux 9 服务器上安装 influxdb 开源时间序列数据库和 Telegraf。您还将使用身份验证和 TLS 证书保护 influxdb 部署,设置 influxdb CLI,并通过 Telegraf 代理收集指标。在本指南的最后,您将通过 influxdb 仪表板创建和可视化 influxdb 时间序列数据库。
先决条件
首先,您必须满足以下要求才能完成本教程:
- 一台 Rocky Linux 9 服务器。
- 具有 sudo/root 管理员权限的非 root 用户。
- 具有宽容模式的 SELinux。
设置存储库
InfluxDB 是一个开源时间序列数据库,可以部署在多种环境中,包括带有 Linux、Windows 和 macOS 的虚拟机。还有容器化环境,例如 Docker 和 Kubernetes。
要在 Linux 上安装 influxdb,您可以通过二进制包手动安装或通过 influxdb 存储库安装。在此步骤中,您将通过官方 influxdb 存储库安装 influxdb。
运行以下命令将 influxdb 存储库添加到您的 Rocky Linux 系统。
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
之后,验证系统上的可用存储库列表。
sudo dnf repolist
您将收到类似于以下屏幕截图的输出 - 添加了 influxdb 存储库。

安装 InfluxDB
添加 influxdb 存储库后,您将把 influxdb 包安装到您的 Rocky Linux 系统并启动 influxdb 服务并启用它。
运行下面的 dnf 命令来安装 influxdb v2 包。在撰写本文时,您将安装最新版本的 influxdb v2.5.1。
sudo dnf install influxdb2
出现提示时,输入 y 确认并按 ENTER 继续。

此外,当提示输入 influxdb GPG 密钥时,输入 y 以确认并按 ENTER。

安装 influxdb 后,运行以下 systemctl 命令启动并启用 influxdb 服务。
sudo systemctl start influxdb
sudo systemctl enable influxdb
influxdb 服务现在应该正在运行并启用。它会在启动时自动启动。
通过以下命令验证 influxdb 服务。然后您会看到 influxdb 服务正在运行并已启用。
sudo systemctl status influxdb

默认情况下,influxdb 服务在 TCP 端口 8085 上运行。现在 influxdb 正在运行,您需要将 influxdb 端口添加到 firewalld。
运行以下 firewall-cmd 命令将端口 8086 添加到 firewalld。
sudo firewall-cmd --add-port=8086/tcp --permanent
现在重新加载 firewalld 以应用新的更改。然后,验证 firewalld 状态以确保将 influxdb 端口添加到 firewalld。
sudo firewall-cmd --reload
sudo firewall-cmd --list-ports
您将收到如下输出 - 添加到 firewalld 的 influxdb 端口 8089。

安装了 influxdb 并配置了 firewalld 后,您接下来将安装并设置 influxdb CLI,它将用于通过命令行管理 influxdb。
安装 influxdb CLI
influxdb时序数据库安装完成后,再安装influxdb2-cli或influxdb命令行。 influxdb2-cli 提供了一个命令行 influx,允许您管理 influxdb 管理,例如管理存储桶、组织、用户、任务等。
运行以下 dnf 命令来安装 influxdb2-cli 包。
sudo dnf install influxdb2-cli
在提示确认时输入 y,然后按 ENTER 继续。

安装 influxdb2-cli 后,运行以下命令检查 inlfuxdb2-cli 二进制文件并验证 influxdb-cli 版本。
which influx
influx version
这样的输出将打印到您的屏幕上 - influxdb2-cli 二进制文件位于 /bin/influx 并且您系统上安装的当前版本的 influxdb2-cli 是 v2.5.0。

influxdb2-cli 为 bash 和 zsh 等多个 shell 提供命令补全。大多数 Linux 机器使用 bash 默认 shell。因此,您将为 bash shell 设置 influxdb2-cli 命令完成。
运行以下命令生成 influxdb2-cli 命令完成到 /etc/bash_completion.d/influx.sh。然后,通过 chmod 命令使文件 /etc/bash_completion.d/influx.sh 可执行。
sudo influx completion bash > /etc/bash_completion.d/influx.sh
sudo chmod +x /etc/bash_completion.d/influx.sh
现在,如果您在系统上键入 influx 命令并按 TAB,您将看到 influx 命令的可用选项。
sudo influx TAB

此时,您已经在 Rocky Linux 系统上安装了 influxdb 时间序列数据库和 influxdb2-cli。然后,您将通过 influxdb2-cli 设置 influxdb 安装。
通过 InfluxDB CLI 配置 InfluxDB
在此步骤中,您将通过 influxdb2-cli 配置 influxdb 安装。您将设置 influxdb 管理员用户和密码,设置默认存储桶或数据库,在 influxdb 上验证列表用户和身份验证。您还将学习如何通过 influx 命令和用户令牌连接到 influxdb shell,以及如何通过网络浏览器访问 influxdb 网络管理仪表板。
首先,运行以下 influx 命令开始配置 influxdb 部署。
sudo influx setup
现在你会被问及下面的 influxdb 配置:
- 设置管理员用户 - 输入您的 influxdb 服务器的新用户名。此示例使用 alice 作为 influxdb 的管理员用户。
- 设置管理员密码 - 为您的 influxdb 部署输入新的管理员密码并重复密码。
- 定义组织名称 - 输入您的组织名称。在此示例中,组织是 HW.IO。
- 设置您将创建的主存储桶名称 - 输入默认安装的存储桶名称。本例中,桶名是test-bucket。
- 设置 influxdb 的保留期 - 输入 0 表示无限期。
- 现在输入 Yes 以确认 influxdb 基本配置。
以下是通过 influx 命令配置 influxdb 期间的完整输出。

现在已经创建了 influxdb 管理员用户,然后您将通过以下 influx 命令验证 influxdb 上的用户列表和身份验证。
sudo influx user list
sudo influx auth list
下面的输出确认 influxdb 管理员用户 alice 已创建,您还应该看到用户 alice 的身份验证详细信息,其中包括身份验证 ID、令牌和权限。

如您所见,用户令牌是在设置过程中自动生成的。接下来您将使用令牌登录到 influxdb shell 并验证您是否具有正确的 influxdb 配置。
在登录 influxdb shell 之前,运行以下命令创建环境变量 INFLUX_TOKEN。并确保使用您的令牌更改以下命令中的令牌。
export INFLUX_TOKEN=FlIq521ZVxEA40Iz7rVVKK25sDmuEWUHm_Mbly-4mYxt-rWrYOOytVnmE5yL5bpNB_gNHBWlYXKDED9PEbk-0g==
现在通过下面的 influx 命令登录 influxdb shell。登录后,您应该会看到一条消息,例如已连接到 InfluxDB OSS v2.5.1。
sudo influx v1 shell $INFLUX_TOKEN

接下来,运行以下 influx 查询以获取 influxdb 服务器上的数据库或存储桶的详细信息。
show DATABASES
你应该在 influxdb 服务器上获得可用的测试桶数据库。

您现在可以按 q 退出交互模式,然后键入 exit 从 influxdb shell 注销。
接下来,您还可以从网络浏览器访问您的 influxdb 管理。
打开您的 Web 浏览器并访问 influxdb 服务器 IP 地址和端口 8086(即:http://192.168.5.100:8086)。您现在应该获得 influxdb 登录页面。
输入您在 influxdb 设置过程中创建的 influxdb 用户和密码,然后单击 SIGN IN。在此示例中,管理员用户是 alice。

登录后,您现在应该可以看到基于 Web 的 influxdb 管理仪表板。

在左侧菜单中,单击“加载数据”并选择“存储桶”选项卡。你应该看到 test-bacuket 在 influxdb 服务器上可用。

完成 influxdb 的基本配置后,您接下来将开始通过启用 TLS 证书的安全连接来在 influxdb 上添加安全层。
使用 TLS 保护 InfluxDB
完成 influxdb 服务器基本配置后,您接下来将通过 SSL/TLS 证书保护 influxdb 部署。然后,您将使用新的安全 influxdb 服务器更新 influx 默认配置/配置文件。
在开始之前,请确保您已生成 SSL/TLS 证书。您可以使用自签名 SSL/TLS 证书或使用第三方(例如 Letsencrypt)生成的 SSL 证书。
首先,创建一个用于存储 SSL/TLS 证书的新目录 /etc/influxdb/ssl。
mkdir -p /etc/influxdb/ssl
现在将 SSL/TLS 证书复制到 /etc/influxdb/ssl 目录,并将目录 /etc/influxdb/ssl 的所有权更改为用户 influx。
cp /etc/letsencrypt/live/influxdb.hwdomain.io/{fullchain.pem,privkey.pem} /etc/influxdb/ssl/
sudo chown -R influx: /etc/influxdb/ssl
复制 SSL/TLS 证书后,使用以下 nano 编辑器命令打开 influxdb 配置文件 /etc/influxdb/config.toml。
sudo nano /etc/influxdb/config.toml
将以下行添加到文件中。
tls-cert = "/etc/influxdb/ssl/fullchain.pem"
tls-key = "/etc/influxdb/ssl/privkey.pem"
完成后保存文件并退出编辑器。
接下来,运行以下 systemctl 命令以重新启动 influxdb 服务并应用新更改。
sudo systemctl restart influxdb
现在 influxdb 在启用 TLS 的情况下运行,您将无法通过 influx 命令行查询和管理 influxdb 服务器。要解决此问题,您必须更新系统上的默认流入配置文件。
运行以下命令更新 influx 环境中的默认配置/配置文件。在此示例中,您将在启用安全 SSL/TLS 的情况下将 URL 更新为 https://influxdb.hwdomain.io:8086,并使用环境变量 INFLUX_TOKEN 和更新令牌组织到 HW.IO。
sudo influx config set -a -n default -u https://influxdb.hwdomain.io:8086 -t $INFLUX_TOKEN -o HW.IO
使用以下命令验证流入配置/配置文件列表。您现在应该看到 URL 已更改为 https://influxdb.hwdomain.io:8086,这在 influxdb 服务器上启用了 SSL/TLS。
sudo influx config ls

最后,运行以下命令来验证新的更新流入配置/配置文件是否正常工作。
sudo influx user list
sudo influx auth list
假设 influx 配置/配置文件已正确更新。在这种情况下,您应该在 influxdb 服务器上获得用户列表和身份验证,并且您已经通过安全的 SSL/TLS 连接连接到 influxdb 服务器。

至此,您已经在 Rocky Linux 上完成了 influxdb 服务器的安装和配置,并通过 SSL/TLS 证书保护了 influxdb 部署。接下来,您将开始通过 telegraf 收集数据和指标,然后通过创建仪表板可视化 influxdb 时间序列数据。
通过 Telegraf 收集数据
Telegraf 是 influxdata 创建的时间序列平台的一部分。它是一个基于服务器的开源代理,用于从物联网传感器、数据库系统、系统遥测以及 DevOps 工具和框架等多个环境收集和发送指标和事件。 Telegraf 被编译为单个二进制文件并用 Go 编写,安装时不需要外部依赖项。
在此步骤中,您将在 Rocky Linux 服务器上安装 telegaf 并将其配置为将指标发送到 influxdb 服务器。
Telegraf 在 influxdb 存储库中可用。在安装 telegaf 之前,请确保将 influxdb 存储库添加到您的系统中。
现在运行以下 dnf 命令将 telegraf 安装到您的系统。当提示确认时,输入 y 并按 ENTER 继续。
sudo dnf install telegraf

安装 telegraf 后,通过下面的 systemctl 命令启动并启用 telegraf 服务。
sudo systemctl start telegraf
sudo systemctl enable telegraf
接下来,运行以下命令来验证 telegraf 服务并确保该服务正在运行并已启用。
sudo systemctl is-enabled telegraf
sudo systemctl status telegraf
以下输出确认 telegraf 服务已启用并将在启动时自动运行。并且 telegraf 服务的当前状态是运行中。

现在 telegraf 正在运行,接下来您将把 influxdb 服务器添加到 telegraf 配置中。
使用以下 nano 编辑器命令打开 telegraf 配置 /etc/telegraf/telegraf.conf。
sudo nano /etc/telegraf/telegraf.conf
在 [[outputs.influxdb_v2]] 部分,添加 URL、令牌、组织和存储桶名称以及 influxdb 服务器详细信息。
[[outputs.influxdb_v2]]
# ## The URLs of the influxdb cluster nodes.
.........
# ### ## ex: urls = ["https://us-west-2-1.aws.cloud2.influxdata.com"]
urls = ["https://influxdb.hwdomain.io:8086"]
#
# ## Token for authentication.
token = "FlIq521ZVxEA40Iz7rVVKK25sDmuEWUHm_Mbly-4mYxt-rWrYOOytVnmE5yL5bpNB_gNHBWlYXKDED9PEbk-0g=="
#
# ## Organization is the name of the organization you wish to write to.
organization = "HW.IO"
#
# ## Destination bucket to write into.
bucket = "test-bucket"
完成后保存文件并退出编辑器。
接下来,运行以下 systemctl 命令以重新启动 telegraf 服务并应用新更改。现在 telegraf 服务将收集您系统的指标并将收集的指标发送到 influxdb 服务器。
sudo systemcl restart telegraf
您现在可以通过 influxdb web 管理仪表板和 influxdb shell 验证 telegraf 和 influxdb 安装。
从 influxdb web 管理仪表板验证 telegraf 指标 - 单击 Data Explorer 菜单并选择测试桶。您现在应该获得 telegraf 收集的系统遥测数据,其中包括 cpu、磁盘、diskio、内核、内存、交换和系统。

通过 influxdb shell 验证 telegraf 指标 - 通过下面的 influx 命令连接到 influxdb shell。
sudo influx v1 shell
接下来,运行以下查询以切换到测试桶并显示其中的可用测量值。
use test-bucket
SHOW MEASUREMENTS
以下输出确认 telegraf 服务收集的指标在 influxdb 服务器上可用。

完成 telegraf 安装和配置后,指标在 influxdb 服务器上可用。您现在可以设置一个新的仪表板并开始通过 telegraf 和 influxdb 监控您的服务器。
可视化数据和创建仪表板
在此步骤中,您将创建一个新的仪表板,用于通过 influxdb 服务器和 telegraf 监控系统遥测。您将创建 influxdb 仪表板,创建用于系统监控的单元,并可视化 telegraf 服务收集的指标。
首先,选择 Dashboard 菜单并单击 CREATE DASHBOARD。

输入仪表板的名称并单击添加单元格。在此示例中,您将创建一个仪表板测试仪表板。

现在您可以开始为您的系统监控添加新单元。下面是一些通过 telegraf 进行系统监控的图形示例。
以下是可用内存和内存使用情况的图表设置。

以下是过程监控的图形设置。

下面是系统负载的图表。

下面是简单的正常运行时间图。

下面是用户活跃的图表。

最后,下面是系统上可用 CPU 的图表。


您已经通过 influxdb 服务器和 telegraf 成功设置了系统监控。您已经学习了如何设置 influxdb 仪表板并设置一个单元格以可视化来自 telegraf 的指标。
结论
在本指南中,您在 Rocky Linux 9 服务器上安装了 influxdb 时间序列数据库和 influxdb2-cli。您还通过 SSL/TLS 证书保护了 influxdb 部署,并通过 influx 命令行配置了 influxdb 服务器。
除此之外,您还安装并配置了 telegraf 以通过安全的 SSL/TLS 连接收集指标并将其发送到 influxdb 服务器。最后,您通过 influxdb 服务器和 telegraf 创建了一个用于系统监控的仪表板。
从这里,您现在可以可视化您的系统和应用程序并设置仪表板以进行监控。您还可以设置 influxdb 任务、设置警报系统等等。