In diesem Artikel möchte ich meine Erfahrungen mit den Open-Source-Systemen Zabbix und Grafana teilen, um die BetriebsablĂ€ufe in Produktionslinien zu visualisieren. Die Informationen könnten fĂŒr diejenigen nĂŒtzlich sein, die nach einer schnellen Möglichkeit suchen, gesammelte Daten visuell darzustellen oder Analysen in Projekten der Industrieautomatisierung oder des IoT durchzufĂŒhren. Der Artikel ist kein detailliertes Handbuch, sondern eher ein Konzept fĂŒr ein Ăberwachungssystem, das auf Open-Source-Software fĂŒr Produktionsunternehmen basiert.
Werkzeugset
Zabbix â es wird schon lange zur Ăberwachung der IT-Infrastruktur des Werks eingesetzt. Das System hat sich als so praktisch und vielseitig erwiesen, dass wir begonnen haben, Daten von Produktionslinien, Sensoren und Controllern darin zu speichern. Dies ermöglichte es uns, alle Metrikdaten an einem Ort zu sammeln, einfache Grafiken ĂŒber den Ressourcenverbrauch und die LeistungsfĂ€higkeit der GerĂ€te zu erstellen, aber wir vermissten sehr die Analysen und ansprechenden Grafiken.
Grafana â ist ein leistungsstarkes Tool zur Analyse und Visualisierung von Daten. Eine Vielzahl von Plugins ermöglicht es, Daten aus verschiedenen Quellen (zabbix, clickhouse, influxDB) abzurufen, sie in Echtzeit zu verarbeiten (z. B. Durchschnittswerte, Summen, Differenzen zu berechnen) und unterschiedliche Diagramme zu erstellen (von einfachen Linien und Tachometern bis hin zu komplexen Diagrammen).
Draw.io â ist ein Service, der es ermöglicht, im Online-Editor von einem einfachen Flussdiagramm bis hin zu Grundrissen zu zeichnen. Es stehen viele vorgefertigte Vorlagen und gezeichnete Objekte zur VerfĂŒgung. Daten können in alle gĂ€ngigen Grafikformate oder XML exportiert werden.
Zusammengefasst
Es gibt viele Artikel darĂŒber, wie man Grafana und Zabbix installiert und konfiguriert. Ich werde die wichtigsten Punkte der Konfiguration erlĂ€utern.
In Zabbix Server wird ein "Netzwerkknoten" (host) erstellt, dem "Datenelemente" (item) mit Metriken von unseren Sensoren zugeordnet sind. Die Namen der Knoten und Datenelemente sollten im Voraus sinnvoll gewĂ€hlt und möglichst strukturiert sein, da wir sie in Grafana ĂŒber regulĂ€re AusdrĂŒcke abrufen werden. Dieser Ansatz ist praktisch, da man mit einer einzigen Anfrage Daten von einer Gruppe von Elementen erhalten kann.
Um Grafana einzurichten, mĂŒssen zusĂ€tzliche Plugins installiert werden:
- Zabbix von Alexander Zobnin (alexanderzobnin-zabbix-app) â Integration mit Zabbix
- natel-discrete-panel â Plugin fĂŒr diskrete Visualisierung auf einem horizontalen Diagramm
- pierosavi-imageit-panel â Plugin zur Anzeige von Daten ĂŒber Ihrem eigenen Bild
- agenty-flowcharting-panel â Plugin fĂŒr die dynamische Visualisierung von Diagrammen aus draw.io
Die Integration mit Zabbix wird in Grafana unter dem MenĂŒpunkt ConfigurationData sourcesZabbix konfiguriert. Dort muss die API-Adresse des Zabbix-Servers angegeben werden, bei mir ist das , sowie der Benutzername und das Passwort fĂŒr den Zugriff. Wenn alles richtig gemacht wurde, erscheint beim Speichern der Einstellungen eine Nachricht mit der API-Version: Zabbix API-Version: 5.0.1
Das Dashboard erstellen
Hier beginnt die Magie von Grafana und ihren Plugins.
Das Plugin natel-discrete-panel
Wir haben Daten ĂŒber den Status der Motoren an den Linien (lĂ€uft = 1, lĂ€uft nicht = 0). Mit dem diskreten Diagramm können wir eine Skala erstellen, die zeigt: den 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. Es wird sofort sichtbar, wie viel Zeit es im Leerlauf ist und in welchen Modi es am hĂ€ufigsten betrieben wird. Es können viele Daten vorhanden sein, und es besteht die Möglichkeit, diese nach Bereichen zu aggregieren sowie Werte zu transformieren (wenn der Wert â1â ist, dann als âEINâ anzeigen).
Plugin pierosavi-imageit-panel
Imageit ist besonders nĂŒtzlich, wenn Sie bereits ein gezeichnetes Schema oder einen Raumplan haben, auf den Sie die Daten von Sensoren anwenden möchten. In den Visualisierungseinstellungen mĂŒssen Sie die URL zur Bilddatei angeben und die gewĂŒnschten Sensor-Elemente hinzufĂŒgen. Das Element wird auf dem Bild angezeigt und kann mit der Maus an die gewĂŒnschte Stelle platziert werden.

