在此树莓派 InfluxDB 教程中,我们将向您展示如何设置 InfluxDB 并将其安装到 Raspbian 操作系统。
我们还将向您展示如何在 InfluxDB 服务器上启用身份验证以提高其安全性,并向您展示如何通过命令行与数据库进行交互。
对于那些想知道 InfluxDB 是什么的人来说,它是一个基于时间序列的数据库系统。这意味着数据库中的每个数据点都将包含一个时间戳。
基于时间序列,InfluxDB 成为监视指标和事件的最佳数据库之一。您可以轻松地使用 InfluxDB 来存储诸如房间温度或系统 CPU 使用率之类的信息。
InfluxDB 是与大众可视化工具 Grafana 一起使用的理想数据库软件。 Grafana 内置支持显示 InfluxDB 数据库中的数据。
设备
以下是在树莓派上设置 InfluxDB 所需的所有设备。
推荐的
树莓派 (为获得最佳体验,请使用树莓派 3 或更高版本)
Micro SD 卡
以太网线或 * Wifi 加密狗
可选的
USB 键盘
USB 鼠标
HDMI 电缆
将 InfluxDB 安装到树莓派
1 在将 InfluxDB 安装到树莓派之前,我们应该做的第一件事是确保所有当前安装的软件包都是最新的。
我们可以通过运行以下两个命令来升级所有已安装的软件包。
sudo apt update
sudo apt upgrade
2 随着一切的更新,我们现在可以继续将 InfluxDB 安装到树莓派。
下一步是将 InfluxDB 存储库密钥添加到我们的树莓派中。
添加密钥将允许 Raspbian 上的软件包管理器搜索存储库并验证软件包的安装。
我们可以通过运行以下命令来添加 InfluxDB 密钥。
wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt键添加-
该命令将使用 wget 下载密钥,并使用管道”** | “将其直接传递到” apt-key **” 程序中。
3 现在,我们已经将 InfluxDB 存储库密钥安装到了树莓派中,我们将需要继续并将其存储库添加到源列表中。
现在输入以下命令以将 InfluxDB 存储库添加到源列表。确保为您正在运行的 Raspbian 版本选择正确的命令。
在新安装的 Raspbian 上运行的大多数用户可能会正在运行 Raspbian Buster。
树莓舒展
echo "deb https://repos.influxdata.com/debian拉伸稳定"| sudo tee /etc/apt/sources.list.d/influxdb.list
树莓克星
echo "deb https://repos.influxdata.com/debian破坏者稳定"| sudo tee /etc/apt/sources.list.d/influxdb.list
** Ubuntu (或 Ubuntu Mate) 18.04 **
echo "deb https://repos.influxdata.com/ubuntu仿生稳定"| sudo tee /etc/apt/sources.list.d/influxdb.list
** Ubuntu (或 Ubuntu Mate) 16.04 **
echo "deb https://repos.influxdata.com/ubuntu xenial稳定"| sudo tee /etc/apt/sources.list.d/influxdb.list
4 添加存储库后,我们现在需要继续更新软件包列表。
我们需要这样做,以便 apt 软件包管理器搜索我们刚添加的软件包的存储库。操作系统不会自动执行此操作。
在树莓派上运行以下命令以更新软件包列表。
sudo apt update
5 现在我们已经建立了存储库,现在我们可以继续安装 InfluxDB 软件了。
要将 InfluxDB 安装到我们的树莓派,我们需要做的就是运行以下命令。
sudo apt install influxdb
6 现在将 InfluxDB 安装到我们的树莓派中,现在让它在启动时启动。
我们可以通过使用 systemctl 服务管理器来启用 InfluxDB 服务文件来做到这一点。
运行以下两个命令以使 InfluxDB 在树莓派上启动时启动。
sudo systemctl揭露 influxdb
sudo systemctl启用 influxdb
我们使用的第一个命令取消屏蔽 influxdb 服务文件。取消屏蔽服务可确保我们能够启用并启动服务,因为无法启动被屏蔽的服务。
我们的第二个命令启用 influxdb 服务。此命令将告诉服务管理器注意”** influxdb.service “文件并根据其内容设置服务。7** 现在已经完成了所有设置,我们现在可以继续在树莓派上启动 InfluxDB 。
要启动 InfluxDB 服务器,我们将需要运行以下命令。然后,服务管理器将启动服务并开始对其进行监视。
sudo systemctl启动 influxdb
在树莓派上使用 InfluxDB
1 现在我们已经安装了 InfluxDB ,现在就可以开始与数据库进行对话了。
为此,我们需要通过运行以下命令来启动 Influx 的命令行工具。
您不必担心指定要连接的地址,因为该工具将自动检测 InfluxDB 的本地安装。
默认情况下,InfluxDB 没有用户设置。在下一节中,我们将探索创建一个管理员用户来锁定对 InfluxDB 的访问。但是,到目前为止,我们将快速探索 InfluxDB 。
涌入
2 InfluxDB 默认情况下不包含数据库,因此我们的首要任务是创建一个数据库。
在 InfluxDB 中创建数据库很简单,可以使用”** CREATE DATABASE
在我们的示例中,我们将创建一个名为 ** pimylifeuptemperature ** 的数据库,
创建数据库 pilifelifeuptemperature
3 在开始修改新数据库之前,必须告诉 CLI “使用 “它。使用数据库就像运行以下命令一样简单。
使用 pimylifeuptemperature
4 下一步是将一些数据写入新创建的 InfluxDB 数据库。
为此,我们必须首先对 InfluxDB 的数据存储有基本的了解。
InfluxDB 中的数据按” 时间序列 **” 排序。这些” 时间序列” 可以包含所需的任意数量的数据点。这些数据点中的每一个都代表该度量的单个样本。
数据点由” 时间”,” 测量” 名称 (例如” 温度”) 和至少一个” 字段” 组成。您还可以使用 ** tags **,它们是仅作为字符串索引的数据片段。标签对于优化数据库查找至关重要。
如果您熟悉 SQL 表的一般布局,则可以考虑将”** time “作为主要索引,将”measurement” 作为表名称,并将”tags” 和”“字段 ** 作为列名。
除非您要为数据点指定特定的时间和日期,否则无需指定时间戳。
下面我们包括了 InfluxDB 数据点的基本格式。
<measurement> [,<tag-key> = <tag-value> ...] <field-key> = <field-value> [,<field2-key> = <field2-value> ...] [unix -nano-timestamp]
如果您想了解有关 InfluxDB 行语法的更多信息,则可以查看 InfluxDB 官方文档。
5 现在,我们对 InfluxDB 中的数据有了基本的了解,现在我们可以继续将第一个数据点添加到数据库中。
对于此示例数据库,我们将存储房屋周围各个” 位置” 的” 温度” 的测量值。
因此,为此,我们将插入测量名称为” 温度 “,标签键为”** location “和字段键为” value **” 的数据点。
对于我们的第一个采样点,我们将其位置称为”** living \ _room “,其值为” 20 **”。
插入温度,位置=起居室值= 20
6 为使数据在 InfluxDB 中炫耀” 选择” 数据更有趣,让我们继续添加更多随机数据。
输入以下几条命令,将一些额外的数据输入到我们的数据库中。这些只是上述”** INSERT **” 命令的变体,但其值和位置已调整。
插入温度,位置=起居室值= 10
插入温度,位置=卧室值= 34
插入温度,位置=卧室值= 23
7 现在我们有了一些样本数据,我们现在可以向您展示如何使用”** SELECT **” 查询此数据。
首先,您可以使用以下命令从测量中检索所有数据。此命令将从指定的测量中获取所有字段和键。
选择*从温度
将该命令与我们的示例数据一起使用,您应该获得如下所示的结果。
名称:温度
时间位置值
---- -------- -----
1574055049844513350客厅 20
1574055196564029842客厅 10
1574055196576516557卧室 34
1574055197188117724卧室 23
8 假设您现在只想获取卧室的温度。您可以通过在”** SELECT “语句旁边使用” WHERE **” 语句来实现。
我们还指定要从中检索值的标签 / 字段的名称。
查询标签字段时,您需要记住所有标签都被视为字符串。这意味着我们必须将要搜索的值包装在单引号中。
从温度 WHERE 位置="卧室"中选择值使用该命令,您应该收到以下数据集,仅显示卧室中的温度值。
在我们示例数据的情况下,应为 ** 34 和 23 **。
名称:温度
时间位置值
---- -------- -----
1574055049844513350客厅 20
1574055196564029842客厅 10
1574055196576516557卧室 34
1574055197188117724卧室 23
9 至此,您现在应该对 InfluxDB 及其数据如何工作有基本的了解。
向 InfluxDB 添加身份验证
1 下一步是在树莓派上的 InfluxDB 安装中添加额外的身份验证。没有身份验证,任何人都可以与您的数据库进行交互。
首先,我们需要先创建一个用户以充当我们的管理员。
要创建此用户,我们必须首先通过运行以下命令来加载 InfluxDB CLI 工具。
涌入
2 在此界面中,我们可以创建一个对数据库具有完全访问权限的用户。该用户将充当我们的管理员帐户。
要创建此管理员用户,请在 InfluxDB 的 CLI 工具中运行以下命令。
确保使用您选择的安全密码替换 **
使用所有特权使用密码"<密码>"创建用户管理员
此命令将使用您选择的密码创建一个名为”** admin **” 的新用户,并授予其所有特权。
3 完成后,您现在可以通过输入”** exit **” 并按 Enter 退出 InfluxDB 。
4 我们的下一个工作是修改 InfluxDB 配置文件以启用身份验证。
我们可以使用以下命令开始编辑文件。
sudovim/etc/influxdb/influxdb.conf
5 在此文件中,使用 CTRL + W 查找 ** \ [HTTP] ** 部分,并在该部分下面添加以下选项。
找
[HTTP]
在下方添加
启用身份验证= true
pprof-enabled = true
pprof-auth-enabled = true
ping-auth-enabled = true
6 添加后,请按 CTRL + X,然后按 Y ,再按 Enter ,保存文件。
7 现在,由于我们对 InfluxDB 的配置进行了更改,因此我们需要继续使用以下命令重新启动服务。
重新启动服务将确保读入我们的配置更改。
sudo systemctl restart influxdb
8 由于我们现在已经打开了 InfluxDB 的身份验证功能,因此在使用 InfluxDB CLI 工具之前,我们需要输入用户名和密码。
您可以在工具中使用”** auth **” 命令,也可以通过命令行传递用户名和密码,如下所示。
流入-username admin -password <密码>
希望在这一点上,您现在已经成功在树莓派上设置了 InfluxDB 。现在,您应该对 InfluxDB 有基本的了解,并启用身份验证模式。
您可以轻松地看到使用此数据库模型如何使来自传感器和其他来源的数据存储非常有用。
如果在启动和运行树莓派 InfluxDB 时遇到任何问题,请与我联系。