在本篇Raspberry Pi InfluxDB教程中,详细记录了如何将InfluxDB设置并安装到Raspbian操作系统中。
还将展示如何在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的过程中遇到了任何问题,那么欢迎在下面留言。
欢迎转载,请留下出处链接:Labno3 » 树莓派存储IOT实时检测数据,详细步骤安装和配置InfluxDB