Grafana+Zabbix: Visualisierung der Produktionslinie

In diesem Artikel möchte ich meine Erfahrungen mit der Verwendung der Open-Source-Systeme Zabbix und Grafana zur Visualisierung der Arbeit von Produktionslinien teilen. Die Informationen können für diejenigen nützlich sein, die nach einer schnellen Möglichkeit suchen, die gesammelten Daten in industriellen Automatisierungs- oder IoT-Projekten visuell anzuzeigen oder zu analysieren. Bei dem Artikel handelt es sich nicht um einen detaillierten Leitfaden, sondern vielmehr um ein Konzept eines Überwachungssystems auf Basis von Open-Source-Software für ein produzierendes Unternehmen.

Werkzeuge

Zabbix – Wir nutzen es schon seit langem zur Überwachung der IT-Infrastruktur des Werks. Das System erwies sich als so praktisch und vielseitig, dass wir damit begannen, Daten von Produktionslinien, Sensoren und Steuerungen darin einzugeben. Dies ermöglichte es uns, alle Messdaten an einem Ort zu sammeln und einfache Diagramme des Ressourcenverbrauchs und der Geräteleistung zu erstellen, aber es fehlten uns wirklich Analysen und schöne Diagramme.

Grafana ist ein leistungsstarkes Tool zur Analyse und Datenvisualisierung. Mit einer großen Anzahl von Plugins können Sie Daten aus verschiedenen Quellen (zabbix, clickhouse, influxDB) übernehmen, sie im Handumdrehen verarbeiten (Durchschnitt, Summe, Differenz usw. berechnen) und alle Arten von Diagrammen zeichnen (von einfachen Linien bis hin zu Tachometern). , Tabellen bis hin zu komplexen Diagrammen ).

Draw.io - ein Dienst, der es Ihnen ermöglicht, in einem Online-Editor von einem einfachen Blockdiagramm bis hin zu einem Grundriss zu zeichnen. Es gibt viele vorgefertigte Vorlagen und gezeichnete Objekte. Daten können in alle gängigen Grafikformate oder XML exportiert werden.

Alles zusammenstellen

Es wurden viele Artikel darüber geschrieben, wie man Grafana und Zabbix installiert und konfiguriert. Ich werde auf die wichtigsten Punkte der Konfiguration eingehen.

Auf dem Zabbix-Server wird ein „Netzwerkknoten“ (Host) erstellt, der „Datenelemente“ (Element) mit Metriken unserer Sensoren besitzt. Es ist ratsam, die Namen von Knoten und Datenelementen im Voraus zu überdenken und sie so strukturiert wie möglich zu gestalten, da wir von Graphana aus über reguläre Ausdrücke darauf zugreifen. Dieser Ansatz ist praktisch, da Sie mit einer einzigen Anfrage Daten von einer Gruppe von Elementen abrufen können.

Um Grafana zu konfigurieren, müssen Sie zusätzliche Plugins installieren:

  • Zabbix von Alexander Zobnin (alexanderzobnin-zabbix-app) – Integration mit Zabbix
  • natel-discrete-panel – Plugin zur diskreten Visualisierung auf einem horizontalen Diagramm
  • pierosavi-imageit-panel – Plugin zum Anzeigen von Daten über Ihrem Bild
  • agenty-flowcharting-panel – Plugin zur dynamischen Diagrammvisualisierung von draw.io

Die Integration mit Zabbix selbst wird in Grafana, Menüpunkt KonfigurationDatenquellenZabbix, konfiguriert. Dort müssen Sie die API-Adresse des Zabbix-Servers angeben, diese habe ich http://zabbix.local/zabbix/api_jsonrpc.phpund ein Login mit Passwort für den Zugriff. Wenn alles richtig gemacht wurde, erscheint beim Speichern der Einstellungen eine Meldung mit der API-Versionsnummer: zabbix API-Version: 5.0.1

Erstellen eines Dashboards

Hier beginnt die wahre Magie von Grafana und seinen Plugins.

Natel-Discrete-Panel-Plugin
Wir haben Daten über den Status der Motoren auf den Leitungen (in Betrieb = 1, nicht in Betrieb =0). Mithilfe des diskreten Diagramms können wir eine Skala zeichnen, die Folgendes anzeigt: den Status des Motors, wie viele Minuten/Stunden oder % er gearbeitet hat und wie oft er gestartet wurde.