Schema des Ofens mit Temperatur- und Druckmetriken
Plugin agenty-flowcharting-panel
Ich möchte genauer ĂŒber die Erstellung von Visualisierungen im FlowCharting sprechen, da dies ein unglaublich funktionales Werkzeug ist. Es ermöglicht die Erstellung eines dynamischen Diagramms, dessen Elemente auf die Werte von Metriken reagieren (Farbe, Position, Name usw. Ă€ndern).
Daten abrufen
Die Erstellung eines Visualisierungselements in Grafana beginnt mit der Abfrage von Daten aus der Quelle, in diesem Fall Zabbix. Mit Abfragen mĂŒssen alle Metriken abgerufen werden, die wir im Diagramm verwenden möchten. Die Metrikdetails sind die Namen der Datenelemente in Zabbix, wobei sowohl eine einzelne Metrik als auch mehrere mit Filterung durch regulĂ€re AusdrĂŒcke angegeben werden können. In meinem Beispiel enthĂ€lt das Feld Item den Ausdruck: "/(^linie 1)|(vorhanden)|(zucchini)/" â das bedeutet: WĂ€hlen Sie alle Metriken aus, deren Name genau mit "linie 1" beginnt oder das Wort "vorhanden" enthĂ€lt oder das Wort "zucchini" enthĂ€lt.

Beispiel fĂŒr die Konfiguration einer Datenanfrage zu Motoren der ersten Linie und dem Vorhandensein von Rohstoffen.
Datenumwandlung
Rohdaten sind nicht immer in der Form vorhanden, die wir fĂŒr die Anzeige benötigen. Zum Beispiel haben wir minutengenaue Daten ĂŒber das Gewicht eines Produkts in einem BehĂ€lter (kg), und wir mĂŒssen die FĂŒllgeschwindigkeit in t/h anzeigen. Ich mache das folgendermaĂen: Ich nehme die GewichtsdatensĂ€tze und wandle sie mit der Delta-Funktion von Grafana um, die die Differenz zwischen den Metriken berechnet, sodass das aktuelle Gewicht in kg/min umgewandelt wird. Dann multipliziere ich mit 0,06, um das Ergebnis in Tonnen pro Stunde zu erhalten. Da die Gewichtsmessung in mehreren Abfragen verwendet wird, gebe ich ihr ein neues Alias (setAlias) und werde es in der Visualisierungsregel nutzen.

Beispiel fĂŒr die Verwendung des Delta-Parameters, den Multiplikator und die Umbenennung der Metrik in der Abfrage
Hier ist ein weiteres Beispiel fĂŒr die Datenumwandlung: Ich musste die Anzahl der Motorstarts zĂ€hlen (Zyklusbeginn = Motorstart). Die Metrik wird basierend auf dem Status des Motors "Linie 1 â Pumpenabsaugung aus Tank 1 (Status)" berechnet. Umwandlung: Die Eingangsdaten der Metrik Ă€ndern wir mit der Funktion delta (Differenz der Werte), sodass in der Metrik der Wert â+1â fĂŒr den Motorstart, â-1â fĂŒr die Abschaltung und â0â fĂŒr einen unverĂ€nderten Motorstatus angezeigt wird. AnschlieĂend entferne ich alle Werte unter 1 und summiere sie. Im Ergebnis erhalte ich die Anzahl der Motorstarts.
![]()
Beispiel fĂŒr die Umwandlung von Daten aus dem aktuellen Status in die Anzahl der Motorstarts.
Jetzt zur Visualisierung selbst.
In den Anzeigeeinstellungen gibt es die SchaltflĂ€che âEdit Drawâ, die den Editor öffnet, in dem man ein Diagramm zeichnen kann. Jedes Objekt im Diagramm hat seine eigenen Parameter. Wenn man beispielsweise die Schriftarteinstellungen im Editor angibt, werden diese auf die Datenvisualisierung in Grafana angewendet.

