第五部分:如何在 Google Cloud Platform 上使用 TICK Stack 创建 IoT 项目
作者:Todd Persen / 产品, 用例
2016 年 3 月 1 日
导航至
第五部分:使用 Chronograf 可视化 IoT 传感器数据
在本系列的到目前为止,我们已经成功设置了 InfluxDB,它现在正在接收来自各个温度站的数据。虽然我们可以使用 InfluxDB Web 应用程序来查询数据,但在通过图表和仪表板可视化相同数据方面,它就显得不足了。例如,持续监控数据并在图表上查看数据的能力。
在本教程的这一部分中,我们将研究 Chronograf。Chronograf 是 TICK Stack 中的“C”,用于可视化 InfluxDB 数据。我们可以使用此工具来查看通过各个站点报告的温度读数。
Chronograf 是一个独立的应用程序,您需要在系统上进行设置。它可以驻留在本地或云端,甚至可以在您的笔记本电脑上运行,正如我们将要看到的那样。只要您将其配置为指向适当的 InfluxDB 数据并设置您的图表/仪表板,您就可以从任何地方运行它。以下是一个简单的 GIF,让您了解界面的外观
设置 Chronograf
下载说明 用于设置 Chronograf 的说明非常简单明了。我们将在 Mac 机器上设置 Chronograf。请注意,您也可以在其他平台(如 RedHat、Ubuntu、Debian 等)上进行设置。
我们使用了 Homebrew,Mac 上的软件包管理器来安装 Chronograf,如下所示
<span style="font-weight: 400;">$ brew install homebrew/binary/chronograf
</span>
安装过程继续进行,并在过程完成后为您提供启动 Chronograf 的说明。
==> Tapping homebrew/binary
Cloning into '/usr/local/Library/Taps/homebrew/homebrew-binary'...
remote: Counting objects: 26, done.
remote: Compressing objects: 100% (26/26), done.
remote: Total 26 (delta 1), reused 4 (delta 0), pack-reused 0
Unpacking objects: 100% (26/26), done.
Checking connectivity... done.
Tapped 22 formulae (71 files, 49.5K)
==> Installing chronograf from homebrew/binary
==> Downloading https://s3.amazonaws.com/get.influxdb.org/chronograf/chronograf-
######################################################################## 100.0%
==> Caveats
To run Chronograf manually, you can specify the configuration file on the command line:
chronograf -config=/usr/local/etc/chronograf.toml
To have launchd start homebrew/binary/chronograf at login:
ln -sfv /usr/local/opt/chronograf/*.plist ~/Library/LaunchAgents
Then to load homebrew/binary/chronograf now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.chronograf.plist
==> Summary
? /usr/local/Cellar/chronograf/64: 3 files, 14.0M, built in 38 seconds
$
启动 Chronograf
接下来,我们通过 -config 选项启动 Chronograf,如下所示。chronograf.toml 文件指向各种配置设置,我们现在可以继续使用默认值。
$ chronograf -config=/usr/local/etc/chronograf.toml
[chronograf] 2016/01/12 20:17:06 Starting Chronograf (version 0.4.0)
[chronograf] 2016/01/12 20:17:06 Server binding to http://127.0.0.1:10000
[chronograf] 2016/01/12 20:17:06 Reporting anonymous usage statistics
下一步是启动 Chronograf Web 应用程序。如上面的控制台输出所示,服务器已在端口 10000 上启动。由于我们希望在本地运行 Web 应用程序本身,因此我们只需启动浏览器并访问 http://localhost:10000。
这将显示 UI,如下所示,并且符合预期,即我们尚未在 Chronograf 应用程序中定义任何 InfluxDB 服务器。
点击 添加新服务器 以添加 InfluxDB 数据库实例。这将显示如下所示的表单,我们按如下方式填写值
- 昵称:您可以在此处输入任何名称。我们将其命名为 TemperatureHub
- 主机:这是 InfluxDB 实例的 IP 地址。由于我们已将其托管在 Google Compute Engine 实例上,因此这是我们一直使用的 Compute Engine 实例的公共 IP 地址。
- 端口:Chronograf 应用程序将通过在 InfluxDB 实例的端口 8086 上运行的 API 与 InfluxDB 实例通信。我们已在 InfluxDB Compute Engine 实例上打开防火墙,以允许端口 8086 上的流量。我们在此处输入 8086 作为端口号值。
- 点击 添加。
这将把 InfluxDB 服务器添加到 Chronograf,我们可以点击 完成。
这将导致显示如下所示的屏幕,您可以在其中看到可视化和仪表板都显示为选项。这两个选项卡视图都是空的,因为我们尚未定义任何一个。
将仪表板视为所有图表的容器。例如,我们将定义一个仪表板,例如,可以显示来自站点 S1 和站点 S2 的温度读数。我们将站点温度读数都定义为图表,并将它们添加到仪表板,以便我们可以在单个仪表板中一起查看它们。
那么,让我们创建我们的仪表板。
创建我们的第一个仪表板
点击 仪表板 选项卡选项,如下所示。
然后点击 + 符号以添加新仪表板。这将显示下面的屏幕,我们将仪表板命名为 温度中心。
点击 保存 以继续。如下所述,仪表板实际上是图表的容器,因此您将看到如下所示的消息。
点击 添加可视化 以添加图表。我们想要定义图表以可视化来自 站点 1 和 站点 2 的温度传感器值。因此,让我们首先定义 站点 1 的图表,如下所示。我们给它命名为 站点 1 并点击 保存。
注意:可视化在其他仪表板中也是可重用的。请注意上面的屏幕如何允许我们从现有可视化中进行选择。
从这里开始,事情变得非常直观。步骤如下
从我们的 InfluxDB 实例中选择正确的数据库(temperature_db)。
选择指标(temperature)
为站点名称添加过滤器(使用标签键 Station 和值 ‘S1’)
请注意,为了清晰起见,下面显示了已选择的查询
SELECT value FROM temperature_db..temperature WHERE tmpltime() AND Station = 'S1'
查询是可修改的,请记住这一点,以防您发现您确实有数据,但它没有显示在图表上。您可以根据您的要求调整此设置。
我们创建了另一个名为 站点 2 的图表,并添加了类似的配置值,除了 Station = 'S2'
。
Chronograf 运行中
当值传入时,仪表板几乎立即开始工作。下面显示了从我们的 2 个温度站(S1 和 S2)接收的值的示例运行。
这是站点 2 仪表板的放大视图。
如果我切换到 Chronograf Server 控制台,我可以看到它非常忙于调用 REST API 来获取数据。
配置数据自动刷新和时间过滤器
Chronograf Web 应用程序刷新间隔(用于更新 UI)是完全可配置的,可通过设置进行配置,如下所示。此外,您还会注意到数据的默认过滤器是最近 15 分钟内接收到的记录。该设置也是可配置的,并且是下面屏幕中自动刷新旁边的下拉菜单。
这就完成了我们对设置 Chronograf 的首次了解,Chronograf 是 TICK Stack 中一个很棒的模块,用于可视化您的时间序列数据库。