Grafana+Zabbix: Visualisierung der Produktionslinie
Visualisierung des Motorstatus

Meiner Meinung nach ist dies eines der besten Diagramme zur Visualisierung der Hardwareleistung. Sie können sofort erkennen, wie lange es im Leerlauf ist und in welchen Modi es häufiger arbeitet. Es können viele Daten vorhanden sein, es ist möglich, sie nach Bereichen zu aggregieren und nach Werten umzuwandeln (wenn der Wert „1“ ist, wird er als „EIN“ angezeigt).

Pierosavi-Imageit-Panel-Plugin

Imageit ist praktisch, wenn Sie bereits ein gezeichnetes Diagramm oder einen Plan des Raums haben, auf den Sie Daten von Sensoren anwenden möchten. In den Visualisierungseinstellungen müssen Sie die URL-Adresse für das Bild angeben und die benötigten Sensorelemente hinzufügen. Das Element erscheint auf dem Bild und kann mit der Maus an der richtigen Stelle platziert werden.

Grafana+Zabbix: Visualisierung der Produktionslinie
Schema des Ofens mit Temperatur- und Druckmetriken

agenty-flowcharting-panel-Plugin

Ich würde Ihnen gerne mehr über die Erstellung einer FlowCharting-Visualisierung erzählen, da es sich um ein unglaublich funktionales Tool handelt. Sie können damit eine dynamische Mnemonik erstellen, deren Elemente auf die Werte der Metriken reagieren (Farbe, Position, Name usw. ändern).

Daten abrufen

Die Erstellung eines Visualisierungselements in Grafana beginnt mit einer Datenanforderung von der Quelle, in unserem Fall von Zabbix. Mithilfe von Abfragen müssen wir alle Metriken abrufen, die wir im Diagramm verwenden möchten. Metrikdetails sind die Namen von Datenelementen in Zabbix. Sie können sowohl eine separate Metrik als auch einen Satz mit Filterung durch einen regulären Ausdruck angeben. In meinem Beispiel enthält das Feld „Item“ den Ausdruck: „/(^line 1)|(availability)|(zucchini)/“ – das bedeutet: Wählen Sie alle Metriken aus, deren Name unbedingt mit „line 1“ beginnt oder das Wort „availability“ enthält „ oder das Wort „Zucchini“ enthält

Grafana+Zabbix: Visualisierung der Produktionslinie
Ein Beispiel für die Einrichtung einer Anfrage nach Daten zu den Motoren der ersten Linie und der Verfügbarkeit von Rohstoffen

Datenkonvertierung

Die Quelldaten liegen möglicherweise nicht immer in der Form vor, in der wir sie anzeigen müssen. Wir haben beispielsweise minutengenaue Daten zum Gewicht eines Produkts in einem Behälter (kg) und möchten die Füllrate in t/h anzeigen. Ich mache das so: Ich nehme die Gewichtsdaten und wandle sie mit der Delta-Graphana-Funktion um, die die Differenz zwischen den metrischen Werten berechnet, sodass das aktuelle Gewicht in kg/min umgerechnet wird. Dann multipliziere ich mit 0.06, um das Ergebnis auf Tonnen/Stunde zu bringen. Da die Gewichtsmetrik in mehreren Abfragen verwendet wird, gebe ich ihr einen neuen Alias ​​(setAlias) und verwende ihn in der Renderregel.

Grafana+Zabbix: Visualisierung der Produktionslinie
Ein Beispiel für die Verwendung des Delta-Parameters und eines Multiplikators und das Umbenennen einer Metrik in einer Abfrage

Hier ist ein weiteres Beispiel für eine Datentransformation: Ich musste die Anzahl der Chargen berechnen (Zyklusstart = Motorstart). Die Metrik wird basierend auf dem Motorstatus „Leitung 1 – Tankpumpe 1 (Status)“ berechnet. Transformation: Wir ändern die Daten der ursprünglichen Metrik mit der Delta-Funktion (Wertdifferenz), sodass die Metrik den Wert „+1“ zum Starten der Engine, „-1“ zum Stoppen und „0“ hat, wenn die Engine dies nicht tut seinen Status ändern. Dann entferne ich alle Werte kleiner als 1 und summiere sie. Das Ergebnis ist die Anzahl der Motorstarts.

