树莓派存储IOT实时检测数据,详细步骤安装和配置InfluxDB

在本篇Raspberry Pi InfluxDB教程中,详细记录了如何将InfluxDB设置并安装到Raspbian操作系统中。

Raspberry-Pi-InfluxDB-Thumbnail.jpg

还将展示如何在InfluxDB服务器上启用身份验证以提高其安全性,以及如何通过命令行与数据库进行交互。对于那些想知道什么是InfluxDB的人来说,它是一个基于时间序列的数据库系统,这意味着数据库中的每个数据点都将包含一个时间戳。

作为基于时间序列的数据库,InfluxDB是监控指标和事件的最佳数据库之一。可以轻松地使用InfluxDB来存储信息,比如房间的温度或系统的CPU使用情况。InfluxDB是一款完美的数据库软件,可以和流行的可视化工具Grafana一起使用。Grafana内置了对InfluxDB数据库数据显示的支持。

装备

下面是在Raspberry Pi上设置InfluxDB所需要的所有设备,点击链接可直达特别优惠购买。

建议

可选

安装InfluxDB到树莓派上

1. 在将InfluxDB安装到Raspberry Pi之前,首先要做的是确保当前安装的所有软件包都是最新的。

运行以下两个命令来升级所有安装的软件包。

sudo apt update
sudo apt upgrade

2. 现在一切都更新了,可以继续安装InfluxDB到Raspberry Pi上了。

下一步是将InfluxDB存储库密钥添加到Raspberry Pi中。添加密钥将允许Raspbian上的软件包管理器搜索仓库并验证其安装的软件包。运行以下命令来添加InfluxDB密钥。

wget -qO- https://repos.influxdata.com/influxdb.key | sudo apt-key add -

该命令将使用wget下载密钥,并通过管道”|”将其直接传递到 “apt-key “程序中。

3. 现在已经将InfluxDB仓库的密钥安装到了Raspberry Pi上,需要继续将其仓库添加到源列表中。

现在输入以下命令将InfluxDB仓库添加到源代码列表中。确保你选择了正确的Raspbian版本的命令。大多数在新安装的Raspbian上运行的用户可能会运行Raspbian Buster。

Raspbian Stretch

echo "deb https://repos.influxdata.com/debian stretch stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Raspbian Buster

echo "deb https://repos.influxdata.com/debian buster stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Ubuntu(或Ubuntu Mate)18.04版本

echo "deb https://repos.influxdata.com/ubuntu bionic stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

Ubuntu(或Ubuntu Mate)16.04

echo "deb https://repos.influxdata.com/ubuntu xenial stable" | sudo tee /etc/apt/sources.list.d/influxdb.list

4. 添加了版本库后,现在需要再去更新包列表。

这样apt软件包管理器就会搜索我们刚刚添加的仓库中的软件包。操作系统不会自动这样做。在Raspberry Pi上运行以下命令来更新软件包列表。

sudo apt update

5. 现在已经建立了仓库,现在可以继续安装InfluxDB软件了。

要将InfluxDB安装到Raspberry Pi上,需要做的就是运行下面的命令。

sudo apt install influxdb

6. 现在InfluxDB已经安装到了Raspberry Pi上,让它开机启动。

可以通过使用systemctl服务管理器来启用InfluxDB服务文件。运行以下两个命令,使InfluxDB在Raspberry Pi上启动。

sudo systemctl unmask influxdb
sudo systemctl enable influxdb

使用的第一条命令是解除对influxdb服务文件的屏蔽。

我们的第二条命令是启用influxdb服务。这个命令会告诉服务管理器关注 “influxdb.service “文件,并根据其内容设置服务。

7. 现在一切都已经设置好了,可以继续在树莓派上启动InfluxDB。

要启动InfluxDB服务器,需要运行以下命令。

sudo systemctl start influxdb

在您的Raspberry Pi上使用InfluxDB

1. 现在已经安装了InfluxDB,可以开始与数据库对话了。

要做到这一点,需要运行以下命令来启动Influx的命令行工具。不必担心指定连接地址,因为该工具会自动检测InfluxDB的本地安装。默认情况下,InfluxDB没有设置用户。在下一节中,将探讨创建一个管理员用户来锁定对InfluxDB的访问。不过现在,我们将快速探索InfluxDB。

influx

2. InfluxDB默认是没有数据库的,所以第一个任务就是创建一个数据库。

在InfluxDB中创建数据库很简单,可以通过 “CREATE DATABASE <DBNAME>”来完成。在我们的例子中,我将创建一个名为labno3temperature的数据库。

CREATE DATABASE labno3temperature

3. 在开始修改我的新数据库之前,我必须告诉CLI “USE”它。使用数据库就像运行下面的命令一样简单。

USE labno3temperature

