使用 InfluxDB 和 Telegraf 监控空气质量

导航至

本文最初发表于 The New Stack,并经许可在此处转载。

如果您住在北半球,您可能会很高兴体验夏天。然而,随着夏季的到来,也带来了火灾季节,因此重要的是要记住 您可以做些什么来降低野火的风险。如果您居住在容易发生野火的地区,那么监测空气质量以保护自己免受烟雾的危害是明智的。

今天,我们将使用时间序列平台 InfluxDB 来监控空气质量并设置警报,以便在烟雾达到危险水平时通知我们。具体来说,我们将使用 空气质量模板 来轻松开始使用 InfluxDB。

InfluxDB 模板是预先打包的配置,可在平台上设置大量资源。空气质量模板包括一个仪表板,可轻松可视化您的空气质量数据,以及一个 Telegraf 配置,用于将空气质量数据写入您的 InfluxDB 实例。Telegraf 是一个用于指标和事件的开源收集代理。我们的 Telegraf 配置将使用 http 输入插件从 AirNow API 写入数据。

先决条件

本文假设您已完成以下步骤

  1. 首先,在此处获取 InfluxDB。我建议注册 InfluxDB Cloud,因为这是开始使用 InfluxDB 的最简单方法。
  2. 安装 Telegraf 代理。在此处 查找您首选的下载方法

安装空气质量模板

要安装空气质量模板,请导航到**模板页面**,该页面位于左侧导航栏的**设置**下。

Install the Air Quality Template

复制并粘贴以下 URL,然后单击**查找模板**
https://github.com/influxdata/community-templates/blob/master/airquality/airquality.yml

接下来,单击**安装模板**以添加所有关联的资源。

Template Installer

设置 AirNow

按照 Readme 中的说明,首先转到 https://docs.airnowapi.org/account/request/ 以请求 AirNow AP 的帐户访问权限。接下来,转到 https://docs.airnowapi.org/forecastsbyzip/query,并按如下方式构建您的 URL

  1. 输入您感兴趣的邮政编码。
  2. 从 **Format(格式)** 下拉列表中选择 application/json。
  3. 单击 **Build(构建)**。
  4. 复制 URL 字符串。
  5. 编辑 URL 字符串,删除日期(例如“&date=2022-06-14”)。

Setting Up AirNow

从 AirNow 复制生成的 URL,并在将其添加到您的 Telegraf 配置文件之前删除“&date=2022-06-14”。

删除日期后,您的 URL 应如下所示。

https://www.airnowapi.org/aq/forecast/zipCode/?format=application/json&zipCode=99999&distance=25&API_KEY=A1B2C3D4-A1B2-A1B2-A1B1-A1B2C3D4E5F6

设置 Telegraf

接下来,您需要编辑 Telegraf 配置文件。您可以通过单击安装后的 **airquality(空气质量)** 模板,展开资源下拉列表,然后单击 **airquality-telegraf(空气质量-Telegraf)** 配置,轻松导航到正确的 Telegraf 配置文件。

Setting Up Telegraf-instaled templates

这将带您进入“加载数据”页面。在这里,您可以单击配置名称进行编辑。

Load Data-Configuration

现在我们可以将编辑后的 AirNow URL 粘贴到第 17 行,然后单击 **Save Changes(保存更改)**。

Edit Telegraf Configuration

现在单击 **Setup Instructions(设置说明)**(配置名称旁边),以使用此配置运行我们的 Telegraf 代理并将空气质量指标写入 InfluxDB。

空气质量仪表板

空气质量仪表板是空气质量模板随附的另一个资源。

让 Telegraf 运行一段时间,然后访问仪表板页面下的预构建仪表板。从左侧导航栏导航到仪表板页面。确保选择我们想要从中创建可视化的适当存储桶 airquality(空气质量)。它包括两个仪表可视化

  1. 当前 PM2.5:此仪表显示最新的细颗粒物 (PM2.5) 水平。
  2. 当前臭氧质量:此仪表显示最新的臭氧水平。

该图表显示了按严重程度级别分隔的空气质量指数 (AQI)。

Air Quality Dashboard

向空气质量模板添加警报

我们可以轻松地向空气质量模板添加警报,以便在 AQI 达到危险水平时收到通知。您可以使用 InfluxDB 将警报发送到各种不同的端点,包括 Slack。导航到 **Alerts(警报)** 页面,然后单击 **+ Create(+ 创建)** 以创建新的检查。接下来,使用 **Query Builder(查询构建器)** 查询您的数据。设置一个时间间隔,以确定您希望多久检查一次数据,以查看数据是否超过了阈值。最后,设置您的通知端点。要了解如何配置您的 Slack 通知端点,请关注 这篇文章

如何设置阈值检查以在 InfluxDB UI 中获得不安全 AQI 通知的示例。

An example of how to set up a threshold check to get notified on unsafe AQI with the InfluxDB UI

最终想法

我希望这篇文章能启发您利用 InfluxDB 在今年夏天保持健康。我还鼓励您查看 Enviro+ Raspberry Pi 空气质量模板,以构建您自己的空气质量传感器。