Grafana+Zabbix: تجسم خط تولید

در این مقاله می خواهم تجربه خود را از استفاده از سیستم های متن باز Zabbix و Grafana برای تجسم کار خطوط تولید به اشتراک بگذارم. این اطلاعات ممکن است برای کسانی مفید باشد که به دنبال راهی سریع برای نمایش بصری یا تجزیه و تحلیل داده های جمع آوری شده در پروژه های اتوماسیون صنعتی یا اینترنت اشیا هستند. این مقاله یک راهنمای دقیق نیست، بلکه مفهومی از یک سیستم نظارتی مبتنی بر نرم افزار منبع باز برای یک شرکت تولیدی است.

ابزارها

Zabbix - ما برای مدت طولانی از آن برای نظارت بر زیرساخت فناوری اطلاعات کارخانه استفاده می کنیم. معلوم شد این سیستم به قدری راحت و همه کاره است که ما شروع به وارد کردن داده ها از خطوط تولید، سنسورها و کنترلرها در آن کردیم. این به ما این امکان را می داد که تمام داده های متریک را در یک مکان جمع آوری کنیم، نمودارهای ساده ای از مصرف منابع و عملکرد تجهیزات ایجاد کنیم، اما ما واقعاً فاقد تجزیه و تحلیل و نمودارهای زیبا بودیم.

گرافانا یک ابزار قدرتمند برای تجزیه و تحلیل و تجسم داده ها است. تعداد زیادی پلاگین به شما امکان می دهد داده ها را از منابع مختلف (zabbix، clickhouse، influxDB) بگیرید، آن را در لحظه پردازش کنید (میانگین، مجموع، تفاوت و غیره را محاسبه کنید) و انواع نمودارها را (از خطوط ساده، سرعت سنج ها) ترسیم کنید. ، جداول به نمودارهای پیچیده).

Draw.io - سرویسی که به شما امکان می دهد یک ویرایشگر آنلاین را از یک بلوک دیاگرام ساده به یک پلان طبقه بکشید. قالب های آماده و اشیاء ترسیم شده زیادی وجود دارد. داده ها را می توان به تمام فرمت های اصلی گرافیکی یا xml صادر کرد.

قرار دادن همه اینها با هم

مقالات زیادی در مورد نحوه نصب و پیکربندی Grafana و Zabbix نوشته شده است، من در مورد نکات اصلی پیکربندی صحبت خواهم کرد.

یک "گره شبکه" (میزبان) در سرور Zabbix ایجاد می شود که دارای "عناصر داده" (مورد) با معیارهای سنسورهای ما خواهد بود. توصیه می شود از قبل روی نام گره ها و عناصر داده فکر کنید و آنها را تا حد امکان ساختارمند کنید، زیرا از طریق عبارات منظم به آنها از graphana دسترسی خواهیم داشت. این رویکرد راحت است زیرا شما می توانید داده ها را از گروهی از عناصر با یک درخواست دریافت کنید.

برای پیکربندی grafana، باید افزونه های دیگری را نصب کنید:

  • Zabbix توسط Alexander Zobnin (alexanderzobnin-zabbix-app) - ادغام با zabbix
  • natel-discrete-panel - پلاگین برای تجسم گسسته در نمودار افقی
  • pierosavi-imageit-panel - افزونه ای برای نمایش داده ها در بالای تصویر شما
  • agenty-flowcharting-panel - پلاگین برای تجسم نمودار پویا از draw.io

ادغام با Zabbix خود در grafana، آیتم منو ConfigurationData sourcesZabbix پیکربندی شده است. در آنجا باید آدرس api سرور zabbix را مشخص کنید، من این را دارم http://zabbix.local/zabbix/api_jsonrpc.phpو یک لاگین با رمز عبور برای دسترسی. اگر همه چیز به درستی انجام شود، هنگام ذخیره تنظیمات، یک پیام با شماره نسخه api وجود دارد: zabbix API version: 5.0.1

ایجاد داشبورد

اینجاست که جادوی grafana و افزونه های آن آغاز می شود.

پلاگین natel-discrete-panel
ما اطلاعاتی در مورد وضعیت موتورها در خطوط داریم (کار = 1، کار نکردن = 0). با استفاده از نمودار گسسته، می‌توانیم مقیاسی را رسم کنیم که نشان می‌دهد: وضعیت موتور، چند دقیقه/ساعت یا درصد کار کرده و چند بار راه‌اندازی شده است.

