Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej

W tym artykule chcę podzielić się swoimi doświadczeniami z wykorzystania systemów open source Zabbix i Grafana do wizualizacji pracy linii produkcyjnych. Informacje mogą być przydatne dla osób poszukujących szybkiego sposobu wizualnego wyświetlania lub analizy zebranych danych w projektach automatyki przemysłowej lub IoT. Artykuł nie jest szczegółowym tutorialem, a raczej koncepcją systemu monitorowania opartego na oprogramowaniu open source dla zakładu produkcyjnego.

Narzędzia

Zabbix – używamy go od dłuższego czasu do monitorowania infrastruktury informatycznej zakładu. System okazał się na tyle wygodny i uniwersalny, że zaczęliśmy wprowadzać do niego dane z linii produkcyjnych, czujników i sterowników. Pozwoliło nam to zebrać wszystkie dane metryczne w jednym miejscu, stworzyć proste wykresy zużycia zasobów i wydajności sprzętu, ale tak naprawdę brakowało nam analityki i pięknych wykresów.

grafana to potężne narzędzie do analityki i wizualizacji danych. Duża ilość wtyczek pozwala na pobieranie danych z różnych źródeł (zabbix, clickhouse, influxDB), przetwarzanie ich na bieżąco (obliczanie wartości średniej, sumy, różnicy itp.) oraz rysowanie wszelkiego rodzaju wykresów (od prostych linii, prędkościomierze, tabele do skomplikowanych diagramów).

Draw.io – usługa umożliwiająca przeciągnięcie od prostego schematu blokowego do planu piętra w edytorze internetowym. Istnieje wiele gotowych szablonów i rysowanych obiektów. Dane można eksportować do wszystkich głównych formatów graficznych lub XML.

Wszystko razem

Napisano wiele artykułów na temat instalacji i konfiguracji Grafany i Zabbix. Opowiem Ci o głównych punktach konfiguracji.

Na serwerze Zabbix tworzony jest „węzeł sieci” (host), który będzie właścicielem „elementów danych” (elementów) zawierających metryki z naszych czujników. Wskazane jest wcześniejsze przemyślenie nazw węzłów i elementów danych i nadanie im możliwie największej struktury, ponieważ dostęp do nich z grafany uzyskamy za pomocą wyrażeń regularnych. Takie podejście jest wygodne, ponieważ jednym żądaniem można pozyskać dane z grupy elementów.

Aby skonfigurować grafana będziesz musiał zainstalować dodatkowe wtyczki:

  • Zabbix autorstwa Aleksandra Zobnina (alexanderzobnin-zabbix-app) – integracja z zabbix
  • natel-discrete-panel – wtyczka do wizualizacji dyskretnej na wykresie poziomym
  • pierosavi-imageit-panel – wtyczka do wyświetlania danych na górze obrazu
  • agenty-flowcharting-panel – wtyczka do dynamicznej wizualizacji diagramu z Draw.io

Integrację z samym Zabbixem konfiguruje się w grafanie, pozycja menu KonfiguracjaŹródła danychZabbix. Tam musisz podać adres serwera API Zabbix, to właśnie mam http://zabbix.local/zabbix/api_jsonrpc.phpi zaloguj się za pomocą hasła, aby uzyskać dostęp. Jeżeli wszystko zostało wykonane poprawnie, podczas zapisywania ustawień pojawi się komunikat z numerem wersji API: wersja API zabbix: 5.0.1

Tworzenie pulpitu nawigacyjnego

Tutaj zaczyna się magia Grafany i jej wtyczek.

Wtyczka Natel-discrete-panel
Mamy dane o stanie silników na liniach (praca = 1, niepraca =0). Korzystając z wykresu dyskretnego, możemy narysować skalę, która pokaże: stan silnika, ile minut/godzin lub % pracował i jak często był uruchamiany.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Wizualizacja stanów silnika

Moim zdaniem jest to jeden z najlepszych wykresów do wizualizacji wydajności sprzętu. Od razu widać jak długo stał bezczynnie i w jakich trybach pracuje częściej. Danych może być dużo, można je agregować według zakresów, przekształcać według wartości (jeśli wartość wynosi „1”, to wyświetl ją jako „ON”)

Wtyczka pierosavi-imageit-panel

Obraz jest wygodny w użyciu, gdy masz już narysowany diagram lub plan piętra, na którym chcesz zastosować dane z czujników. W ustawieniach wizualizacji musisz podać adres URL obrazu i dodać potrzebne elementy czujnika. Element pojawia się na obrazku i można go umieścić w wybranym miejscu za pomocą myszki.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Schemat pieca ze wskaźnikami temperatury i ciśnienia

Wtyczka panelu agenty-flowcharting-panel

Chciałbym bardziej szczegółowo opowiedzieć o tworzeniu wizualizacji FlowCharting, ponieważ jest to niezwykle funkcjonalne narzędzie. Pozwala na utworzenie dynamicznego diagramu mnemonicznego, którego elementy będą reagować na wartości metryk (zmiana koloru, pozycji, nazwy itp.).

Odbieranie danych

Tworzenie dowolnego elementu wizualizacji w Grafanie rozpoczynamy od zapytania o dane ze źródła, w naszym przypadku jest to zabbix. Korzystając z zapytań, musimy uzyskać wszystkie metryki, które chcemy wykorzystać na diagramie. Szczegóły metryk to nazwy elementów danych w Zabbix; możesz określić pojedynczą metrykę lub zestaw przefiltrowany przez wyrażenie regularne. W moim przykładzie pole Pozycja zawiera wyrażenie: „/(^linia 1)|(dostępność)|(cukinia)/” - oznacza to: zaznaczamy wszystkie metryki, których nazwa zaczyna się od „lini 1” lub zawiera słowo „dostępność” ” lub zawiera słowo „cukinia”

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Przykład ustawienia zapytania o dane dotyczące silników pierwszej linii i dostępności surowców

