在 Raspberry Pi 上运行 TICK Stack

导航至

两块 Raspberry Pi 和一些 InfluxData 贴纸<figcaption> Raspberry Pi 是 TICK Stack 的绝佳平台!</figcaption>

自 2013 年推出以来,Raspberry Pi 平台已经突飞猛进,获得了广泛的欢迎,并在世界各地的项目中出现,从快速黑客到完全商业化的产品。它是一款廉价、低功耗、开源的单板计算机,具有各种接口,用于连接传感器和执行器,可用于与物理世界互动。

当您需要一个始终在线的设备来收集数据时,它也是一个可靠的选择,并且功能足够强大,可以运行完整的 TICK Stack。事实上,我们社区网站上最受欢迎的帖子之一是关于在 Raspberry Pi 上运行 TICK Stack,因此我们想提供一些更新的安装说明以及在操作堆栈时需要考虑的事项。

硬件

您的 Pi 选择

您需要做的第一件事是决定您将使用哪个 Pi。自 2013 年首次发布以来,Raspberry Pi 平台已经经历了几个迭代版本

型号 核心数 时钟速度 内存
Zero 1, 32 位 1000 MHz 512 MB
A/B/+ 1, 32 位 500 MHz 256 MB
2B 4, 32 位 900 MHz 1024 MB
3B 4, 64 位 1200 MHz 1024 MB
3B+ 4, 64 位 1400 MHz 1024 MB

多年来,架构已经有了一些重大的改进,您最好的选择是使用型号 3 的主板,它配备了四核 64 位 CPU 用于数据库本身,尽管我已经测试过在型号 2 B、3 B 和 3 B+ 上运行完整的 TICK Stack。此外,单核 Zero 是使用 Telegraf 收集传感器数据的绝佳平台。

存储

Raspberry Pi 上的存储系统(使用 SD 或 microSD 卡)相对于笔记本电脑或台式计算机上的系统而言是最慢的,因此在考虑将 Raspberry Pi 用于您的应用程序时,务必牢记存储性能。您选择的 SD 卡将对 Raspberry Pi 的性能产生重大影响,特别是如果您计划运行像 InfluxDB 这样的数据库。

至少使用 Class 10 卡——速度越快越好。但请理解,即使使用最快的 SD 卡,性能也无法接近 SSD 的水平,这通常可能是您应用程序的瓶颈。

一些制造商也在发布“高耐用性”SD 卡;我还没有机会对它们进行太多研究,但如果您计划写入大量数据,那么可能值得研究一下。

Raspberry Pi 3 B 和 B+ 也能够启用 USB 启动模式,但这对于您的设备来说是一个永久性的更改。虽然您仍然会受到 USB 2.0 端口速度的限制,但这将使您能够运行大容量 SSD,从而获得更好的速度和性能。

安装

使用 Pi 最常见的方式是使用 Raspberry Pi 基金会提供的 Raspbian 操作系统,因此这就是我们将在本博客文章中使用的内容。Raspbian 基于 Debian Linux 发行版,并进行了一些修改和实用程序,例如 raspi-config,其中包含特定于硬件的功能。最新版本的 Raspbian 是基于 Debian Stretch 的 4 月发布版。

您可以下载 Raspbian,并在 Raspberry Pi 基金会的网站上找到安装说明

推荐:从官方 InfluxData 仓库安装

安装 TICK Stack 最简单的方法是设置 InfluxData 软件包仓库 (repo) 并使用您平台的软件包管理器,在 Raspbian 上是 apt。软件包包含应用程序二进制文件本身,以及有关在您的系统上安装和配置应用程序的位置和方式的一些信息。这意味着您只需几个命令即可启动并运行所有内容,并且 InfluxData 会定期将其仓库中 TICK Stack 的最新版本发布,因此应用更新也很容易。

第一步是设置 InfluxData 仓库。您需要确定您正在运行的 Raspbian 版本,您可以通过查看 /etc/os-release 文件来完成。运行以下命令

$ cat /etc/os-releases
PRETTY_NAME="Raspbian GNU/Linux 9 (stretch)"
NAME="Raspbian GNU/Linux"
VERSION_ID="9"
VERSION="9 (stretch)"
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

我们需要版本代号,您可以在括号中的 VERSION 字段中找到它。对于我运行的版本 9,代号是 stretch。我们将在设置仓库时使用它,以便我们可以获得适用于我们操作系统的正确版本。

接下来,添加仓库的 GPG 密钥并添加仓库本身

$ curl -sL https://repos.influxdata.com/influxdb.key | sudo apt-key add -

然后添加仓库

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

最后,运行 sudo apt-get update 以使用来自新仓库的数据刷新软件包列表,并使用 sudo apt-get install telegraf influxdb chronograf kapacitor 安装 TICK Stack。如果您只想安装堆栈的某些组件,您可以从该命令中排除您不需要的应用程序。

也可以下载软件包并自行安装,而无需设置 InfluxData 仓库。您可能没有充分的理由这样做,但对于那些这样做的人,请访问我们的 下载页面

Docker

Docker 是在 Raspberry Pi 上运行 TICK Stack 的另一个绝佳选择,也是我在家使用的。Docker 是一种操作系统级别的虚拟化技术,这意味着它通过使各个应用程序看起来好像它们各自拥有自己的 Linux 内核和运行环境来隔离它们。这为您的应用程序提供了隔离,而 Docker 运行时提供了易于使用的工具来创建和管理容器。

在 Raspbian 上安装 Docker 的推荐方法是使用便捷脚本;您可能还需要安装 docker compose

您可以参考我上周发布的Docker 博客文章,了解有关在 docker 容器中运行 TICK 的更多详细信息,并且我编写了一个简单的 Docker Compose 文件来帮助您入门。

手动选项:二进制文件和从源代码构建

还存在一些其他选项,这些选项提供了对您希望如何构建和安装应用程序的额外手动控制级别。您可以从 influxdata.com/downloads 下载 Linux 二进制文件,或者您可以访问相应的 Git 仓库(TelegrafInfluxDBChronografKapacitor),检出代码,然后自行构建应用程序。

其他注意事项

由于 Pi 是一个相对受限的计算环境,您可能不得不在您可以运行的软件数量以及您可以处理和存储的数据量方面做出一些权衡。

需要考虑的一件事是您不必在 Pi 上运行 Chronograf;您可以在您的主计算机上运行本地副本,并将其设置为通过网络与 Raspberry Pi 上的 InfluxDB 实例通信。这是我目前在家中运行的设置,我发现它比在 Pi 上运行所有内容提供了更好的性能提升。

另一个需要记住的事情是您的 SD 卡上的存储空间大小。虽然 InfluxDB 在存储数据方面非常高效,但根据您的卡的大小、您安装的其他软件以及您正在写入的数据量,有可能耗尽空间。您绝对应该设置某种监控和警报,以便在空间不足时收到通知。Telegraf 的 disk 插件和 Kapacitor 的 警报功能非常适合此目的!

您也可能不需要永远保留您的数据;几周或几个月可能就足以满足您的用例。我们经常看到用户利用 InfluxData 的 降采样和保留策略功能来降低其数据的分辨率,并在数据达到一定期限时自动删除它。有关您可能想要这样做的原因的更多信息,请查看我们最近的培训网络研讨会《降采样您的数据》。

就是这样!

希望这篇文章能帮助您启动并运行,但如果您有任何问题或意见,请随时通过 Twitter @noahcrowley 直接与我联系,或随时在我们的社区网站 community.influxdata.com 上发布您的评论。如果您使用 Influx 构建了一些很棒的东西,请不要犹豫告诉我们,我们可能会送您一件连帽衫!