So sieht der Editor in Draw.io aus.
Nach dem Speichern des Diagramms erscheint es in Grafana, und man kann Regeln zur Ănderung der Elemente erstellen.
In den Parametern () geben wir an:
- Optionen â definiert den Namen der Regel (Regelname), den Titel oder Alias der Metrik, die verwendet wird (Anwenden auf Metriken). Der Aggregationstyp (Aggregation) beeinflusst das Endergebnis der Metrik: Last bedeutet, dass der letzte Wert ausgewĂ€hlt wird, avg steht fĂŒr den Durchschnittswert ĂŒber den Zeitraum, der in der oberen rechten Ecke ausgewĂ€hlt wurde.
- Schwellenwerte â Parameter fĂŒr Schwellenwerte, beschreibt die Logik der Farbzuweisung, das heiĂt, die gewĂ€hlte Farbe wird auf die Elemente im Diagramm angewendet, basierend auf den Metrikdaten. In meinem Beispiel wird bei einem Metrikwert von â0â der Status âOkâ grĂŒn und bei einem Wert von â>1â ist der Status kritisch und die Farbe wird rot.
- Farb-/Tooltip-Zuordnungen und Label-/Text-Zuordnungen â Auswahl des Diagrammelements und seines Verhaltens. Im ersten Szenario wird das Objekt eingefĂ€rbt, im zweiten Szenario erscheint Text mit den Metrikdaten auf ihm. Um das Objekt im Diagramm auszuwĂ€hlen, klicken Sie auf das Kettensymbol und dann mit der Maus auf das Diagramm.

In diesem Beispiel fĂ€rbe ich die Pumpe und ihren Pfeil rot, wenn sie funktioniert, und grĂŒn, wenn nicht.
Mit dem Plugin Flowcharting ist es mir gelungen, das gesamte Liniendiagramm zu zeichnen, auf dem:
- die Farben der Aggregate entsprechend ihrem Status geÀndert werden.
- Es gibt eine Alarmmeldung ĂŒber fehlende Produkte in den BehĂ€ltern.
- Die Einstellung der Frequenzen der Motoren wird angezeigt.
- FĂŒll- / Entleerungsgeschwindigkeit des ersten BehĂ€lters.
- Die Anzahl der Produktionslinienzyklen (Mischungen) wird gezÀhlt.

Visualisierung der ProduktionslinienaktivitÀt.
Ergebnis
Die gröĂte Herausforderung fĂŒr mich war es, Daten von den Controllern zu erhalten. Dank der Vielseitigkeit von Zabbix bei der Datenerfassung und der FlexibilitĂ€t von Grafana durch Plugins benötigte ich nur ein paar Tage, um ein umfassendes Ăberwachungsdashboard fĂŒr die Produktionslinie zu erstellen. Die Visualisierung ermöglichte die Ansicht von Diagrammen und Statusstatistiken, plus einen einfachen Zugang ĂŒber das Web fĂŒr alle Interessierten â all dies half schnell, EngpĂ€sse und ineffiziente Nutzung der Aggregate zu erkennen.
Fazit
Ich war sehr begeistert von der Kombination Zabbix + Grafana und empfehle, darauf zu achten, wenn Sie Daten von Controllern oder Sensoren schnell verarbeiten mĂŒssen, ohne Programmierung oder die Implementierung komplexer kommerzieller Produkte. NatĂŒrlich wird dies professionelle SCADA-Systeme nicht ersetzen, aber es reicht als Werkzeug fĂŒr die zentralisierte Ăberwachung der gesamten Produktion.
Quelle: habr.com