Konwersja danych

Dane źródłowe nie zawsze mogą mieć taką formę, w jakiej powinniśmy je wyświetlić. Na przykład mamy dane minuta po minucie wagi produktu w pojemniku (kg) i musimy wyświetlić szybkość napełniania w t/godzinę. Robię to w następujący sposób: biorę dane dotyczące masy i przekształcam je za pomocą funkcji grafana delta, która oblicza różnicę między wartościami metrycznymi, tak aby aktualna waga zamieniła się na kg/min. Następnie mnożę przez 0.06, aby otrzymać wynik w tonach na godzinę. Ponieważ metryka wagi jest używana w kilku zapytaniach, określam dla niej nowy alias (setAlias) i użyję go w regule wizualizacji.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Przykład użycia parametru delta i mnożnik oraz zmiany nazwy metryki w zapytaniu

Oto kolejny przykład konwersji danych: Musiałem policzyć liczbę partii (początek cyklu = uruchomienie silnika). Metryka jest obliczana na podstawie stanu silnika „linia 1 – pompa pompy ze zbiornika 1 (stan)”. Transformacja: dane pierwotnej metryki zmieniamy funkcją delta (różnica wartości), dzięki czemu metryka będzie miała wartość „+1” przy uruchomieniu silnika, „-1” przy zatrzymaniu i „0” po wyłączeniu silnika nie zmieniać swojego statusu. Następnie usuwam wszystkie wartości mniejsze niż 1 i sumuję je. Wynikiem jest liczba uruchomień silnika.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Przykład przeliczenia danych ze stanu aktualnego na liczbę uruchomień

Teraz o samej wizualizacji

W ustawieniach wyświetlania znajduje się przycisk „Edytuj rysowanie”, uruchamia on edytor, w którym można narysować diagram. Każdy obiekt na diagramie ma swoje własne parametry. Przykładowo, jeśli w edytorze określisz ustawienia czcionek, zostaną one zastosowane do wizualizacji danych w Grafanie.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Tak wygląda edytor w Draw.io

Po zapisaniu diagram pojawi się na grafanie i będzie można stworzyć reguły zmiany elementów.

W parametrach() określamy:

  • Opcje — ustaw nazwę reguły, nazwę lub alias metryki, której dane będą używane (Zastosuj do metryk). Rodzaj agregacji danych (Aggregacja) wpływa na końcowy wynik metryki, zatem Last oznacza, że ​​wybrana zostanie ostatnia wartość, avg to średnia wartość z okresu wybranego w prawym górnym rogu.
  • Progi – parametr wartości progowych opisuje logikę stosowania kolorów, czyli wybrany kolor zostanie zastosowany do elementów na diagramie w zależności od danych metrycznych. W moim przykładzie, jeśli wartość metryki wynosi „0”, status to „OK”, kolor będzie zielony, jeśli wartość wynosi „>1”, status będzie krytyczny, a kolor będzie czerwony.
  • Mapowania kolorów/podpowiedzi” i „Mapowania etykiet/tekstu” – wybór elementu schematu i scenariusza jego zachowania. W pierwszym scenariuszu obiekt zostanie zamalowany, w drugim pojawi się na nim tekst z danymi z metryki. Aby wybrać obiekt na schemacie należy kliknąć na znak obwodu i kliknąć na schemat.

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
W tym przykładzie maluję pompę i jej strzałkę na czerwono, jeśli działa, i na zielono, jeśli nie.

Korzystając z wtyczki flowcharting udało mi się narysować diagram całej linii, na którym:

  1. kolor jednostek zmienia się w zależności od ich statusu
  2. występuje alarm braku produktu w pojemnikach
  3. wyświetlane jest ustawienie częstotliwości silnika
  4. prędkość pierwszego napełniania/wysypywania zbiornika
  5. obliczana jest liczba cykli pracy linii (wsadowej).

Grafana+Zabbix: Wizualizacja pracy linii produkcyjnej
Wizualizacja pracy linii produkcyjnej

Doświadcz mocnych i skutecznych rezultatów

Najtrudniej było mi uzyskać dane od kontrolerów. Dzięki wszechstronności Zabbixa w zakresie odbioru danych oraz elastyczności Grafany dzięki wtyczkom, stworzenie kompleksowego ekranu monitorującego linię produkcyjną zajęło zaledwie kilka dni. Wizualizacja umożliwiła przeglądanie wykresów i statystyk stanu, a także łatwy dostęp przez Internet dla wszystkich zainteresowanych - to wszystko pozwoliło na szybką identyfikację wąskich gardeł i nieefektywnego wykorzystania jednostek.

wniosek

Bardzo przypadło mi do gustu połączenie Zabbix+Grafana i polecam zwrócić na nie uwagę jeśli trzeba szybko przetwarzać dane ze sterowników czy czujników bez konieczności programowania czy wdrażania skomplikowanych produktów komercyjnych. Oczywiście nie zastąpi to profesjonalnych systemów SCADA, ale w zupełności wystarczy jako narzędzie do scentralizowanego monitorowania całej produkcji.

Źródło: www.habr.com

Dodaj komentarz