4. 下一步就是向我新创建的InfluxDB数据库中写入一些数据。

为此,我们首先要对InfluxDB的数据存储有一个基本的了解。

InfluxDB中的数据是按 “时间序列”排序的。这些 “时间序列 “可以包含您所需要的任意数量的数据点。这些数据点中的每一个都代表了该指标的一个样本。

一个数据点由时间、测量名称(如 “温度”)和至少一个字段组成。

也可以使用标签,标签是仅是一个字符串的索引数据片段。标签对于优化数据库查询是必不可少的。

如果你熟悉SQL表的一般布局,可以认为 “时间”是主索引,测量名称是表名,标签和字段是列名。除非你想为数据点指定一个特定的时间和日期,否则不需要指定时间戳。

下面是一个InfluxDB数据点的基本格式。

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]

如果你想了解更多关于InfluxDB行语法的知识,那么你可以查看InfluxDB的官方文档。

5. 现在已经对InfluxDB中的数据有了基本的了解,可以着手将我们的第一个数据添加到数据库中。

在这个示例数据库中,我将存储房屋周围各个位置的 “温度 “测量值。

为此,我将插入测量名称为 “temperature“的数据点,标签键为 “location“,字段键为 “value“。

第一个样本点,我设置的是location是 “living_room “,数值是 “20” 。

INSERT temperature,location=living_room value=20

6. 为了让数据更有趣,以便在InfluxDB中展示 查询数据,我们再去添加一些随机数据。

输入以下几个命令,将一些额外的数据输入我们的数据库。这些只是上面 “INSERT “命令的变体,但调整了值和位置。

INSERT temperature,location=living_room value=10
INSERT temperature,location=bedroom value=34
INSERT temperature,location=bedroom value=23

7. 现在已经有了一些样本数据,可以告诉你如何使用 “SELECT “来查询这些数据。

首先,可以通过使用下面的命令从测量中获取所有数据。这个命令将从指定的测量数据中获取所有字段和键。

SELECT * FROM temperature

使用该命令与我的样本数据一起使用,应该得到如下的结果。

name: temperature
time                location    value
----                --------    -----
1574055049844513350 living_room 20
1574055196564029842 living_room 10
1574055196576516557 bedroom     34
1574055197188117724 bedroom     23

8. 假设现在只想检索卧室的温度。可以在使用 “SELECT “语句的同时,利用 “WHERE “语句来实现。

我还指定了我要检索值的标签/字段的名称。

在查询标签字段时,需要记住,所有的标签都被认为是字符串。这意味着我必须用单引号包裹要搜索的值。

SELECT value FROM temperature WHERE location='bedroom'

使用该命令,应该收到以下数据集,只显示卧室的温度值。

在我例子数据的情况下,这应该是34和23。

name: temperature
time                location    value
----                --------    -----
1574055049844513350 living_room 20
1574055196564029842 living_room 10
1574055196576516557 bedroom     34
1574055197188117724 bedroom     23

9. 至此,您现在应该对InfluxDB及其数据的工作原理有了基本的了解。

为InfluxDB添加认证

1. 下一步是为Raspberry Pi上安装的InfluxDB添加额外的认证。如果没有认证,任何人都可以与你的数据库进行交互。

要开始,我首先需要创建一个用户来作为管理员。

要创建这个用户,必须首先通过运行以下命令加载InfluxDB CLI工具。

influx

2. 在这个界面中,可以创建一个可以完全访问数据库的用户。这个用户将作为管理账户。

要创建这个管理员用户,请在InfluxDB的CLI工具中运行以下命令。

请确保将<password>替换为您选择的安全密码。

CREATE USER admin WITH PASSWORD '<password>' WITH ALL PRIVILEGES

该命令将创建一个名为 “admin “的新用户,使用你选择的密码,并授予其所有权限。

3. 完成后,你可以输入 “exit “并按回车键退出InfluxDB。

4. 接下来的工作是修改InfluxDB配置文件,启用身份验证。

可以使用下面的命令开始编辑文件。

sudo nano /etc/influxdb/influxdb.conf

5. 在该文件中,使用CTRL + W找到[HTTP]部分,并在该部分下面添加以下选项。

寻找

[HTTP]

添加到下面

auth-enabled = 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 “命令,或者通过命令行传入用户名和密码,就像我下面这样。

influx -username admin -password <password>

希望到这里,您现在已经成功地在Raspberry Pi上设置了InfluxDB,并且对InfluxDB有了基本的了解,还启用了认证模式。

如果你在安装和运行Raspberry Pi InfluxDB的过程中遇到了任何问题,那么欢迎在下面留言。

平均: 5 / 5. votes: 1

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 树莓派存储IOT实时检测数据,详细步骤安装和配置InfluxDB

赞 (1)

评论

5+1=