In diesem Artikel möchte ich meine Erfahrungen mit den Open-Source-Systemen Zabbix und Grafana zur Visualisierung der Produktionslinien teilen. Die Informationen könnten fĂŒr diejenigen nĂŒtzlich sein, die nach einer schnellen Möglichkeit suchen, gesammelte Daten in Projekten der Industrieautomatisierung oder IoT visuell darzustellen oder zu analysieren. Der Artikel ist kein detailliertes Handbuch, sondern eher ein Konzept eines Ăberwachungssystems, das auf Open-Source-Software fĂŒr Produktionsunternehmen basiert.
Werkzeug
Zabbix â dieses nutzen wir schon lange zur Ăberwachung der IT-Infrastruktur des Werks. Das System erwies sich als so praktisch und vielseitig, dass wir begannen, Daten von den Produktionslinien, Sensoren und Steuerungen einzugeben. Dadurch konnten wir alle Metrikdaten an einem Ort sammeln, einfache Grafiken ĂŒber den Ressourcenverbrauch und die Leistung der GerĂ€te erstellen, aber es fehlte an Analysen und ansprechend gestalteten Grafiken.
Grafana â dies ist ein leistungsstarkes Werkzeug zur Analyse und Visualisierung von Daten. Eine groĂe Anzahl von Plugins ermöglicht es, Daten aus verschiedenen Quellen (Zabbix, Clickhouse, InfluxDB) abzurufen, sie in Echtzeit zu verarbeiten (Durchschnittswerte, Summen, Differenzen usw. zu berechnen) und die unterschiedlichsten Grafiken zu zeichnen (von einfachen Linien, Tachometern, Tabellen bis hin zu komplexen Diagrammen).
Draw.io â ein Dienst, der es ermöglicht, in einem Online-Editor von einfachen Blockdiagrammen bis hin zu RaumplĂ€nen zu zeichnen. Es gibt viele fertige Vorlagen und gezeichnete Objekte. Daten können in alle gĂ€ngigen Grafikformate oder XML exportiert werden.
Jetzt bringen wir alles zusammen.
Es gibt viele Artikel, wie man Grafana und Zabbix installiert und konfiguriert, ich werde die Hauptpunkte der Konfiguration erlÀutern.
In Zabbix Server wird ein "Netzknoten" (Host) erstellt, dem "Datenelemente" (Item) mit Metriken von unseren Sensoren zugeordnet werden. Es ist ratsam, die Namen von Knoten und Datenelementen im Voraus zu planen und so strukturiert wie möglich zu gestalten, da wir ĂŒber regulĂ€re AusdrĂŒcke darauf von Grafana zugreifen werden. Dieser Ansatz ist praktisch, da man mit einer Abfrage Daten von einer Gruppe von Elementen erhalten kann.
FĂŒr die Konfiguration von Grafana sind zusĂ€tzliche Plugins erforderlich:
- Zabbix von Alexander Zobnin (alexanderzobnin-zabbix-app) â Integration mit Zabbix
- natel-discrete-panel â Plugin fĂŒr die diskrete Visualisierung auf einem horizontalen Diagramm
- pierosavi-imageit-panel â Plugin zur Anzeige von Daten auf einem eigenen Bild
- agenty-flowcharting-panel â ein Plugin fĂŒr die dynamische Visualisierung von Diagrammen aus draw.io
Die Integration mit Zabbix wird in Grafana unter dem MenĂŒpunkt ConfigurationData sourcesZabbix eingerichtet. Dort muss die Adresse des Zabbix-Server-APIs angegeben werden, bei mir ist das , sowie Benutzername und Passwort fĂŒr den Zugriff. Wenn alles korrekt gemacht wurde, wird beim Speichern der Einstellungen eine Nachricht mit der API-Versionsnummer angezeigt: Zabbix API-Version: 5.0.1
Dashboard erstellen
Hier beginnt die wahre Magie von Grafana und ihren Plugins.
Plugin natel-discrete-panel
Wir haben Daten ĂŒber den Status der Motoren an den Linien (lĂ€uft = 1, lĂ€uft nicht = 0). Mit dem Diagramm 'discrete' können wir eine Skala zeichnen, auf der sichtbar ist: der Status des Motors, wie lange er in Minuten/Stunden oder % gearbeitet hat und wie oft er gestartet wurde.

