监控您的 IIoT 系统的健康状况
您如何确保您的 IIoT 系统是健康的?当您的系统运行时,可能会遇到网络丢失或延迟、节点故障或由于软件升级和新应用程序部署而导致的意外变化。这些问题会影响应用程序的性能。但是,如果您不持续监控它们,则确定问题的根源可能会非常具有挑战性。 RTI 研究团队正在研究分布式能源系统运行监控的架构解决方案。但是,这种方法可以应用于任何垂直应用程序,包括您的应用程序。
运营监控通过收集性能指标和一段时间内的事件,让您清楚地了解系统健康状况。具体来说,它通过实时可视化和分析为您提供洞察力。为了支持这种基于 DDS 的系统的运行监控能力,RTI 研究团队评估了相关技术并开发了用于演示的原型软件(这项工作是作为 DOE 资助的研究合同的一部分完成的)。
监控需要三个关键组件:数据采集解决方案、数据存储解决方案和可视化解决方案。
用于运营监控的时间序列数据库
对于操作监控,我们使用了来自 InfluxData 的称为 TICK(源自每种技术的首字母)的软件堆栈。如下图所示。 T elegraf 是一个插件驱动的代理,用于收集监控数据。它支持 100 多个插件,因此您可以从许多不同的来源收集数据。您还可以通过开发自己的插件来扩展您的监控源。一旦 Telegraf 收集到监控数据,收集的数据就会移交给 I nfluxDB——数据时序监控技术。从 InfluxDB 数据可以传递到 C hronograf 用于可视化; K apacitor 根据用户定义的规则提供警报。
特别是,InfluxDB 是一个用于监控的开源时间序列数据库,它提供了几个有趣的功能:
- 类似 SQL 的以时间为中心的查询语言
- 查询语言中的内置时间序列函数
- 自动数据保留政策
- 无模式方法
- 通过连续查询进行下采样
- 通过分布式集群实现高可用性(仅在商业版本中支持)
<强烈风格=“字母间距:0.4px;背景色:透明;”> InfluxData提供了完整的堆(称为TICK)用于监控 (来自 Influxdata.com)
监控架构和实施
TICK 构成了我们管理层的基础(如下所示)。此外,我们需要提供生成健康监测数据的工具——我们称之为管理服务层。
我们的监控指标和警报节点dlth12MYBFfdzzifs>我们的可视化指标和警报节点dhl_difadzzifs>上图描述了我们为项目构建的监控架构。该架构主要由管理服务层和行政层组成。
- 管理服务层 包括从运行用户应用程序的节点收集监控数据的软件组件。对于我们的项目,用户应用程序是 OpenFMB 模拟应用程序,但它可以是任何 DDS 应用程序。
- 管理层 由用于存储、可视化和提醒收集的时间序列监控数据的软件组件组成。
我们使用此架构收集的数据类型包括:
- 节点指标 :节点的CPU、内存、网络使用情况
- 容器指标 :容器的 CPU、内存、网络使用情况
- DDS 指标 :发现统计数据、协议统计数据和事件(例如,活跃度损失、样本丢失、样本拒绝)
为了实现该架构,我们使用现有的 Telegraf 插件来收集节点和容器指标。这些指标是从操作系统和容器引擎收集的。对于 DDS 指标,我们利用了 RTI 监控库。
我们的智能网桥将从我们的监控代理本地收集的数据转换为远程数据,以便通过监控数据总线传递。网桥可以过滤收集到的数据以减少网络上的数据并在需要时丰富它(例如,添加主机名作为标签以对时间序列数据进行分组)。
为了从管理端的监控数据总线订阅数据,我们使用了启用 DDS 插件的 Telegraf(架构中的指标收集服务)。由于 Telegraf 插件框架是用 Go 编写的,我们还开发了一个 DDS Go 与 RTI Connector 的绑定!它目前可在 https://github.com/rticommunity/rticonnextdds-connector-go 获得。对于可视化和警报,我们使用了 Grafana。
Grafana 允许用户定义特定于系统的可视化和警报
有了所有这些工件,我们可以使用我们的能源系统模拟作为用户应用程序来展示基于 DDS 的系统的端到端操作监控能力(可通过我们的案例 + 代码页面获得:https://www.rti.com/资源/用例/微电网-openfmb)。我们很高兴分享我们的工作并获得您的反馈。如果您有兴趣,请告诉我们!
在下一篇博客中,我们将更深入地研究我们的 InfluxDB 集成,并为您提供源代码和文档,以便您可以自己尝试一下!
物联网技术