Grafana+Zabbix:产线运行可视化

在这篇文章中我想分享一下我使用开源系统Zabbix和Grafana可视化生产线运行的经验。对于那些寻求快速直观地显示或分析工业自动化或物联网项目中收集的数据的人来说,这些信息可能很有用。本文不是详细的教程,而是基于制造工厂开源软件的监控系统的概念。

工具

ZABBIX – 我们长期以来一直使用它来监控工厂的 IT 基础设施。事实证明,该系统是如此方便和通用,以至于我们开始将来自生产线、传感器和控制器的数据输入其中。这使我们能够将所有指标数据收集在一个地方,制作资源消耗和设备性能的简单图表,但我们确实缺乏分析和漂亮的图表。

格拉法纳 是分析和数据可视化的强大工具。大量插件允许您从各种来源(zabbix、clickhouse、influxDB)获取数据,即时处理(计算平均值、总和、差值等)并绘制各种图表(从简单的线条、速度表、表格到复杂的图表)。

Draw.io – 一项服务,允许您在在线编辑器中将简单的框图绘制为平面图。有许多现成的模板和绘制的对象。数据可以导出为所有主要图形格式或 xml。

把它们放在一起

关于如何安装和配置Grafana和Zabbix的文章有很多,我会告诉你主要的配置点。

在 Zabbix 服务器上创建一个“网络节点”(主机),它将拥有带有来自我们传感器的指标的“数据元素”(项目)。建议提前考虑节点和数据元素的名称,并使其尽可能结构化,因为我们将通过正则表达式从 grafana 访问它们。这种方法很方便,因为您可以通过一个请求从一组元素获取数据。

要配置grafana,您需要安装其他插件:

  • Zabbix by Alexander Zobnin (alexanderzobnin-zabbix-app) – 与 zabbix 集成
  • natel-discrete-panel – 用于在水平图上离散可视化的插件
  • pierosavi-imageit-panel – 用于在图像顶部显示数据的插件
  • agenty-flowcharting-panel – 来自draw.io的图表动态可视化插件

与Zabbix本身的集成是在grafana中配置的,菜单项ConfigurationDatasourcesZabbix。在那里你需要指定api zabbix服务器的地址,这就是我的 http://zabbix.local/zabbix/api_jsonrpc.php,并使用密码登录进行访问。如果一切都正确完成,保存设置时将出现一条消息,其中包含 api 版本号:zabbix API 版本:5.0.1

创建仪表板

这就是 Grafana 及其插件的魔力开始的地方。

Natel 离散面板插件
我们有线路上电机状态的数据(工作 = 1,不工作 = 0)。使用离散图,我们可以绘制一个比例尺来显示:发动机的状态、工作了多少分钟/小时或百分比以及启动的频率。

Grafana+Zabbix:产线运行可视化
发动机状态可视化

在我看来,这是可视化硬件性能的最佳图表之一。您可以立即看到它闲置了多长时间以及它在哪些模式下工作得更频繁。数据可以很多,可以按范围聚合,按值转换(如果值为“1”,则显示为“ON”)

插件pierosavi-imageit-面板

当您已经绘制了图表或平面图并希望在其上应用来自传感器的数据时,使用 Imageit 会很方便。在可视化设置中,您需要指定图像的 URL 并添加所需的传感器元素。该元素出现在图片中,可以用鼠标放置在所需的位置。

Grafana+Zabbix:产线运行可视化
带有温度和压力指标的炉图

代理流程图面板插件

我想更详细地讨论创建流程图可视化,因为它是一个非常实用的工具。它允许您制作动态助记图,其中的元素将对指标的值做出反应(更改颜色、位置、名称等)。

接收数据

Grafana 中任何可视化元素的创建都始于对源数据的请求,在我们的例子中是 zabbix。使用查询,我们需要获取要在图表中使用的所有指标。指标详细信息是 Zabbix 中数据元素的名称;您可以指定单个指标或通过正则表达式过滤的集合。在我的示例中,项目字段包含表达式:“/(^line 1)|(availability)|(zucchini)/” - 这意味着:选择名称严格以“line 1”开头或包含单词“availability”的所有指标”或包含“西葫芦”一词