Visualisierung der Motorstatus
Meiner Meinung nach ist dies eines der besten Diagramme zur Visualisierung der Leistung von GerÀten. Sofort erkennt man, wie lange es stillsteht und in welchen Modi es am hÀufigsten lÀuft. Es können viele Daten vorhanden sein, und es gibt die Möglichkeit, sie nach Bereichen zu aggregieren und Werte zu transformieren (wenn der Wert "1" ist, dann als "EIN" anzeigen)
Plugin pierosavi-imageit-panel
Imageit eignet sich gut, wenn Sie bereits ein gezeichnetes Diagramm oder einen Grundriss haben, auf dem Sie Daten von Sensoren anzeigen möchten. In den Visualization-Einstellungen mĂŒssen Sie die URL zur Bilddatei angeben und die gewĂŒnschten Elemente sensor hinzufĂŒgen. Das Element erscheint im Bild und kann mit der Maus an die gewĂŒnschte Position verschoben werden.

Diagramm des Ofens mit den Metriken fĂŒr Temperatur und Druck
Plugin agenty-flowcharting-panel
Ăber die Erstellung der FlowCharting-Visualisierung möchte ich ausfĂŒhrlicher berichten, da dies ein unglaublich funktionales Werkzeug ist. Es ermöglicht die Erstellung eines dynamischen Mnemogramms, dessen Elemente auf die Werte der Metriken reagieren (Farben, Position, Bezeichnung usw. Ă€ndern).
Daten abrufen
Die Erstellung eines jeden Visualisierungs-Elements in Grafana beginnt mit einer Datenanfrage aus der Quelle, in unserem Fall ist das Zabbix. Mithilfe von Anfragen mĂŒssen wir alle Metriken erhalten, die wir im Diagramm verwenden möchten. Die Metrik-Requisiten sind die Namen der Datenelemente in Zabbix, die entweder als einzelne Metrik oder als Menge mit einer Filterung ĂŒber regulĂ€re AusdrĂŒcke angegeben werden können. In meinem Beispiel enthĂ€lt das Feld Item den Ausdruck: â/^(linie 1)|(vorhanden)|(zucchini)/â â dies bedeutet: Alle Metriken auswĂ€hlen, deren Name genau mit âlinie 1â beginnt, oder das Wort âvorhandenâ oder das Wort âzucchiniâ enthĂ€lt.

Beispiel einer Abfrage-Konfiguration fĂŒr Informationen zu Motoren der ersten Linie und dem Vorhandensein von Rohmaterial.
Datentransformation
Die Ausgangsdaten sind möglicherweise nicht immer in der Form, in der wir sie anzeigen möchten. Zum Beispiel haben wir minĂŒtliche Daten ĂŒber das Gewicht eines Produkts im BehĂ€lter (kg), und wir mĂŒssen die FĂŒllgeschwindigkeit in t/h anzeigen. Ich mache das folgendermaĂen: Ich nehme die Gewichtsdaten und wandele sie mit der Grafana-Funktion delta um, die die Differenz zwischen den Metrikwerten berechnet, wodurch das aktuelle Gewicht in kg/min umgewandelt wird. Dann multipliziere ich mit 0.06, um das Ergebnis in Tonnen/Stunde zu konvertieren. Da die Gewicht-Metrik in mehreren Abfragen verwendet wird, gebe ich ihr einen neuen Alias (setAlias) und werde ihn in der Visualisierungsregel verwenden.

Beispiel fĂŒr die Verwendung des delta-Parameters, eines Multiplikators und die Umbenennung der Metrik in der Abfrage.
Hier ist ein weiteres Beispiel zur Datenumwandlung: Ich musste die Anzahl der Mischungen zĂ€hlen (Beginn des Zyklus = Motorstart). Die Metrik wird basierend auf dem Status des Motors 'Linie 1 â Pumpe aus Tank 1 (Status)' berechnet. Umwandlung: Die Daten der ursprĂŒnglichen Metrik werden mit der delta-Funktion (Differenz der Werte) geĂ€ndert, sodass in der Metrik der Wert â+1â fĂŒr den Motorstart, â-1â fĂŒr die Stoppzeit und â0â fĂŒr den Fall, dass der Motor seinen Status nicht Ă€ndert, enthalten ist. Dann entferne ich alle Werte unter 1 und summiere sie. Das Ergebnis ergibt die Anzahl der Motorstarts.
![]()
Beispiel fĂŒr die Umwandlung von Daten vom aktuellen Status in die Anzahl der Starts.
Jetzt zur Visualisierung selbst.
In den Anzeigeeinstellungen gibt es eine SchaltflĂ€che âEdit Drawâ, die den Editor öffnet, in dem man ein Diagramm zeichnen kann. Jedes Objekt im Diagramm hat eigene Parameter. Wenn beispielsweise die Schriftarteinstellungen im Editor angegeben werden, werden diese auf die Datenvisualisierung in Grafana angewendet.

