使用InfluxDB和Telegraf监测空气质量

导航到

本文最初发布在The New Stack,此处转载已获得许可。

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

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

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

先决条件

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

  1. 首先,在这里获取 InfluxDB。我推荐注册 InfluxDB 云服务,因为这是开始使用 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 API 的账户访问权限。接下来,访问 https://docs.airnowapi.org/forecastsbyzip/query,并按以下方式构建您的 URL

  1. 输入感兴趣的 ZIP 代码。
  2. 格式 下拉菜单中选择 application/json。
  3. 点击 构建
  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 配置文件。

Setting Up Telegraf-instaled templates

这会带您到加载数据页面。在此,您可以点击配置名称进行编辑。

Load Data-Configuration

现在我们可以将编辑后的 AirNow URL 粘贴到第 17 行,并点击 保存更改

Edit Telegraf Configuration

现在点击配置名称旁边的 设置说明,以运行此配置的 Telegraf 代理并将空气质量指标写入 InfluxDB。

空气质量仪表板

空气质量仪表板是包含在空气质量模板中的另一个资源。

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

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

图表显示根据严重程度级别分离的空气质量指数(AQI)。

Air Quality Dashboard

向空气质量模板添加警报

我们可以轻松地将警报添加到空气质量模板中,以便在空气质量指数(AQI)达到危险水平时收到通知。您可以使用InfluxDB将警报发送到多种不同的端点,包括Slack。转到 警报 页面并点击 + 创建 以创建一个新的检查。接下来,使用 查询构建器 查询您的数据。设置一个间隔以确定您希望多久检查一次数据,以查看是否超过阈值。最后,设置您的通知端点。要了解如何配置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空气质量模板,以构建您自己的空气质量传感器。