实时嵌入式 Linux 可观测性,使用 Pantavisor 和 InfluxDB

导航至

本文最初发布于 HackMD,经许可在此转载。

目前,组织机构无法实时监控数百万个嵌入式 Linux 设备。由于架构和设备类型繁多,聚合遥测数据和指标并在集中式分析工具中查看这些数据存在问题。

将嵌入式 Linux 设备加入遥测服务以便轻松观察指标是一项重大挑战。但现在,您可以使用 Pantavisor 驱动的设备和 InfluxDB 的 Telegraf 插件,自动快速地加入大型 IoT 设备群,并以最少的努力将指标流式传输到集中式监控仪表板。

本文介绍了如何加入和配置设备以使用 Telegraf 插件服务来监控 Pantavisor 驱动的嵌入式 Linux 设备群。借助 Pantacor Hub 自动获取 InfluxDB 凭据的单点登录流程,设备加入过程得到简化和加速。

Telegraf 和 Pantacor Hub 概述

Telegraf 是一个开源服务器代理,用于从您的堆栈、传感器和系统收集遥测数据和其他指标。Pantacor Hub 是我们的开源 SaaS,用于远程设备固件和软件生命周期管理以及云服务集成。

我们将 telegraf 插件容器化,并使其作为 Pantacor Hub 的一项服务提供。Telegraf 将指标发送到任何 InfluxDB 服务器,包括本地部署、云或托管。在本指南中,我们将使用 https://cloud2.influxdata.com/ 上的 InfluxDB 云服务。

Telegraf and Pantacor Hub overview

如何将启用 Pantavisor 的设备与 InfluxDB 集成

1. 创建 Pantacor Hub 帐户

转到 https://hub.pantacor.com/signup,然后按照步骤创建帐户。

2. 使用 Pantavisor 刷写新设备

接下来,从 https://hub.pantacor.com/download-image 中选择您正在使用的设备的镜像。

Download Pantavisor image

对于 Raspberry Pi 3 或 Raspberry Pi 4,推荐的镜像为 arm-rpi64 (pantahub-ci/rpi64_initial_stable)。

下载镜像后,使用 Raspberry Pi ImagerBalena Etcher 将其刷写到您的设备上。

您的设备现在将运行 Pantavisor。设备启动后,您将能够在 Pantacor Hub 仪表板上的设备列表中看到它。

注意:如果您的 Raspberry Pi 未通过以太网电缆直接连接到互联网,您将需要通过我们的强制门户配置 WiFi 连接,然后才能连接到 Pantacor Hub。

请参阅 启动启用 Pantavisor 的设备设置 Raspberry Pi 的 WiFi 门户 以获取更多信息。

3. 安装 PVR-CLI

PVR 命令行界面使您能够通过安装新容器以及许多 其他操作 来管理您的设备。

有关如何安装 PVR 的说明在此处

您还可以观看此视频以指导您完成该过程:https://youtu.be/yyohtCcxtog

4. 在 InfluxDB 创建帐户

转到 cloud2.influxdata.com,然后按照步骤创建帐户。

5. 为 Pantacor Hub 创建 InfluxDB API 令牌

进入 InfluxDB UI 后,选择左侧菜单项“加载数据”,然后选择“API 令牌”。通过选择“所有访问 API 令牌”创建新令牌。设置描述(例如:“pantacor hub”),然后复制令牌并将其保存在安全的地方。

Create an InfluxDB API Token for Pantacor Hub

Generate All Access API Token

6. 设置 Influx 以接收设备数据

为了让 InfluxDB 保存设备数据,我们需要创建一个存储桶并为帐户中所有设备的数据指定值。

由于 Pantavisor 只是一个 Linux 系统,您可以使用 InfluxDB 中的 Linux 系统模板,网址为

https://github.com/influxdata/community-templates/tree/master/linux_system

要实施该模板,请转到“设置 - 模板”并添加此模板

https://raw.githubusercontent.com/influxdata/community-templates/master/linux_system/linux_system.yml

单击查找模板,它会自动设置所需的一切。

Click Lookup Template to automatically set up everything

7. 将您的 InfluxDB 帐户连接到您的 Pantacor 帐户

接下来,将 InfluxDB 令牌连接到您的 Pantacor Hub 帐户。为了实现这一点,我们将使用 sm.pantacor.com 应用程序。

此应用程序使您能够在连接到 InfluxDB 后,连接和设置设备的必要 user-meta(或 Pantacor Hub 中的配置参数)。

转到 sm.pantacor.com,然后使用您的 Pantacor 帐户凭据登录。接下来,从菜单中选择已连接的服务以添加新服务并填写以下字段。

  • 服务名称InfluxDB Cloud Server(仅用于描述目的,可以是任何名称)
  • API URL:此 URL 将因您创建 InfluxDB 帐户时选择的服务器而异。您可以在注册电子邮件中查找“集群 URL(主机名)”以找到该 URL。该 URL 应如下所示:https://us-east-1-1.aws.cloud2.influxdata.com
  • 令牌:您将在此处放置上一步中创建的令牌。
  • 密钥:此项将保持为空,因为 InfluxDB 不使用密钥。
  • UserMeta JSON:这是一组初始值,将注入到设备的配置中。

您还需要来自 InfluxDB 的组织 ID。组织 ID 在组织设置(与 API URL 相同的位置)中找到,为组织 ID。

Organization Settings

添加这些值后,我们将编写一个类似于这样的 JSON 文件

{"bucket": "telegraf", "org": "34655d0049224811"}

8. 使用 PVR 安装 Telegraf 容器

首先,从 hub.pantacor.com 仪表板中找到设备,然后从设备摘要中复制克隆 URL。该 URL 看起来类似于这样

Install the Telegraf container with PVR

https://pvr.pantahub.com/highercomve/one_marketplace_development

获得设备克隆 URL 后,您可以使用以下命令安装 telegraf 容器及其配置

DESTINATION_CLONE_URL="YOUR CLONE URL"
pvr fcp https://pvr.pantahub.com/asacasa/telegraf_arm64v8#telegraf,_config/telegraf ${DESTINATION_CLONE_URL}#telegraf,_config/telegraf

此命令将所有配置文件和 telegraf 容器复制到您的设备。还将创建一个新版本,您可以在 hub.pantacor.com 的仪表板中查看该版本。

在新版本为“完成”或“已更新”后,您就拥有了查看设备指标并使用 InfluxDB 监控它们所需的一切。

view the device metrics

9. 使用 InfluxDB 监控设备

现在您已经安装了 telagraf 容器,请转到 InfluxDB 仪表板以查看您的设备监控信息。

转到“仪表板 - Linux 系统”

现在您可以享受您的新设备指标了!

Monitoring devices with InfluxDB

最终想法

本文介绍了如何设置嵌入式 Linux 设备以与 Telegraf 和 InfluxDB 配合使用,从而流式传输指标以进行实时监控。

如果您有任何问题或意见,请在我们的社区论坛上与我们联系:https://community.pantavisor.io

请参阅我们的网站以获取有关 PantavisorPantacor 博客 的更多信息