So sieht der Editor in Draw.io aus
Nach dem Speichern des Schemas wird es in Grafana angezeigt und Sie können Regeln zur Ănderung von Elementen erstellen.
In den Parametern () geben wir an:
- Options â der Name der Regel (Regelname), der Name oder Alias der Metrik, deren Daten verwendet werden (Auf Anwendung der Metrik). Der Typ der Datenaggregation (Aggregation) beeinflusst das Endergebnis der Metrik. So bedeutet Last, dass der letzte Wert ausgewĂ€hlt wird, avg â der Durchschnittswert ĂŒber den im oberen rechten Bereich gewĂ€hlten Zeitraum.
- Thresholds â der Parameter fĂŒr Schwellenwerte beschreibt die Logik der Farbanwendung, das heiĂt, die ausgewĂ€hlte Farbe wird abhĂ€ngig von den Metrikdaten auf die Elemente im Schema angewendet. In meinem Beispiel wird bei einem Metrikwert von "0" der Status "Ok" grĂŒn und bei einem Wert von ">1" wird der Status "Critical" und die Farbe rot sein.
- Color/Tooltip Mappings und Label/Text Mappings â wĂ€hlen Sie das Element des Schemas und das Szenario seines Verhaltens aus. Im ersten Szenario wird das Objekt gefĂ€rbt, im zweiten â es wird Text mit Daten aus der Metrik angezeigt. Um ein Objekt im Schema auszuwĂ€hlen, mĂŒssen Sie das Kettensymbol drĂŒcken und mit der Maus auf das Schema klicken.

In diesem Beispiel fĂ€rbe ich die Pumpe und ihren Pfeil rot, wenn sie lĂ€uft, und grĂŒn, wenn nicht.
Mit dem Plugin Flowcharting ist es mir gelungen, das Schema der gesamten Linie zu zeichnen, auf der:
- die Farben der Aggregate entsprechend ihrem Status wechseln
- es eine Alarmierung fĂŒr das Fehlen von Produkt in den BehĂ€ltern gibt
- die Einstellung der Frequenzen der Motoren angezeigt wird
- die Geschwindigkeit der BefĂŒllung/Entleerung des ersten Tanks
- die Anzahl der Betriebszyklen der Linie (Mischungen) gezÀhlt wird

Visualisierung des Betriebs der Produktionslinie
Ergebnis
Die gröĂte Herausforderung fĂŒr mich war das Abrufen von Daten von den Controllern. Dank der Vielseitigkeit von Zabbix beim Abrufen von Daten und der FlexibilitĂ€t von Grafana durch Plugins benötigte ich nur ein paar Tage, um einen umfassenden Monitoring-Bildschirm fĂŒr die Produktionslinie zu erstellen. Die Visualisierung ermöglichte es, Diagramme und Statistiken zu den ZustĂ€nden einzusehen, plus ein einfacher Zugriff ĂŒber das Web fĂŒr alle Interessierten â all dies ermöglichte eine schnelle Identifizierung von EngpĂ€ssen und ineffizientem Einsatz von Aggregaten.
Fazit
Ich mochte die Kombination Zabbix+Grafana sehr und empfehle, darauf zu achten, wenn Sie Daten von Controllern oder Sensoren ohne Programmierung oder die EinfĂŒhrung komplexer kommerzieller Produkte schnell verarbeiten mĂŒssen. Sicherlich wird dies professionelle SCADA-Systeme nicht ersetzen, aber als Werkzeug zur zentralen Ăberwachung der gesamten Produktion ist es ausreichend.
Quelle: habr.com