Grafana+Zabbix:产线运行可视化
设置一线发动机数据和原材料可用性请求的示例

数据转换

源数据可能并不总是我们需要显示的形式。例如,我们有容器中产品重量(公斤)的每分钟数据,并且需要以吨/小时为单位显示灌装速率。我通过以下方式执行此操作:我获取重量数据并使用 grafana delta 函数对其进行转换,该函数计算度量值之间的差异,因此当前重量转换为 kg/min。然后乘以 0.06 得到以吨/小时为单位的结果。由于权重指标在多个查询中使用,因此我为其指定了一个新别名 (setAlias) 并将在可视化规则中使用它。

Grafana+Zabbix:产线运行可视化
使用 delta 和 multiplier 参数并在查询中重命名指标的示例

这是数据转换的另一个示例:我需要计算批次数(循环开始=发动机启动)。该指标是根据发动机状态“线路 1 - 来自油箱 1 的泵泵(状态)”计算的。转换:我们用delta函数(值的差异)改变原始指标的数据,因此指标将在启动发动机时值为“+1”,在停止时为“-1”,在发动机停止时为“0”不改变其状态。然后我删除所有小于1的值并对它们求和。结果是发动机启动的次数。

Grafana+Zabbix:产线运行可视化
将数据从当前状态转换为启动次数的示例

现在关于可视化本身

在显示设置中有一个“编辑绘图”按钮;它会启动一个编辑器,您可以在其中绘制图表。图中的每个对象都有自己的参数。例如,如果您在编辑器中指定字体设置,它们将应用于 Grafana 中的数据可视化。

Grafana+Zabbix:产线运行可视化
这就是 Draw.io 中编辑器的样子

保存图表后,它将出现在 grafana 中,您可以创建更改元素的规则。

在parameters()中我们指定:

  • 选项 - 设置规则名称、将使用其数据的指标的名称或别名(应用于指标)。数据聚合(Aggregation)的类型影响指标的最终结果,因此Last表示将选择最后一个值,avg是右上角选择的时间段的平均值。
  • Thresholds - 阈值参数描述了颜色应用的逻辑,即所选颜色将根据度量数据应用于图表上的元素。在我的示例中,如果指标值为“0”,则状态为“Ok”,颜色将为绿色,如果值为“>1”,则状态将为“Critical”,颜色将为红色。
  • 颜色/工具提示映射”和“标签/文本映射” - 选择架构元素及其行为场景。在第一个场景中,对象将被绘制,在第二个场景中,对象上将有带有度量数据的文本。要选择图表上的对象,您需要单击电路符号并单击图表。

Grafana+Zabbix:产线运行可视化
在此示例中,如果泵正常工作,我将泵及其箭头涂成红色,如果不能正常工作,则将其涂成绿色。

使用流程图插件,我能够绘制整条生产线的图表,其中:

  1. 单位的颜色根据其状态而变化
  2. 容器内无产品时发出警报
  3. 显示电机频率设置
  4. 第一罐充/卸速度
  5. 计算生产线运行(批次)的周期数

Grafana+Zabbix:产线运行可视化
生产线运行可视化

导致

对我来说最困难的事情是从控制器获取数据。得益于Zabbix在接收数据方面的多功能性以及Grafana由于插件而具有的灵活性,只用了几天的时间就创建了一个全面的产线监控屏幕。可视化使查看图表和状态统计数据成为可能,并且每个感兴趣的人都可以通过网络轻松访问 - 所有这些使得快速识别瓶颈和低效使用单元成为可能。

结论

我真的很喜欢 Zabbix+Grafana 组合,如果您需要快速处理来自控制器或传感器的数据,而无需编程或实现复杂的商业产品,我建议您关注它。当然,这不会取代专业的 SCADA 系统,但它足以作为整个生产集中监控的工具。

来源: habr.com

添加评论