Grafana+Zabbix: تجسم خط تولید
تجسم وضعیت موتور

به نظر من، این یکی از بهترین نمودارها برای تجسم عملکرد سخت افزار است. بلافاصله می توانید ببینید که چه مدت بیکار است، در چه حالت هایی بیشتر کار می کند. ممکن است داده های زیادی وجود داشته باشد، می توان آنها را بر اساس محدوده ها جمع کرد، آنها را بر اساس مقادیر تبدیل کرد (اگر مقدار "1" است، سپس به عنوان "روشن" نمایش داده شود)

پلاگین pierosavi-imageit-panel

هنگامی که از قبل نمودار یا طرح اتاقی را که می‌خواهید داده‌های حسگرها را روی آن اعمال کنید، طراحی شده‌اید، استفاده از Image آن راحت است. در تنظیمات تجسم، باید آدرس url تصویر را مشخص کنید و عناصر حسگر مورد نیاز خود را اضافه کنید. عنصر روی تصویر ظاهر می شود و می تواند با ماوس در جای مناسب قرار گیرد.

Grafana+Zabbix: تجسم خط تولید
طرح کوره با متریک دما و فشار

پلاگین agenty-flowcharting-panel

من می خواهم در مورد ایجاد تجسم فلوچارتینگ بیشتر به شما بگویم، زیرا یک ابزار فوق العاده کاربردی است. این به شما امکان می دهد یک یادداشت پویا ایجاد کنید که عناصر آن به مقادیر معیارها (تغییر رنگ، موقعیت، نام و غیره) پاسخ می دهند.

دریافت داده ها

ایجاد هر عنصر تجسمی در grafana با درخواست داده از منبع شروع می شود، در مورد ما zabbix است. با استفاده از کوئری ها، باید تمام معیارهایی را که می خواهیم در نمودار استفاده کنیم، بدست آوریم. جزئیات متریک نام عناصر داده در Zabbix است، شما می توانید هر دو متریک جداگانه و مجموعه ای را با فیلتر کردن از طریق یک عبارت منظم مشخص کنید. در مثال من، فیلد Item حاوی عبارت است: "/(^line 1)|(availability)|(zucchini)/" - این به این معنی است: تمام معیارهایی را انتخاب کنید که نام آنها دقیقاً با "خط 1" شروع می شود یا حاوی کلمه "در دسترس بودن است" " یا حاوی کلمه "کدو سبز" است

Grafana+Zabbix: تجسم خط تولید
نمونه ای از تنظیم درخواست داده در مورد موتورهای خط اول و در دسترس بودن مواد اولیه

تبدیل داده ها

داده های منبع ممکن است همیشه به شکلی نباشد که باید آن را نمایش دهیم. به عنوان مثال، ما داده های دقیقه به دقیقه در مورد وزن یک محصول در یک ظرف (کیلوگرم) داریم و می خواهیم میزان پر شدن را بر حسب t/h نمایش دهیم. من این کار را به این صورت انجام می دهم: داده های وزن را می گیرم و با تابع دلتا گرافانا تبدیل می کنم، که تفاوت بین مقادیر متریک را محاسبه می کند، بنابراین وزن فعلی به کیلوگرم در دقیقه تبدیل می شود. سپس در 0.06 ضرب می کنم تا نتیجه به تن در ساعت برسد. از آنجایی که معیار وزن در پرس و جوهای متعدد استفاده می شود، من به آن نام مستعار جدیدی (setAlias) می دهم و از آن در قانون رندر استفاده می کنم.

Grafana+Zabbix: تجسم خط تولید
مثالی از استفاده از پارامتر دلتا و ضریب و تغییر نام یک متریک در یک کوئری

در اینجا مثال دیگری از تبدیل داده است: من باید تعداد دسته ها را محاسبه کنم (شروع چرخه = استارت موتور). متریک بر اساس وضعیت موتور "خط 1 - پمپ مخزن 1 (وضعیت)" محاسبه می شود. تبدیل: داده‌های متریک اصلی را با تابع مثلث تغییر می‌دهیم (تفاوت مقدار)، بنابراین متریک برای راه‌اندازی موتور مقدار «1+»، برای توقف «-1» و زمانی که موتور خاموش نمی‌شود «0» خواهد داشت. وضعیت آن را تغییر دهد. سپس تمام مقادیر کمتر از 1 را حذف می کنم و آنها را جمع می کنم. نتیجه تعداد استارت های موتور است.

