第五部分:如何在 Google Cloud Platform 上使用 TICK Stack 创建 IoT 项目

导航至

第五部分:使用 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 服务器。

5c1 点击 添加新服务器 以添加 InfluxDB 数据库实例。这将显示如下所示的表单,我们按如下方式填写值

  • 昵称:您可以在此处输入任何名称。我们将其命名为 TemperatureHub
  • 主机:这是 InfluxDB 实例的 IP 地址。由于我们已将其托管在 Google Compute Engine 实例上,因此这是我们一直使用的 Compute Engine 实例的公共 IP 地址。
  • 端口:Chronograf 应用程序将通过在 InfluxDB 实例的端口 8086 上运行的 API 与 InfluxDB 实例通信。我们已在 InfluxDB Compute Engine 实例上打开防火墙,以允许端口 8086 上的流量。我们在此处输入 8086 作为端口号值。
  • 点击 添加

5c2

这将把 InfluxDB 服务器添加到 Chronograf,我们可以点击 完成

5c3这将导致显示如下所示的屏幕,您可以在其中看到可视化和仪表板都显示为选项。这两个选项卡视图都是空的,因为我们尚未定义任何一个。

5c5 将仪表板视为所有图表的容器。例如,我们将定义一个仪表板,例如,可以显示来自站点 S1 和站点 S2 的温度读数。我们将站点温度读数都定义为图表,并将它们添加到仪表板,以便我们可以在单个仪表板中一起查看它们。

那么,让我们创建我们的仪表板。

创建我们的第一个仪表板

点击 仪表板 选项卡选项,如下所示。

5c4 然后点击 + 符号以添加新仪表板。这将显示下面的屏幕,我们将仪表板命名为 温度中心

5c6 点击 保存 以继续。如下所述,仪表板实际上是图表的容器,因此您将看到如下所示的消息。

5c7 点击 添加可视化 以添加图表。我们想要定义图表以可视化来自 站点 1站点 2 的温度传感器值。因此,让我们首先定义 站点 1 的图表,如下所示。我们给它命名为 站点 1 并点击 保存

5c8 注意:可视化在其他仪表板中也是可重用的。请注意上面的屏幕如何允许我们从现有可视化中进行选择。

从这里开始,事情变得非常直观。步骤如下

从我们的 InfluxDB 实例中选择正确的数据库(temperature_db)。

5c9 选择指标(temperature5c10 为站点名称添加过滤器(使用标签键 Station 和值 ‘S1’) 5c11 5c12 请注意,为了清晰起见,下面显示了已选择的查询

SELECT value FROM temperature_db..temperature WHERE tmpltime() AND Station = 'S1'

查询是可修改的,请记住这一点,以防您发现您确实有数据,但它没有显示在图表上。您可以根据您的要求调整此设置。

我们创建了另一个名为 站点 2 的图表,并添加了类似的配置值,除了 Station = 'S2'

Chronograf 运行中

当值传入时,仪表板几乎立即开始工作。下面显示了从我们的 2 个温度站(S1 和 S2)接收的值的示例运行。

5c13 这是站点 2 仪表板的放大视图。

5c14 如果我切换到 Chronograf Server 控制台,我可以看到它非常忙于调用 REST API 来获取数据。

5c15

配置数据自动刷新和时间过滤器

Chronograf Web 应用程序刷新间隔(用于更新 UI)是完全可配置的,可通过设置进行配置,如下所示。此外,您还会注意到数据的默认过滤器是最近 15 分钟内接收到的记录。该设置也是可配置的,并且是下面屏幕中自动刷新旁边的下拉菜单。

5c17 这就完成了我们对设置 Chronograf 的首次了解,Chronograf 是 TICK Stack 中一个很棒的模块,用于可视化您的时间序列数据库。

下一步是什么?

  • 第六部分 中,我们将探讨如何使用 Kapacitor 根据我们在数据中看到的某些阈值设置对 Slack 的警报。在 Twitter 上关注我们@influxdb 以关注本系列的下一篇博客。
  • 想要提升您的 InfluxDB 知识水平?请查看我们价格合理的 虚拟 和 公开培训