在 Raspberry Pi 上运行 TICK 栈
作者:Noah Crowley / 产品,用例,开发者
2018年7月3日
导航至
<figcaption> Raspberry Pi 是运行 TICK 栈的绝佳平台!</figcaption>
自 2013 年推出以来,Raspberry Pi 平台发展迅速,备受全球项目青睐,从快速原型到完全商业化的产品。它是一款价格低廉、功耗低、开源的单板计算机,具有多种接口,可以连接传感器和执行器,用于与物理世界互动。
当您需要始终在线的数据收集设备时,它也是一个不错的选择,并且具有足够的性能来运行完整的 TICK 栈。实际上,我们社区网站上最受欢迎的文章之一就是关于在 Raspberry Pi 上运行 TICK 栈的,因此我们希望提供一些更新说明,以帮助您在安装和使用该栈时考虑相关事项。
硬件
选择您的 Pi
您需要做的第一件事是决定使用哪个 Pi。自 2013 年首次发布以来,Raspberry Pi 平台已经经过了几个版本的迭代
型号 | 核心数 | 时钟速度 | RAM |
---|---|---|---|
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 栈,但单核 Zero 是使用 Telegraf 收集传感器数据的绝佳平台。
存储
树莓派上的存储系统使用SD卡或microSD卡,其速度远低于笔记本电脑或台式电脑的系统,因此在考虑使用树莓派时,存储性能是需要考虑的重要因素。你选择的SD卡将对树莓派的性能产生重大影响,尤其是如果你打算运行像InfluxDB这样的数据库。
至少选择一个10级卡——越快越好。但要注意,即使是最快的SD卡,其性能也无法与固态硬盘相比,这往往会成为应用程序的瓶颈。
一些制造商还推出了“高耐用性”SD卡;我还没有机会深入研究它们,但如果你计划写入大量数据,这可能值得调查。
树莓派3 B和B+还具备启用USB启动模式的能力,尽管这将是你的设备的永久性更改。虽然你仍然会受到USB 2.0端口速度的限制,但这将使你能够以更快的速度和性能运行大容量SSD。
安装
最常用的使用Pi的方式是使用树莓派基金会提供的Raspbian操作系统,因此我们将在本文博客中使用它。Raspbian基于Linux的Debian发行版,包含一些修改和实用程序,如raspi-config,这些实用程序包含针对硬件的功能。最新的Raspbian版本是4月发布的基于Debian Stretch的版本。
您可以从这里下载Raspbian,并在树莓派基金会的网站上找到安装说明。
推荐:从官方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
在树莓派上运行TICK堆栈,Docker是另一个很好的选择,这也是我在家中使用的方法。Docker是一种操作系统级别的虚拟化技术,这意味着它通过让每个应用看起来都拥有自己的Linux内核和运行环境来隔离各种应用。这为您的应用提供了隔离,同时Docker运行时提供了易于使用的工具来创建和管理容器。
在Raspbian上安装Docker推荐使用便捷脚本;您可能还想要安装docker compose。
您可以参考我上周的Docker博客文章了解更多关于在Docker容器中运行TICK的细节,我还编写了一个简单的Docker Compose文件以帮助您入门。
手动选项:二进制文件和从源代码构建
还有一些其他选项可以提供更多手动控制您如何构建和安装应用程序的能力。您可以从influxdata.com/downloads下载Linux二进制文件,或者您可以访问相应的Git存储库(Telegraf、InfluxDB、Chronograf和Kapacitor),检查代码,并自行构建应用程序。
其他注意事项
由于Pi是一个相对受限的计算环境,您可能需要在可以运行的软件数量、可以处理和存储的数据量之间做出一些权衡。
需要考虑的一点是,您不必在Pi上运行Chronograf;您可以在主计算机上运行本地副本,并设置它通过网络与Raspberry Pi上的InfluxDB实例通信。这是我目前在家运行的模式,我发现它比在Pi上运行所有内容提供了更好的性能提升。
还需要注意的是SD卡上的存储空间。虽然InfluxDB在存储数据方面非常高效,但根据您的卡大小、已安装的其他软件以及您写入的数据量,可能会耗尽空间。您应该设置某种类型的监控和警报,以便在空间不足时得到通知。Telegraf的磁盘插件和Kapacitor的警报功能非常适合这个目的!
您可能不需要永远保存数据;几周或几个月可能足以满足您的需求。我们经常看到用户利用InfluxData的下采样和保留策略功能来降低数据的分辨率,并在达到一定年龄后自动删除它。有关为什么您可能想这样做的原因,请查看我们最近的教育网络研讨会,下采样数据。
就这样!
希望这篇帖子能让您顺利运行,但如果您有任何问题或评论,请随时通过Twitter直接联系我 @noahcrowley 或在我们的社区站点上发表您的评论。如果您用Influx构建了什么伟大的东西,请不要犹豫,告诉我们,您可能会得到一件汗衫!