{"id":20581,"date":"2021-01-26T10:57:13","date_gmt":"2021-01-26T09:57:13","guid":{"rendered":"https:\/\/www.inovex.de\/blog\/?p=20581"},"modified":"2025-12-17T07:59:38","modified_gmt":"2025-12-17T06:59:38","slug":"kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana","status":"publish","type":"post","link":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/","title":{"rendered":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana"},"content":{"rendered":"<p>Im letzten Teil dieser Artikelserie zu KubeEdge wird in einem Beispiel gezeigt, wie Daten von einem Sensor \u00fcber die Edge bis hin zur Cloud gesendet werden. Die gesendeten Daten werden in der Cloud in einer Time Series Database abgelegt und anschlie\u00dfend \u00fcber Grafana visualisiert.<\/p>\n<p><!--more--><\/p>\n<div style=\"background-color: #f2f5fe; padding: 10px;\">Im <a href=\"https:\/\/www.inovex.de\/blog\/einfuehrung-in-kubeedge\/\">ersten Artikel<\/a> wurde der Aufbau und die Funktionsweise von KubeEdge beschrieben. Im <a href=\"https:\/\/www.inovex.de\/blog\/kubeedge-einrichten\/\">zweiten Teil<\/a> wurde KubeEdge deployed. Es wurde ein Kubernetes Cluster aufgesetzt in dem der CloudCore deployed wurde. Der EdgeCore wurde auf einer virtuellen Maschine als Systemdienst gestartet.<\/div>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_82_2 counter-hierarchy ez-toc-counter ez-toc-custom ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\"><\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Anwendungsfall\" >Anwendungsfall<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Funktionsweise-und-Grenzen-des-Anwendungsfalles\" >Funktionsweise und Grenzen des Anwendungsfalles<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#kubeedge-database\" >kubeedge-database<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Grafana\" >Grafana<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Sensor\" >Sensor<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Umsetzung-Anwendungsfall\" >Umsetzung Anwendungsfall<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#PostgreSQL-TimescaleDB\" >PostgreSQL \/ TimescaleDB<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#kubeedge-database-2\" >kubeedge-database<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#View-Edge-Applikation\" >View (Edge-Applikation)<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Sensor-2\" >Sensor<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#Quellen\" >Quellen<\/a><\/li><\/ul><\/nav><\/div>\n<h2><span class=\"ez-toc-section\" id=\"Anwendungsfall\"><\/span>Anwendungsfall<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-20529 size-full\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0.png\" alt=\"Abbildung Ansicht Grafana\" width=\"940\" height=\"618\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0.png 940w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0-300x197.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0-768x505.png 768w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0-400x263.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/pasted-image-0-360x237.png 360w\" sizes=\"auto, (max-width: 940px) 100vw, 940px\" \/><\/p>\n<p>Im Anwendungsfall wird die CPU-Temperatur oder ein simulierter Wert erhoben und \u00fcber MQTT an den EdgeCore gesendet. Der EdgeCore \u00fcbertr\u00e4gt die Daten mit einem zus\u00e4tzlichen MQTT Topic an die Kubernetes Cloud. Der DeviceController des CloudCores tr\u00e4gt die Daten daraufhin in die entsprechende Kubernetes-Ressource ein. Ein weiteres Programm, das ebenfalls im Cluster ausgef\u00fchrt wird, speichert sie in einer Timeseries Datenbank und Grafana visualisiert sie in einem Dashboard \u2013 wie in der Abbildung \u201eGrafana Ansicht\u201e dargestellt.<\/p>\n<figure id=\"attachment_20582\" aria-describedby=\"caption-attachment-20582\" style=\"width: 300px\" class=\"wp-caption alignleft\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-20582 size-medium\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/components-300x145.png\" alt=\"Komponenten Deployment\" width=\"300\" height=\"145\" srcset=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/components-300x145.png 300w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/components-400x193.png 400w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/components-360x174.png 360w, https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/components.png 476w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><figcaption id=\"caption-attachment-20582\" class=\"wp-caption-text\">Komponenten Deployment<\/figcaption><\/figure>\n<p>Insgesamt m\u00fcssen f\u00fcr den Anwendungsfall vier Programmen auf der Edge oder der Cloud deployed werden. Die Abbildung \u201eKomponenten Deployment\u201c zeigt, wo die Systeme deployed werden.<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Funktionsweise-und-Grenzen-des-Anwendungsfalles\"><\/span>Funktionsweise und Grenzen des Anwendungsfalles<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<h3><span class=\"ez-toc-section\" id=\"kubeedge-database\"><\/span>kubeedge-database<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Die kubeedge-database Applikation wird die Daten aus den Ressourcen auslesen und in die Datenbank eintragen. Daf\u00fcr werden die Device-Ressourcen abgerufen, die im vorherigen Artikel angelegt wurden. \u00dcber die Kubernetes API werden die Daten ausgelesen und in die Datenbank \u00fcberf\u00fchrt.. Die nachfolgende Tabelle definiert, was die einzelnen Spalten f\u00fcr eine Bedeutung haben.<\/p>\n<table style=\"height: 251px; width: 846px;\" width=\"1331\">\n<tbody>\n<tr>\n<td style=\"width: 117.567px;\"><b>Column<\/b><\/td>\n<td style=\"width: 119.783px;\"><b>Datentyp<\/b><\/td>\n<td style=\"width: 586.65px;\"><b>Beschreibung<\/b><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">time<\/td>\n<td style=\"width: 119.783px;\">Timestamp<\/td>\n<td style=\"width: 586.65px;\">Zeitstempel der Datenerhebung.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">value<\/td>\n<td style=\"width: 119.783px;\">Text<\/td>\n<td style=\"width: 586.65px;\">Wert des Sensors.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">namespace<\/td>\n<td style=\"width: 119.783px;\">Text<\/td>\n<td style=\"width: 586.65px;\">Kubernetes Namespace des Devices.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">sensor<\/td>\n<td style=\"width: 119.783px;\">Text<\/td>\n<td style=\"width: 586.65px;\">Name des Sensors.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">active<\/td>\n<td style=\"width: 119.783px;\">Bool<\/td>\n<td style=\"width: 586.65px;\">Dieser Wert zeigt an ob ein Device noch aktiv ist oder gel\u00f6scht wurde.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 117.567px;\">device<\/td>\n<td style=\"width: 119.783px;\">Text<\/td>\n<td style=\"width: 586.65px;\">Device Name<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Durch den Namespace, den Namen und das Device kann jeder Sensor eindeutig zugeordnet werden. Die eindeutige Zuordnung eines jeden Sensors hilft bei der Visualisierung der Daten in Grafana. Die Tabelle wird automatisiert beim Starten des Programms angelegt.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Grafana\"><\/span>Grafana<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Grafana ist ein Open Source Tool, das Daten \u00fcber Dashboards visualisiert. Es wird h\u00e4ufig in Verbindung mit dem Monitoring Tool Prometheus eingesetzt. In diesem Anwendungsfall wird anstatt des Prometheus Backends ein PostgreSQL ausgew\u00e4hlt. Die Daten aus der PostgreSQL k\u00f6nnen so direkt in einen Graphen visualisiert werden. Die Verwendung von Variablen in der Abfrage erm\u00f6glicht es, die Anfrage auf unterschiedliche Devices und Sensoren zu begrenzen. Damit die Daten in einem Graphen angezeigt werden k\u00f6nnen, m\u00fcssen sie zu einem Zahlenwert konvertiert werden. PostgreSQL \/ TimescaleDB<\/p>\n<p>PostgreSQL ist ein Datenbankmanagement-System auf Open-Source-Basis, \u00e4hnlich wie MySQL oder MariaDB. In diesem Anwendungsfall wurde PostgreSQL verwendet, da es \u00fcber das Plugin \u201eTimescaleDB\u201c nativ Zeitreihen unterst\u00fctzt. Die Datenbank wird in Kubernetes\u00a0 ohne persistente Speicherung der Daten betrieben. Wird die Datenbankinstanz also neugestartet, k\u00f6nnen alle Daten verloren sein. F\u00fcr eine produktive Datenbank sollte daher auf die Persistierung der Daten geachtet werden, bspw. durch ein externes Speichermedium.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"Sensor\"><\/span>Sensor<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Der Sensor ist in diesem Fall ein Programm, welches \u00fcber das Tool \u201elm-sensors\u201c die CPU Temperatur ausliest oder Zufallszahlen generiert. Die Daten werden im Anschluss an den MQTT-Broker \u00fcbertragen. Der Sensor arbeitet mit zwei Werten: die CPU-Temperatur, die dem entsprechenden gemessenen oder generierten Wert entspricht, und die die CPU-ID. Letzterer Wert wird im aktuellen Anwendungsfall nicht verwendet. Zwischen zwei gesendeten Werten vergehen in diesem Programm zehn Sekunden. Das Programm ist also in keinster Weise mit einem real existierenden Sensor vergleichbar, kann aber f\u00fcr erste Tests und ein Kennenlernen von KubeEdge gut verwendet werden.<\/p>\n<h2><span class=\"ez-toc-section\" id=\"Umsetzung-Anwendungsfall\"><\/span>Umsetzung Anwendungsfall<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>In diesem Abschnitt werden die Programme auf den entsprechenden Systemen deployed.\u00a0 F\u00fcr die Interaktion mit dem Kubernetes Cluster wird das bekannte Tool \u201ckubectl\u201c verwendet.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"PostgreSQL-TimescaleDB\"><\/span>PostgreSQL \/ TimescaleDB<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Zuerst wird die Datenbank im Cluster deployed, da einige andere Dienste auf dieser Aufbauen. Zum Deployen kann das nachfolgende Manifest genutzt werden. In der Ressource wird automatisch ein Passwort f\u00fcr die Datenbank angelegt, das auf ein entsprechend sicheres Passwort ge\u00e4ndert werden sollte. Die Datenbank wird als Kubernetes Deployment erstellt und ein Service f\u00fcr die interne Kommunikation angelegt.<\/p>\n<pre class=\"lang:yaml decode:true \" title=\"timescale_db.yaml\">apiVersion: v1\r\n\r\nkind: Secret\r\n\r\nmetadata:\r\n\r\n  name: timescale-rootpw\r\n\r\ntype: Opaque\r\n\r\nstringData:\r\n\r\n  password: changeme\r\n\r\n---\r\n\r\napiVersion: v1\r\n\r\nkind: Service\r\n\r\nmetadata:\r\n\r\n  name: timescale\r\n\r\nspec:\r\n\r\n  selector:\r\n\r\n    app: timescale\r\n\r\n  ports:\r\n\r\n    - protocol: TCP\r\n\r\n      port: 5432\r\n\r\n      targetPort: 5432\r\n\r\n      name: postgres\r\n\r\n---\r\n\r\napiVersion: apps\/v1\r\n\r\nkind: Deployment\r\n\r\nmetadata:\r\n\r\n  name: timescale\r\n\r\n  labels:\r\n\r\n    app: timescale\r\n\r\nspec:\r\n\r\n  selector:\r\n\r\n    matchLabels:\r\n\r\n      app: timescale\r\n\r\n  template:\r\n\r\n    metadata:\r\n\r\n      labels:\r\n\r\n        app: timescale\r\n\r\n    spec:\r\n\r\n      containers:\r\n\r\n      - name: timescale\r\n\r\n        image: timescale\/timescaledb:1.4.1-pg11\r\n\r\n        env:\r\n\r\n        - name: POSTGRESQL_PORT_NUMBER\r\n\r\n          value: \"5432\"\r\n\r\n        - name: POSTGRES_PASSWORD\r\n\r\n          valueFrom:\r\n\r\n            secretKeyRef:\r\n\r\n              name: timescale-rootpw\r\n\r\n              key: password\r\n\r\n        ports:\r\n\r\n        - containerPort: 5432\r\n\r\n          protocol: TCP\r\n\r\n          name: postgres\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Dieser Abschnitt beschreibt das Anlegen unterschiedlicher Rollen, die f\u00fcr einzelne Datenbanken genutzt werden sollen. Das Einrichten der Datenbankschemata wird \u00fcber den \u201ckubectl exec\u201c Befehl durchgef\u00fchrt. Dieser erlaubt es, andere Befehle direkt im Container eines Pods auszuf\u00fchren. Eine Alternative w\u00e4re das Erstellen eines Kubernetes Jobs um die Datenbankschemata zu erstellen.<\/p>\n<pre class=\"lang:sh decode:true \" title=\"Erstellung Rollen und Datenbanken\">POD_NAME=$(kubectl get po -l app=timescale -o jsonpath='{.items[0].metadata.name}')\r\n\r\nkubectl exec -ti ${POD_NAME} -- psql -h 127.0.0.1 -p 5432 -U postgres -c \"CREATE ROLE kubeedge WITH LOGIN PASSWORD 'kubeedge'; CREATE ROLE grafana WITH LOGIN PASSWORD 'grafana';\"\r\n\r\nkubectl exec -ti ${POD_NAME} -- psql -U postgres -c \"CREATE DATABASE grafana WITH OWNER grafana\"\r\n\r\nkubectl exec -ti ${POD_NAME} -- psql -U postgres -c \"CREATE DATABASE demo WITH OWNER kubeedge\"\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"kubeedge-database-2\"><\/span>kubeedge-database<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Abschlie\u00dfend wird die kubeedge-database Applikation gestartet und ebenfalls im Cluster deployed. Hierzu kann einfach die in dem Repository https:\/\/github.com\/subpathdev\/kubeedge-database liegende Definition verwendet werden. Im Anschluss muss noch das Passwort f\u00fcr die Datenbank und der entsprechende Nutzer gesetzt werden. Der Nachfolgende Codeblock zeigt, wie das Deployment ausgef\u00fchrt wird. F\u00fcr die Eingabe des Nutzers und des Passwortes wird in dem Codeblock der zuvor bereits angelegte Nutzer mit seinem Passwort gesetzt.<\/p>\n<pre class=\"lang:default decode:true \" title=\"Download kubeedge-databse Definition\">curl  https:\/\/raw.githubusercontent.com\/subpathdev\/kubeedge-database\/master\/kubernetes.yaml -o kubeedge-database.yaml\r\n\r\nsed -i 's\/user: demo\/user: kubeedge\/g' kubeedge-database.yaml\r\n\r\nsed -i 's\/password: test-password\/password: kubeedge'\/g' kubeedge-database.yaml\r\n\r\nkubectl apply -f kubeedge-database.yaml\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<h3><span class=\"ez-toc-section\" id=\"View-Edge-Applikation\"><\/span>View (Edge-Applikation)<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Zum Visualisieren wird Grafana deployed. Grafana ist in diesem Deployment so definiert, dass es zur Datensicherung die Datenbank verwendet. Das Grafana Deployment ist ebenfalls im Github Repository verf\u00fcgbar und kann mit folgendem Befehl auf das Cluster deployed werden. Hier sollte das Passwort entsprechend angepasst werden. Das Administrator-Passwort f\u00fcr Grafana wird auf verryStrongPassword gesetzt.<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Deploy Grafana\">curl https:\/\/raw.githubusercontent.com\/subpathdev\/kubeedge-database\/master\/grafana.yaml -o grafana.yaml\r\n\r\n# nun wird das Passwort ver\u00e4ndert\r\n\r\nsed -i \u2018s\/test-grafana-password\/grafana\/g\u2019 grafana.yaml\r\n\r\nkubectl apply -f grafana.yaml\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>Nun kann \u00fcber die Adresse des Master-Nodes und dem Port 30975 auf Grafana zugegriffen werden. Es existiert aktuell nur ein Nutzer (admin) mit dem Passwort \u201everryStrongPassword\u201c. Hier muss eine neue Datenbankverbindung angelegt werden. Dazu wird \u201eCreate your first data source\u201c ausgew\u00e4hlt. Als Datenquellen wird PostgreSQL selektiert. F\u00fcr die Konfigurationen dient nachfolgende Tabelle als Hilfe.<\/p>\n<p>&nbsp;<\/p>\n<table style=\"height: 179px;\" width=\"597\">\n<tbody>\n<tr>\n<td style=\"width: 173.717px;\">Konfiguration<\/td>\n<td style=\"width: 407.283px;\">Wert<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 173.717px;\">Host<\/td>\n<td style=\"width: 407.283px;\">timescale.default.svc.cluster.local<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 173.717px;\">Database<\/td>\n<td style=\"width: 407.283px;\">demo<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 173.717px;\">User<\/td>\n<td style=\"width: 407.283px;\">kubeedge<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 173.717px;\">Passwort<\/td>\n<td style=\"width: 407.283px;\">kubeedge<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 173.717px;\">SSL-Mode<\/td>\n<td style=\"width: 407.283px;\">disable<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p>Nach dem Anlegen der Datenverbindung werden die Dashboards erstellt. Am einfachsten ist es, die beiden Dashboards \u00fcber die folgenden Befehle herunterzuladen und in Grafana zu importieren.<\/p>\n<pre class=\"lang:sh decode:true\" title=\"Download Dashboards\">curl https:\/\/raw.githubusercontent.com\/subpathdev\/kubeedge-database\/master\/Devices.json -o Devices.json\r\n\r\ncurl https:\/\/raw.githubusercontent.com\/subpathdev\/kubeedge-database\/master\/Sensors.json  -o Sensors.json<\/pre>\n<p>\u00dcber das Plus-Symbol kann der Import der Dashboards ausgew\u00e4hlt werden. Mit \u201eUpload .json\u201c k\u00f6nnen die Devices.json- und Sensor.json-Dateien in Grafana importiert werden. In der Abbildung \u201cDashboard hinzuf\u00fcgen\u201c ist dieser Schritt visualisiert.<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_20583\" aria-describedby=\"caption-attachment-20583\" style=\"width: 232px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-20583 size-medium\" src=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/grafanaAddDashboardWithCircles-232x300.png\" alt=\"Screenshot: Dashboard hinzuf\u00fcgen in Grafana\" width=\"232\" height=\"300\" \/><figcaption id=\"caption-attachment-20583\" class=\"wp-caption-text\">Dashboard hinzuf\u00fcgen<\/figcaption><\/figure>\n<h3><span class=\"ez-toc-section\" id=\"Sensor-2\"><\/span>Sensor<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Zum Abschluss des Installationsabschnitts wird der Sensor auf dem Edge und im Cluster deployed. Die Anwendung steht als Container zur Verf\u00fcgung sodass diese mit den CLI-Parametern gestartet werden kann. Die Parameter sind in der nachfolgenden Tabelle mit einer Beschreibung definiert.<\/p>\n<table style=\"height: 195px;\" width=\"1317\">\n<tbody>\n<tr>\n<td style=\"width: 76.3667px;\">Parameter<\/td>\n<td style=\"width: 1224.63px;\">Beschreibung<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 76.3667px;\">deviceID<\/td>\n<td style=\"width: 1224.63px;\">Setzt die DeviceID. Diese ist beim Anlegen der Kubernetes-Ressource von Bedeutung. Der Standardwert f\u00fcr die Device ID ist: \u201c43098512438508132096394-a41fcb\u201c<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 76.3667px;\">ipAddress<\/td>\n<td style=\"width: 1224.63px;\">Ist die IP-Adresse des MQTT-Brokers inkluse des Ports. Der Standardwert ist hier \u201etcp:\/\/127.0.0.1:1884\u201c.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 76.3667px;\">user<\/td>\n<td style=\"width: 1224.63px;\">Einige MQTT-Broker unterst\u00fctzen User-Password-basierte Authentifizierung. Der MQTT-Nutzer wird mit dieser Flag gesetzt.<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 76.3667px;\">password<\/td>\n<td style=\"width: 1224.63px;\">Ist das Passwort, welches zum MQTT-Nutzer geh\u00f6rt<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 76.3667px;\">simulate<\/td>\n<td style=\"width: 1224.63px;\">Die Daten werden nicht mithilfe des Tools lm-sensors ausgelesen. Stattdessen werden random-Daten generiert und an den Broker gesendet.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Die beiden nachfolgenden Befehle zeigen, wie das Programm gestartet und das Device im Cluster angelegt wird. Zum Starten wird auf einer nicht-virtuellen Edge folgender Befehl verwendet: \u201edocker run subpathdev\/cpu_temp_mqtt_client:v0.1 -deviceID cpu-sensor-01\u201c<\/p>\n<p>Sollte eine virtuelle Edge verwendet werden, wird zus\u00e4tzlich noch das \u201esimulate\u201c-Flag gesetzt:<\/p>\n<p>\u201edocker run subpathdev\/cpu_temp_mqtt_client:v0.1 -deviceID cpu-sensor-01 -simulate\u201c<\/p>\n<p>Zum Anlegen des Devices wird zuerst ein DeviceModel erstellt. Dieses kann kann einfach aus dem Repository \u201e<a href=\"https:\/\/github.com\/subpathdev\/CpuTempMqttClient\/\">https:\/\/github.com\/subpathdev\/CpuTempMqttClient\/<\/a>\u201c entnommen werden.<\/p>\n<pre class=\"lang:sh decode:true \" title=\"angelegen der Ger\u00e4te\">kubectl apply -f https:\/\/raw.githubusercontent.com\/subpathdev\/CpuTempMqttClient\/master\/deviceModel.yaml\r\n\r\ncat &lt;&lt;EOF | kubectl apply -f -\r\n\r\napiVersion: devices.kubeedge.io\/v1alpha1\r\n\r\nkind: Device\r\n\r\nmetadata:\r\n\r\n  name: cpu-sensor-01\r\n\r\n  labels:\r\n\r\n    model: cpu-sensor\r\n\r\n    description: Cpu-Sensor\r\n\r\nspec:\r\n\r\n  deviceModelRef:\r\n\r\n    name: cpu-sensor\r\n\r\n  nodeSelector:\r\n\r\n    node-role.kubernetes.io\/edge: \"\"\r\n\r\nstatus:\r\n\r\n    twins:\r\n\r\n    propertyName: CPU_Temperatur\r\n\r\n      reported:\r\n\r\n        value: \u201c0\u201c\r\n\r\n        metadata:\r\n\r\n          type: int\r\n\r\n    propertyName: cpu_id\r\n\r\n      reported:\r\n\r\n        value: \u201c0\u201c\r\n\r\n        metadata:\r\n\r\n          type: int\r\n\r\nEOF\r\n\r\n<\/pre>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>Nun wird alle zehn Sekunden ein Wert gemessen bzw. generiert. Dieser Wert wird an den MQTT-Broker gesendet, dann an die Kubernetes API \u00fcbertragen, in der Datenbank gespeichert und \u00fcber Grafana visualisiert.<\/p>\n<p>Bei Fragen oder Anmerkungen kann die KubeEdge Community wie folgt erreicht werden:<\/p>\n<ul>\n<li aria-level=\"1\">Mailingliste ( <a href=\"https:\/\/groups.google.com\/forum\/#!forum\/kubeedge\">https:\/\/groups.google.com\/forum\/#!forum\/kubeedge<\/a> )<\/li>\n<li aria-level=\"1\">Slack-Workspace ( <a href=\"https:\/\/join.slack.com\/t\/kubeedge\/shared_invite\/enQtNjc0MTg2NTg2MTk0LWJmOTBmOGRkZWNhMTVkNGU1ZjkwNDY4MTY4YTAwNDAyMjRkMjdlMjIzYmMxODY1NGZjYzc4MWM5YmIxZjU1ZDI\">https:\/\/join.slack.com\/t\/kubeedge\/shared_invite\/enQtNjc0MTg2NTg2MTk0LWJmOTBmOGRkZWNhMTVkNGU1ZjkwNDY4MTY4YTAwNDAyMjRkMjdlMjIzYmMxODY1NGZjYzc4MWM5YmIxZjU1ZDI<\/a> )<\/li>\n<li aria-level=\"1\">Twitter ( <a href=\"https:\/\/twitter.com\/kubeedge\">https:\/\/twitter.com\/kubeedge<\/a> )<\/li>\n<\/ul>\n<h2><span class=\"ez-toc-section\" id=\"Quellen\"><\/span>Quellen<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<ul>\n<li aria-level=\"1\"><a href=\"https:\/\/kubeedge.io\/en\">https:\/\/kubeedge.io\/en<\/a><\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/github.com\/kubeedge\/kubeedge\">https:\/\/github.com\/kubeedge\/kubeedge<\/a><\/li>\n<li aria-level=\"1\">Schulungsunterlagen: LFS458 Kubernetes Administration (Linux Foundation)<\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/www.hpe.com\/emea_europe\/en\/what-is\/edge-computing.html#targetText=Edge%20computing%20is%20the%20practice,a%20centralised%20data-processing%20warehouse.\">https:\/\/www.hpe.com\/emea_europe\/en\/what-is\/edge-computing.html#targetText=Edge%20computing%20is%20the%20practice,a%20centralised%20data-processing%20warehouse.<\/a><\/li>\n<li aria-level=\"1\"><a href=\"https:\/\/github.com\/rancher\/k3s\">https:\/\/github.com\/rancher\/k3s<\/a><\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p>Die Inhalte dieser Arbeit stammen aus dem Projekt\u00a0<a class=\"c-link\" href=\"https:\/\/www.interaktive-technologien.de\/projekte\/kosmos\" target=\"_blank\" rel=\"noopener noreferrer\" link=\"http:\/\/kosmos-bmbf.de\/\" sk=\"tooltip_parent\">KOSMoS<\/a>\u00a0\u2013 Kollaborative Smart Contracting Plattform f\u00fcr digitale Wertsch\u00f6pfungsnetze. Dieses Forschungs- und Entwicklungsprojekt wird mit Mitteln des Bundesministeriums f\u00fcr Bildung und Forschung (BMBF) im Programm \u201eInnovationen f\u00fcr die Produktion, Dienstleistung und Arbeit von morgen\u201c (F\u00f6rderkennzeichen 02P17D026) gef\u00f6rdert und vom Projekttr\u00e4ger Karlsruhe (PTKA) betreut. Die Verantwortung f\u00fcr den Inhalt dieser Ver\u00f6ffentlichung liegt bei den Autor:innen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im letzten Teil dieser Artikelserie zu KubeEdge wird in einem Beispiel gezeigt, wie Daten von einem Sensor \u00fcber die Edge bis hin zur Cloud gesendet werden. Die gesendeten Daten werden in der Cloud in einer Time Series Database abgelegt und anschlie\u00dfend \u00fcber Grafana visualisiert.<\/p>\n","protected":false},"author":22,"featured_media":20460,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"ep_exclude_from_search":false,"footnotes":""},"tags":[71,74,70],"service":[414,712],"coauthors":[{"id":22,"display_name":"Johannes M. Scheuermann","user_nicename":"jscheuermann"},{"id":203,"display_name":"Jan Unterbrink","user_nicename":"junterbrink"}],"class_list":["post-20581","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cloud","tag-iot","tag-web","service-cloud","service-internet-of-things-iot"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH<\/title>\n<meta name=\"description\" content=\"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH\" \/>\n<meta property=\"og:description\" content=\"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/\" \/>\n<meta property=\"og:site_name\" content=\"inovex GmbH\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/inovexde\" \/>\n<meta property=\"article:published_time\" content=\"2021-01-26T09:57:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-12-17T06:59:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Johannes M. Scheuermann, Jan Unterbrink\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3-1024x576.png\" \/>\n<meta name=\"twitter:creator\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:site\" content=\"@inovexgmbh\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Johannes M. Scheuermann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"9\u00a0Minuten\" \/>\n\t<meta name=\"twitter:label3\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data3\" content=\"Johannes M. Scheuermann, Jan Unterbrink\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/\"},\"author\":{\"name\":\"Johannes M. Scheuermann\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0bacb2c9ca9064212903a844e408fb12\"},\"headline\":\"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana\",\"datePublished\":\"2021-01-26T09:57:13+00:00\",\"dateModified\":\"2025-12-17T06:59:38+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/\"},\"wordCount\":1432,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/kubeedge-tutorial-3.png\",\"keywords\":[\"Cloud\",\"IoT\",\"Web\"],\"articleSection\":[\"General\",\"Infrastructure\"],\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/\",\"name\":\"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/kubeedge-tutorial-3.png\",\"datePublished\":\"2021-01-26T09:57:13+00:00\",\"dateModified\":\"2025-12-17T06:59:38+00:00\",\"description\":\"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/kubeedge-tutorial-3.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/kubeedge-tutorial-3.png\",\"width\":1920,\"height\":1080,\"caption\":\"Grafische Darstellung von drei Cloud-Symbolen.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#website\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"name\":\"inovex GmbH\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#organization\",\"name\":\"inovex GmbH\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"contentUrl\":\"https:\\\/\\\/www.inovex.de\\\/wp-content\\\/uploads\\\/2021\\\/03\\\/inovex-logo-16-9-1.png\",\"width\":1921,\"height\":1081,\"caption\":\"inovex GmbH\"},\"image\":{\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/inovexde\",\"https:\\\/\\\/x.com\\\/inovexgmbh\",\"https:\\\/\\\/www.instagram.com\\\/inovexlife\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/inovex\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UC7r66GT14hROB_RQsQBAQUQ\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/#\\\/schema\\\/person\\\/0bacb2c9ca9064212903a844e408fb12\",\"name\":\"Johannes M. Scheuermann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=gf922827beb705676e2040c1ecc2b6370\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g\",\"caption\":\"Johannes M. Scheuermann\"},\"url\":\"https:\\\/\\\/www.inovex.de\\\/de\\\/blog\\\/author\\\/jscheuermann\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH","description":"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/","og_locale":"de_DE","og_type":"article","og_title":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH","og_description":"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.","og_url":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/","og_site_name":"inovex GmbH","article_publisher":"https:\/\/www.facebook.com\/inovexde","article_published_time":"2021-01-26T09:57:13+00:00","article_modified_time":"2025-12-17T06:59:38+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png","type":"image\/png"}],"author":"Johannes M. Scheuermann, Jan Unterbrink","twitter_card":"summary_large_image","twitter_image":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3-1024x576.png","twitter_creator":"@inovexgmbh","twitter_site":"@inovexgmbh","twitter_misc":{"Verfasst von":"Johannes M. Scheuermann","Gesch\u00e4tzte Lesezeit":"9\u00a0Minuten","Written by":"Johannes M. Scheuermann, Jan Unterbrink"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#article","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/"},"author":{"name":"Johannes M. Scheuermann","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0bacb2c9ca9064212903a844e408fb12"},"headline":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana","datePublished":"2021-01-26T09:57:13+00:00","dateModified":"2025-12-17T06:59:38+00:00","mainEntityOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/"},"wordCount":1432,"commentCount":0,"publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png","keywords":["Cloud","IoT","Web"],"articleSection":["General","Infrastructure"],"inLanguage":"de","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/","url":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/","name":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana - inovex GmbH","isPartOf":{"@id":"https:\/\/www.inovex.de\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#primaryimage"},"image":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#primaryimage"},"thumbnailUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png","datePublished":"2021-01-26T09:57:13+00:00","dateModified":"2025-12-17T06:59:38+00:00","description":"In diesem Artikel wird Beispielhaft ein Use-Case mithilfe von dem im vorherigen Abschnitt installierten KubeEdge umgesetzt. Hierzu werden sowohl in der Cloud als auch auf der Edge unterschiedliche Ressourcen angelegt.","breadcrumb":{"@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#primaryimage","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/01\/kubeedge-tutorial-3.png","width":1920,"height":1080,"caption":"Grafische Darstellung von drei Cloud-Symbolen."},{"@type":"BreadcrumbList","@id":"https:\/\/www.inovex.de\/de\/blog\/kubeedge-use-case-vom-sensor-bis-zur-visualisierung-in-grafana\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.inovex.de\/de\/"},{"@type":"ListItem","position":2,"name":"KubeEdge Use Case: Vom Sensor bis zur Visualisierung in Grafana"}]},{"@type":"WebSite","@id":"https:\/\/www.inovex.de\/de\/#website","url":"https:\/\/www.inovex.de\/de\/","name":"inovex GmbH","description":"","publisher":{"@id":"https:\/\/www.inovex.de\/de\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.inovex.de\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Organization","@id":"https:\/\/www.inovex.de\/de\/#organization","name":"inovex GmbH","url":"https:\/\/www.inovex.de\/de\/","logo":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/","url":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","contentUrl":"https:\/\/www.inovex.de\/wp-content\/uploads\/2021\/03\/inovex-logo-16-9-1.png","width":1921,"height":1081,"caption":"inovex GmbH"},"image":{"@id":"https:\/\/www.inovex.de\/de\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/inovexde","https:\/\/x.com\/inovexgmbh","https:\/\/www.instagram.com\/inovexlife\/","https:\/\/www.linkedin.com\/company\/inovex","https:\/\/www.youtube.com\/channel\/UC7r66GT14hROB_RQsQBAQUQ"]},{"@type":"Person","@id":"https:\/\/www.inovex.de\/de\/#\/schema\/person\/0bacb2c9ca9064212903a844e408fb12","name":"Johannes M. Scheuermann","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=gf922827beb705676e2040c1ecc2b6370","url":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d3df0e3e0fa19f031fc539be1bd60a808d56719e4f9d367bf9b116ef6d653b1b?s=96&d=retro&r=g","caption":"Johannes M. Scheuermann"},"url":"https:\/\/www.inovex.de\/de\/blog\/author\/jscheuermann\/"}]}},"_links":{"self":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20581","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/comments?post=20581"}],"version-history":[{"count":2,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20581\/revisions"}],"predecessor-version":[{"id":65469,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/posts\/20581\/revisions\/65469"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media\/20460"}],"wp:attachment":[{"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/media?parent=20581"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/tags?post=20581"},{"taxonomy":"service","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/service?post=20581"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.inovex.de\/de\/wp-json\/wp\/v2\/coauthors?post=20581"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}