Grafana+Zabbix: Visualisierung der Produktionslinie
Beispiel für die Konvertierung von Daten vom aktuellen Status in die Anzahl der Starts

Nun zur Visualisierung selbst

In den Anzeigeeinstellungen gibt es eine Schaltfläche „Zeichnung bearbeiten“, sie startet einen Editor, in dem Sie ein Diagramm zeichnen können. Jedes Objekt im Diagramm hat seine eigenen Parameter. Wenn Sie beispielsweise Schriftarteinstellungen im Editor festlegen, werden diese auf die Datenvisualisierung in Grafana angewendet.

Grafana+Zabbix: Visualisierung der Produktionslinie
So sieht der Editor in Draw.io aus

Nach dem Speichern des Schemas erscheint es im Diagramm und es ist möglich, Regeln zum Ändern von Elementen zu erstellen.

In den Parametern () geben wir an:

  • Optionen – Legen Sie den Namen der Regel (Regelname), den Namen oder Alias ​​der Metrik fest, deren Daten verwendet werden (Auf Metriken anwenden). Die Art der Datenaggregation (Aggregation) beeinflusst das Endergebnis der Metrik. Last bedeutet also, dass der letzte Wert ausgewählt wird, avg bedeutet der Durchschnittswert für den in der oberen rechten Ecke ausgewählten Zeitraum.
  • Schwellenwerte – Parameter Schwellenwerte, beschreibt die Logik der Farbanwendung, d. h. die ausgewählte Farbe wird abhängig von den Metrikdaten auf die Elemente im Diagramm angewendet. Wenn in meinem Beispiel der Metrikwert „0“ ist, ist der Status „Ok“, die Farbe ist grün, wenn der Wert „>1“ ist, ist der Status „Kritisch“ und die Farbe ist rot.
  • „Farb-/Tooltip-Zuordnungen“ und „Beschriftungs-/Textzuordnungen“ – Auswahl eines Schaltkreiselements und seines Verhaltensszenarios. Im ersten Szenario wird das Objekt übermalt, im zweiten wird es Text mit Daten aus der Metrik enthalten. Um ein Objekt im Diagramm auszuwählen, müssen Sie auf das Schaltkreiszeichen drücken und mit der Maus auf das Diagramm klicken.

Grafana+Zabbix: Visualisierung der Produktionslinie
In diesem Beispiel male ich die Pumpe und ihren Pfeil rot an, wenn sie funktioniert, und grün, wenn sie nicht funktioniert.

Mit Hilfe des Flowcharting-Plugins ist es mir gelungen, ein Diagramm der gesamten Linie zu zeichnen, auf dem:

  1. Die Farbe der Aggregate ändert sich je nach Status
  2. Es gibt einen Alarm wegen Produktmangel in den Behältern
  3. Die eingestellte Motorfrequenz wird angezeigt
  4. Füll-/Entladerate des ersten Tanks
  5. die Anzahl der Linienbetriebszyklen (Batch) wird gezählt

Grafana+Zabbix: Visualisierung der Produktionslinie
Visualisierung der Produktionslinie

Erlebe die Kraft effektiver Ergebnisse

Das Schwierigste für mich war, die Daten von den Controllern zu bekommen. Dank der Vielseitigkeit von Zabbix in Bezug auf die Datenerfassung und der Flexibilität von Grafana durch Plugins dauerte die Erstellung eines umfassenden Bildschirms zur Überwachung der Produktionslinie nur wenige Tage. Die Visualisierung ermöglichte die Anzeige von Diagrammen und Statusstatistiken sowie einen einfachen Zugriff über das Internet für alle Interessierten – all dies ermöglichte eine schnelle Erkennung von Engpässen und ineffizienter Nutzung von Aggregaten.

Abschluss

Das Zabbix + Grafana-Bundle hat mir sehr gut gefallen und ich empfehle, darauf zu achten, wenn Sie Daten von Controllern oder Sensoren schnell verarbeiten müssen, ohne komplexe kommerzielle Produkte programmieren oder implementieren zu müssen. Natürlich wird dies kein Ersatz für professionelle SCADA-Systeme sein, aber als Werkzeug zur zentralen Überwachung der gesamten Produktion reicht es aus.

Source: habr.com

Kommentar hinzufügen