Grafana+Zabbix: تجسم خط تولید
نمونه ای از تبدیل داده ها از وضعیت فعلی به تعداد شروع

حالا در مورد خود تجسم

در تنظیمات نمایش دکمه "Edit Draw" وجود دارد، ویرایشگر را راه اندازی می کند که در آن می توانید یک نمودار بکشید. هر شیء در نمودار دارای پارامترهای خاص خود است. به عنوان مثال، اگر تنظیمات فونت را در ویرایشگر مشخص کنید، برای تجسم داده ها در grafana اعمال می شود.

Grafana+Zabbix: تجسم خط تولید
این همان چیزی است که ویرایشگر در Draw.io به نظر می رسد

پس از ذخیره طرح، در graphana ظاهر می شود و امکان ایجاد قوانینی برای تغییر عناصر وجود خواهد داشت.

در پارامترهای () مشخص می کنیم:

  • گزینه‌ها - نام قانون (نام قانون)، نام یا نام مستعار معیاری که داده‌های آن استفاده می‌شود را تنظیم کنید (اعمال برای معیارها). نوع تجمیع داده ها (Aggregation) بر نتیجه نهایی متریک تأثیر می گذارد، بنابراین Last به این معنی است که آخرین مقدار انتخاب می شود، میانگین به معنای مقدار متوسط ​​دوره انتخاب شده در گوشه بالا سمت راست است.
  • آستانه ها - پارامتر مقدار آستانه، منطق کاربرد رنگ را توصیف می کند، یعنی رنگ انتخاب شده بسته به داده های متریک، روی عناصر روی نمودار اعمال می شود. در مثال من، اگر مقدار معیار "0" باشد، وضعیت "Ok"، رنگ سبز، اگر مقدار ">1" باشد، وضعیت بحرانی و رنگ قرمز خواهد بود.
  • نگاشت رنگ/نکات ابزار" و "نقشه گذاری برچسب/متن" - انتخاب یک عنصر مدار و سناریوی رفتار آن. در سناریوی اول، شیء روی آن نقاشی می شود، در سناریوی دوم - دارای متنی با داده های متریک است. برای انتخاب یک شی در نمودار، باید علامت مدار را فشار داده و با ماوس روی نمودار کلیک کنید.

Grafana+Zabbix: تجسم خط تولید
در این مثال، پمپ و فلش آن را اگر کار می کند قرمز و اگر کار نمی کند سبز می کنم.

با کمک افزونه فلوچارتینگ، موفق شدم نموداری از کل خط بکشم که روی آن:

  1. رنگ سنگدانه ها با توجه به وضعیت آنها تغییر می کند
  2. زنگ خطر کمبود محصول در ظروف وجود دارد
  3. تنظیم فرکانس موتور نمایش داده می شود
  4. نرخ پر/تخلیه مخزن اول
  5. تعداد چرخه های عملیات خط (بچ) شمارش می شود

Grafana+Zabbix: تجسم خط تولید
تجسم خط تولید

نتیجه

سخت ترین قسمت برای من دریافت اطلاعات از کنترلرها بود. به لطف تطبیق پذیری Zabbix از نظر جمع آوری داده ها و انعطاف پذیری Grafana از طریق افزونه ها، تنها چند روز طول کشید تا یک صفحه نمایش جامع برای نظارت بر خط تولید ایجاد شود. تجسم مشاهده نمودارها و آمار وضعیت، به علاوه دسترسی آسان از طریق وب برای هر علاقه مندی را امکان پذیر می کند - همه این موارد باعث می شود تا به سرعت گلوگاه ها و استفاده ناکارآمد از مجموعه ها شناسایی شوند.

نتیجه

من بسته نرم افزاری Zabbix + Grafana را دوست داشتم و توصیه می کنم اگر نیاز به پردازش سریع داده ها از کنترلرها یا حسگرها بدون برنامه نویسی یا اجرای محصولات تجاری پیچیده دارید، به آن توجه کنید. البته این جایگزین سیستم های اسکادا حرفه ای نخواهد شد، اما به عنوان ابزاری برای نظارت متمرکز بر کل تولید کافی خواهد بود.

منبع: www.habr.com

اضافه کردن نظر