{"id":22982,"date":"2022-03-13T23:14:27","date_gmt":"2022-03-13T22:14:27","guid":{"rendered":"https:\/\/blog.mi.hdm-stuttgart.de\/?p=22982"},"modified":"2023-06-18T17:38:43","modified_gmt":"2023-06-18T15:38:43","slug":"logging-im-grosen-masstab-mit-grafana-loki","status":"publish","type":"post","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/","title":{"rendered":"Logging im gro\u00dfen Ma\u00dfstab mit Grafana Loki"},"content":{"rendered":"\n<p>Heutzutage erzeugen die meisten Systeme und Anwendungen Logging-Daten die f\u00fcr Sicherheits- und \u00dcberwachungszwecke n\u00fctzlich sind, z. B. f\u00fcr die Fehlersuche bei Programmierfehlern, die \u00dcberpr\u00fcfung des Systemstatus und die Erkennung von Konfigurationsproblemen oder sogar Angriffen. Treten Ereignisse innerhalb einer Anwendung auf, werden diese von integrierten Protokollierungsfunktionen erfasst und mit zus\u00e4tzlichen Metadaten aufgezeichnet. Mit dem Wachstum von Microservice-Anwendungen ist die Protokollierung f\u00fcr die \u00dcberwachung und Fehlerbehebung dieser Systeme wichtiger als je zuvor.&nbsp;<\/p>\n\n\n\n<p>Besitzt man beispielsweise nur einen kleinen Webserver, ist es evtl. noch m\u00f6glich die erzeugten Logs t\u00e4glich zu kontrollieren. Nur wie sieht es aus wenn mitten in der Nacht etwas passiert? Oder beim Betrieb eines gro\u00dfen verteilten Systems? Wie k\u00f6nnen diese Daten zentral gesammelt und sinnvoll genutzt werden? Hier kommen Log-Aggregation-Systeme ins Spiel, welche bei den Anforderungen an die Beobachtbarkeit und den Betrieb jedes gro\u00dfen, verteilten Systems unterst\u00fctzen.<\/p>\n\n\n\n<p>In diesem Blogpost m\u00f6chte ich auf den relativ neuen und immer popul\u00e4rer werdenden Logging-Stack Grafana Loki eingehen. Wie ist es aufgebaut? Wo sind die Unterschiede zu beispielsweise ELK (Elasticsearch, Logstash und Kibana). Was macht es so besonders und warum ist es f\u00fcr gro\u00dfe Firmen wie Red Hat interessant, welche in ihrer neuesten Version OpenShift 4.10 Grafana Loki Support anbieten werden?<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>Die Idee der Log-Aggregation ist nicht neu, es gibt viele SaaS-Anbieter und Open-Source-Projekte, die zueinander in Konkurrenz stehen. Bei der Log-Aggregation handelt es sich um eine Softwarefunktion, die Log-Daten aus der gesamten IT-Infrastruktur in einer einzigen zentralen Plattform zusammenf\u00fchrt, wo sie \u00fcberpr\u00fcft und analysiert werden k\u00f6nnen. Fast alle bestehenden L\u00f6sungen k\u00f6nnen zus\u00e4tzliche Funktionen unterst\u00fctzen, z. B. Datennormalisierung, Log-Suche und komplexe Datenanalyse.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22984\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/logo_and_name-1\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1.png\" data-orig-size=\"538,318\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"logo_and_name-1\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1.png\" alt=\"\" class=\"wp-image-22984\" width=\"57\" height=\"33\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1.png 538w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/logo_and_name-1-300x177.png 300w\" sizes=\"auto, (max-width: 57px) 100vw, 57px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Grafana Loki ist eine Kombination aus mehreren Komponenten, die zu einem vollwertigen Logging-Stack zusammengestellt werden k\u00f6nnen. Das Loki-Projekt wurde 2018 bei Grafana Labs gestartet. Es wurde in Golang geschrieben und ist eine Open Source Software, welche unter der AGPLv3-Lizenz ver\u00f6ffentlicht wurde. Loki ist ein horizontal skalierbares, hochverf\u00fcgbares, mandantenf\u00e4higes Log-Aggregation System nach dem Vorbild von Prometheus. Es entstand aus der Motivation heraus, die drei Komponenten der Observability (Beobachtbarkeit) Metriken, Logs und Tracing so einfach wie m\u00f6glich in einem Dashboard zu vereinen, um eine schnelle und unkomplizierte Fehlerermittlung zu erm\u00f6glichen. Damit ein nahtloser Wechsel zwischen den Komponenten stattfinden kann, werden die gesammelten Events mit denselben Metadaten wie bei den Prometheus-Daten versehen. Hierunter fallen zum Beispiel Namespace, Servicename und Instanz-IP.&nbsp;[1]<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22985\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/grafana_logo-svg_\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_.png\" data-orig-size=\"1200,1224\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Grafana_logo.svg_\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-1004x1024.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-1004x1024.png\" alt=\"\" class=\"wp-image-22985\" width=\"56\" height=\"57\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-1004x1024.png 1004w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-294x300.png 294w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-150x150.png 150w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_-768x783.png 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Grafana_logo.svg_.png 1200w\" sizes=\"auto, (max-width: 56px) 100vw, 56px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Spricht man von Grafana, so ist in der Regel eine Dashboarding-L\u00f6sung f\u00fcr time-series Daten gemeint. Grafana unterst\u00fctzt \u00fcber 40 Datenquellen. Im Kontext Monitoring und Logging ist es als Dashboard L\u00f6sung f\u00fcr Prometheus Daten bekannt.&nbsp;[2]<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"alignleft size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22986\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/640px-prometheus_software_logo-svg_\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_.png\" data-orig-size=\"640,634\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"640px-Prometheus_software_logo.svg_\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_.png\" alt=\"\" class=\"wp-image-22986\" width=\"51\" height=\"50\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_.png 640w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_-300x297.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/640px-Prometheus_software_logo.svg_-150x150.png 150w\" sizes=\"auto, (max-width: 51px) 100vw, 51px\" \/><\/a><\/figure><\/div>\n\n\n\n<p>Prometheus ist eine Open Source Monitoring- und Alerting-L\u00f6sung. Es zeichnet Echtzeitmetriken in einer Zeitreihendatenbank auf, welche in Grafana visualisiert werden k\u00f6nnen.&nbsp;[3]<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22987\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/prometheus-grafana-dashboard\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard.jpg\" data-orig-size=\"1245,762\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"prometheus-grafana-dashboard\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard-1024x627.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard-1024x627.jpg\" alt=\"\" class=\"wp-image-22987\" width=\"840\" height=\"514\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard-1024x627.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard-300x184.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard-768x470.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/prometheus-grafana-dashboard.jpg 1245w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption>Die von Prometheus gesammelten Metriken lassen sich mit Grafana-Dashboards visualisieren &#8211; [4]<\/figcaption><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Funktionsweise<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">Indexierung<\/h2>\n\n\n\n<p>Loki verfolgt bei der Speicherung der Logdaten einen Ansatz, bei dem nur ein kleiner Teil der Metadaten jeder Logline indiziert werden. Eine Speicherung derselben Logdaten in Loki ben\u00f6tigt weit weniger Speicherplatz, als dies beispielsweise bei Elasticsearch, welcher im ELK-Stack zum Einsatz kommt, der Fall w\u00e4re.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing.png\"><img loading=\"lazy\" decoding=\"async\" width=\"881\" height=\"269\" data-attachment-id=\"22988\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/loki-indexing\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing.png\" data-orig-size=\"881,269\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Loki-Indexing\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing.png\" alt=\"\" class=\"wp-image-22988\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing.png 881w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing-300x92.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-Indexing-768x234.png 768w\" sizes=\"auto, (max-width: 881px) 100vw, 881px\" \/><\/a><figcaption>Indexierung in Loki &#8211; [5]<\/figcaption><\/figure>\n\n\n\n<p>Anhand des folgenden Log-Ausschnittes erfolgt ein direkter Vergleich zwischen Elasticsearch und Loki, welcher den Unterschied der beiden Indizierungsans\u00e4tze verdeutlicht.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\" data-line=\"\">10.185.248.71 - - &#091;09\/Jan\/2015:19:12:06 +0000] 808840 &quot;GET \/inventoryService\/purchaseItem?userId=20253471&amp;amp;itemId=23434300 HTTP\/1.1&quot; 500 17 &quot;-&quot; &quot;Apache-HttpClient\/4.2.6 (java 1.5)&quot;<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Elasticsearch<\/strong><\/h3>\n\n\n\n<p>Elasticsearch analysiert den gesamten String, einschlie\u00dflich der Felder mit hoher Kardinalit\u00e4t wie itemID oder userID, und speichert alle Werte in einem gro\u00dfen Index.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung.png\"><img loading=\"lazy\" decoding=\"async\" width=\"903\" height=\"333\" data-attachment-id=\"22989\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/elastic-speicherung\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung.png\" data-orig-size=\"903,333\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Elastic-speicherung\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung.png\" alt=\"\" class=\"wp-image-22989\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung.png 903w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung-300x111.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Elastic-speicherung-768x283.png 768w\" sizes=\"auto, (max-width: 903px) 100vw, 903px\" \/><\/a><figcaption>Beispiel Indexierung in Elasticsearch &#8211; [6]<\/figcaption><\/figure>\n\n\n\n<p>Dies f\u00fchrt oft dazu, dass der Index meist gr\u00f6\u00dfer ist als die eigentlichen Logdaten. Der Ursprung hiervon liegt in der Architektur von Elasticsearch. Es baut auf dem Lucene-Suchmaschinenprojekt auf, welches f\u00fcr Szenarien mit geringem Schreib-\/Leseaufwand konzipiert ist. Hierbei dauert das Schreiben l\u00e4nger, was jedoch das lesen und suchen vereinfacht und verschnellert. Bei Logs ist jedoch meist das Gegenteil der Fall. Hier wird viel geschrieben jedoch nur selten gelesen.&nbsp;[6]<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Grafana Loki<\/strong><\/h3>\n\n\n\n<p>Beispiel daf\u00fcr, wie Loki typischerweise die Logzeile indiziert:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung.png\"><img loading=\"lazy\" decoding=\"async\" width=\"369\" height=\"93\" data-attachment-id=\"22990\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/loki-speicherung\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung.png\" data-orig-size=\"369,93\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Loki-speicherung\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung.png\" alt=\"\" class=\"wp-image-22990\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung.png 369w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Loki-speicherung-300x76.png 300w\" sizes=\"auto, (max-width: 369px) 100vw, 369px\" \/><\/a><figcaption>Beispiel Indexierung in Loki &#8211; [6]<\/figcaption><\/figure>\n\n\n\n<p>Loki indiziert nur einige wenige Felder, sodass der Index sehr klein ist. Die erzeugten Logs k\u00f6nnen mittels Filter wie Zeitspanne und indizierten Feldern (Labels), sowie durch den Einsatz von Teil-String-Suche oder regul\u00e4ren Ausdr\u00fccken, abgefragt werden.<\/p>\n\n\n\n<p>[5],[6]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Log-Kollektoren<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22991\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/untitled-6\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-scaled.jpg\" data-orig-size=\"2560,1517\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Untitled-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-1024x607.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-1024x607.jpg\" alt=\"\" class=\"wp-image-22991\" width=\"840\" height=\"497\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-1024x607.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-300x178.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-768x455.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-1536x910.jpg 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-6-2048x1214.jpg 2048w\" sizes=\"auto, (max-width: 840px) 100vw, 840px\" \/><\/a><figcaption>Vereinfacht Darstellung des Logging-Stacks <\/figcaption><\/figure>\n\n\n\n<p>Promtail ist ein Log-Kollektor, welcher speziell f\u00fcr Loki entwickelt wurde. Dieser ist in Golang geschrieben und wird typischerweise als Daemonset in einem Kubernetscluster ausgerollt. Promtail ist jedoch nicht ausschlie\u00dflich f\u00fcr Kubernetes-Nodes. Es kann ebenfalls auf einer lokalen Maschine ausgerollt werden. Installatiospakete werden auf der Grafana Loki <a href=\"https:\/\/github.com\/grafana\/loki\/releases\">Github-Seite<\/a> angeboten.&nbsp;<\/p>\n\n\n\n<p>Damit Promtail Logdaten an Loki senden kann, ben\u00f6tigt es Informationen \u00fcber seine Umgebung. Zur zur leichteren Identifizierung von Services k\u00f6nnen ebenfalls Labels mitgegeben werden. Sie werden an die Log-Zeilen angeh\u00e4ngt.&nbsp;&nbsp;[7]<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config.png\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22993\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/scrape_config\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config.png\" data-orig-size=\"632,482\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"scrape_config\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config.png\" alt=\"\" class=\"wp-image-22993\" width=\"233\" height=\"177\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config.png 632w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/scrape_config-300x229.png 300w\" sizes=\"auto, (max-width: 233px) 100vw, 233px\" \/><\/a><figcaption>Promtail Beispielkonfiguration &#8211; [8]<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana.png\"><img decoding=\"async\" data-attachment-id=\"23006\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/promtaillog-in-grafana-2\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited.png\" data-orig-size=\"930,521\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Promtaillog-in-grafana\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited.png\" alt=\"\" class=\"wp-image-23006\" width=\"692\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited.png 930w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited-300x168.png 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Promtaillog-in-grafana-edited-768x430.png 768w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><figcaption>Resultat im Loki &#8211; [8]<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<p>Neben Promtail k\u00f6nnen auch andere Tools wie Logstash (verwendet im ELK-Stack) verwendet werden. Promtail sendet Logs in Batches an Loki.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Komponenten<\/h1>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten.png\"><img loading=\"lazy\" decoding=\"async\" width=\"625\" height=\"667\" data-attachment-id=\"22995\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/komponenten\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten.png\" data-orig-size=\"625,667\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Komponenten\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten.png\" alt=\"\" class=\"wp-image-22995\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten.png 625w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Komponenten-281x300.png 281w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption>Grafana Loki Komponenten\u00fcbersicht &#8211; [9]<\/figcaption><\/figure>\n\n\n\n<p>Wie bereits erw\u00e4hnt, besteht die Loki Anwendung aus mehreren Komponenten-Microservices. Dem Distributor, sowie dem Ingestor, dem Ruler, Querier und Query-Frontend.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Distributor<\/h2>\n\n\n\n<p>Der Distributor ist f\u00fcr die Verarbeitung eingehender Streams der Log-Kollektoren verantwortlich. Ein Stream ist eine Sammlung von Logs die einem Mandanten und eindeutigen Labels zuordenbar sind. Die Distributoren von Loki verwenden Consistent Hashing in Verbindung mit einem Replikationsfaktor, um zu bestimmen, welche Instanz des Ingestor-Service den Stream erhalten soll. Ein Stream wird dazu mit der Mandanten-ID, sowie dem Labelset gehasht. Um Consistent Hashing zu erreichen, wird ein Hash-Ring verwendet. Dabei registriert sich jeder Ingestor mit einer Reihe von Tokens und ihrem jeweiligen Status im Ring. Ingestoren mit dem Status JOINING und ACTIVE k\u00f6nnen Schreibanforderungen empfangen. Ein Ingestor mit dem Status ACTIVE und LEAVING empf\u00e4ngt Leseanforderungen. Bei einer Hash-Suche (Lesende oder Schreibende Anfragen) werden nur die Ingestor beachtet, die sich im richtigen Status befinden.&nbsp;<\/p>\n\n\n\n<p>Um die Hash-Suche durchzuf\u00fchren, finden Distributoren den kleinsten geeigneten Token, dessen Wert gr\u00f6\u00dfer ist als der Hash des Streams. Wenn der Replikationsfaktor gr\u00f6\u00dfer als eins ist, wird der gehashte Stream dem n\u00e4chstfolgenden Token (Ingestor) im Uhrzeigersinn zugeordnet. [9]<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-scaled.jpg\"><img loading=\"lazy\" decoding=\"async\" data-attachment-id=\"22996\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/untitled-7\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-scaled.jpg\" data-orig-size=\"2560,2076\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"Untitled-7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-1024x831.jpg\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-1024x831.jpg\" alt=\"\" class=\"wp-image-22996\" width=\"454\" height=\"368\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-1024x831.jpg 1024w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-300x243.jpg 300w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-768x623.jpg 768w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-1536x1246.jpg 1536w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/Untitled-7-2048x1661.jpg 2048w\" sizes=\"auto, (max-width: 454px) 100vw, 454px\" \/><\/a><figcaption>Vereinfachte Darstellung des Hash-Rings<\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Ingestor<\/h2>\n\n\n\n<p>Der Ingestor ist verantwortlich f\u00fcr das Speichern von Logdaten. Diese werden bei Loki in ein einziges Objektspeicher-Backend, wie DynamoDB, S3, Cassandra oder \u00e4hnliche, geschrieben. Hierzu werden die eintreffenden Streams im Arbeitsspeicher in Chunks (Bl\u00f6cke) unterteilt und in einem konfigurierbaren Intervall an das Speicher-Backend gesendet.&nbsp;<\/p>\n\n\n\n<p>Sobald ein Ingestor ausgerollt wurde, kann er unterschiedliche Zust\u00e4nde einnehmen. Diese k\u00f6nnen PENDING, JOINING, ACTIVE, LEAVING oder UNHEALTHY sein. Die ausf\u00fchrlicherere Erl\u00e4uterung der jeweiligen Status sind in der zugeh\u00f6rigen <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/fundamentals\/architecture\/#ingester\">Dokumentation <\/a>festgehalten.&nbsp;<\/p>\n\n\n\n<p>St\u00fcrzt ein Ingestor ab oder wird abrupt beendet, k\u00f6nnen alle noch nicht gespeicherten Chunks im Arbeitsspeicher verloren gehen. Loki verwendet hierzu das Write Ahead Log Prinzip (WAL) um nach einem Neustart die Persistenz best\u00e4tigter Daten zu gew\u00e4hrleisten.<\/p>\n\n\n\n<p>Hierzu werden eingehende Daten aufgezeichnet und im lokalen Dateisystem gespeichert. Beim Neustart werden die Daten aus dem Protokoll neu eingespielt, bevor sich der Ingestor selbst als bereit f\u00fcr nachfolgende Schreibvorg\u00e4nge registriert. Beim Herunterfahren oder beim Verlassen des Hash-Rings wartet ein Ingestor standardm\u00e4\u00dfig darauf, ob ein neuer Ingestor seine Aufgaben \u00fcbernimmt. Ist dies nicht der Fall, werden die noch nicht gespeicherten Logs an den Langzeitspeicher gesendet. Andernfalls findet eine \u00dcbergabe statt. Bei der \u00dcbergabe werden alle Token und In-Memory-Chunks, die dem verlassenden Ingestor geh\u00f6ren, an den neuen Ingestor \u00fcbergeben. Bevor ein Ingestor dem Hash-Ring beitreten, wartet dieser im PENDING Status auf eine \u00dcbergabe. Nach einer konfigurierbaren Zeit\u00fcberschreitung werden Ingestoren im PENDING Zustand, die keine \u00dcbertragung erhalten haben, dem Ring normal beitreten und einen neuen Satz von Tokens einf\u00fcgen. [9]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ruler<\/h2>\n\n\n\n<p>Die Ruler-Komponente ist daf\u00fcr verantwortlich, eine Reihe konfigurierbarer Abfragen kontinuierlich auszuwerten und auf der Grundlage des Ergebnisses, Aktionen auszuf\u00fchren. Es gibt zwei Haupttypen von Regeln die die Ruler-Komponente unterst\u00fctzt: Alerting Rules und Recording Rules. Diese k\u00f6nnen selbst konfiguriert, jedoch kann auch auf vorgefertigte Sets zur\u00fcckgegriffen, werden (s. <a href=\"https:\/\/blog.ruanbekker.com\/blog\/2020\/11\/06\/how-to-setup-alerting-with-loki\/\">Beispielkonfiguration<\/a>). [10]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Query Frontend<\/h2>\n\n\n\n<p>Das Query Frontend ist ein optionaler Dienst der die Api-Endpunkte f\u00fcr Leseanfragen bereitstellt. Ist ein Query Frontend vorhanden, sollten eingehende Abfragen an das Frontend und nicht an die Queriers geleitet werden. Der Querier-Dienst wird weiterhin innerhalb des Clusters ben\u00f6tigt um die eigentlichen Abfragen auszuf\u00fchren. Das Frontend f\u00fchrt intern einige Anpassungen an die Abfragen durch und h\u00e4lt diese in einer internen Warteschlange. Gr\u00f6\u00dfere Abfragen werden beispielsweise in mehrere kleinere Abfragen aufgeteilt. Diese k\u00f6nnen dann parallel auf nachgelagerten Queriers ausgef\u00fchrt werden. Das Frontend f\u00fcgt die Ergebnisse nach Bearbeitung wieder zusammen. Dies verhindert Speicher\u00fcberl\u00e4ufe bei gro\u00dfen Abfragen in einem einzelnen Querier. Zudem k\u00f6nnen Ergebnisse schneller geliefert werden. Das Query Frontend ist zudem in der Lage Abfrageergebnisse zwischenzuspeichern (Caching) und diese bei nachfolgenden Abfragen erneut zu verwenden. [9]<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Querier<\/h2>\n\n\n\n<p>Der Querier verarbeitet Abfragen mithilfe von LogQL. Dies ist eine Abfragesprache mit der er in der Lage ist auf Protokolle im Langzeitspeicher, sowie auf In-Memory-Daten der Ingestoren, zuzugreifen. Die Abfrage kann direkt im Grafana erfolgen, welches die Logs visualisiert. [9]<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Zusammenfassung und Vergleich zum ELK-Stack<\/h1>\n\n\n\n<p>Der ELK-Stack verwendet Logstash als Log Kollektor. Im Vergleich hierzu verwendet Grafana Loki standardm\u00e4\u00dfig Promtail &#8211; kann aber auch mit anderen Log-Kollektoren wie Fluentd oder Logstash arbeiten. Als Dashboard im ELK-Stack wird Kibana eingesetzt. Verwendet man f\u00fcrs Monitoring Prometheus mit Grafana wird mit Loki kein zus\u00e4tzliches Dashboard ben\u00f6tigt, da dieses ebenfalls Grafana nutzt. Statt einem Objectstore (Loki) wie S3 oder Cassandra verwendet der ELK-Stack das ressourcenhungrige Elasticsearch. Hierbei werden die Logs als unstrukturierte JSON-Objekte gespeichert. Loki macht keine Volltextindexierung sondern speichert lediglich die Metadaten.&nbsp;Ein direkter Vergleich zwischen dem ELK-Stack, Splunk (ein weiteres Log-Aggregation-System) und Loki zeigt einen deutlich geringeren Speicherbedarf bei Loki. <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki.png\"><img loading=\"lazy\" decoding=\"async\" width=\"678\" height=\"300\" data-attachment-id=\"22997\" data-permalink=\"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2022\/03\/13\/logging-im-grosen-masstab-mit-grafana-loki\/elksplunkloki\/\" data-orig-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki.png\" data-orig-size=\"678,300\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"ELKSplunkLoki\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki.png\" src=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki.png\" alt=\"\" class=\"wp-image-22997\" srcset=\"https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki.png 678w, https:\/\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2022\/03\/ELKSplunkLoki-300x133.png 300w\" sizes=\"auto, (max-width: 678px) 100vw, 678px\" \/><\/a><figcaption>Speicher- und Abfragevergleich von ELK, Splunk und Loki &#8211; [11]<\/figcaption><\/figure>\n\n\n\n<p>Loki stellt somit eine echte Alternative zu bereits bestehenden Systemen dar.<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Quellenangaben<\/h1>\n\n\n\n<p>[1] &#8211; https:\/\/grafana.com\/blog\/2018\/12\/12\/loki-prometheus-inspired-open-source-logging-for-cloud-natives\/<br>[2] &#8211; https:\/\/grafana.com\/grafana\/<br>[3] &#8211; https:\/\/prometheus.io\/<br>[4] &#8211; https:\/\/geekflare.com\/de\/kubernetes-monitoring-tools\/<br>[5] &#8211; https:\/\/grafana.com\/oss\/loki\/<br>[6] &#8211; https:\/\/grafana.com\/blog\/2020\/05\/12\/an-only-slightly-technical-introduction-to-loki-the-prometheus-inspired-open-source-logging-system\/<br>[7] &#8211; <a href=\"https:\/\/grafana.com\/docs\/loki\/latest\/clients\/promtail\/\" title=\"https:\/\/grafana-com.translate.goog\/docs\/loki\/latest\/clients\/promtail\/?_x_tr_sl=en&amp;_x_tr_tl=de&amp;_x_tr_hl=de&amp;_x_tr_pto=sc\">https:\/\/grafana.com\/docs\/loki\/latest\/clients\/promtail\/<\/a><br>[8] &#8211; https:\/\/grafana.com\/go\/webinar\/getting-started-shipping-logs-to-grafana-loki\/<br>[9] &#8211; https:\/\/grafana.com\/docs\/loki\/latest\/fundamentals\/architecture\/<br>[10] &#8211; https:\/\/grafana.com\/docs\/loki\/latest\/rules\/<br>[11] &#8211; https:\/\/crashlaker.medium.com\/which-logging-solution-4b96ad3e8d21<\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Heutzutage erzeugen die meisten Systeme und Anwendungen Logging-Daten die f\u00fcr Sicherheits- und \u00dcberwachungszwecke n\u00fctzlich sind, z. B. f\u00fcr die Fehlersuche bei Programmierfehlern, die \u00dcberpr\u00fcfung des Systemstatus und die Erkennung von Konfigurationsproblemen oder sogar Angriffen. Treten Ereignisse innerhalb einer Anwendung auf, werden diese von integrierten Protokollierungsfunktionen erfasst und mit zus\u00e4tzlichen Metadaten aufgezeichnet. Mit dem Wachstum von [&hellip;]<\/p>\n","protected":false},"author":1042,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1,650,223],"tags":[598,594,590,417,596,593,589,595,591,588,353,418,592,597],"ppma_author":[865],"class_list":["post-22982","post","type-post","status-publish","format-standard","hentry","category-allgemein","category-scalable-systems","category-ultra-large-scale-systems","tag-consistent-hashing","tag-elasticsearch","tag-elk","tag-grafana","tag-hash-rings","tag-indexierung","tag-log-aggregation-system","tag-log-kollektoren","tag-logs","tag-loki","tag-open-source","tag-prometheus","tag-protokolldaten","tag-wal"],"aioseo_notices":[],"jetpack_featured_media_url":"","jetpack-related-posts":[{"id":27464,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/02\/28\/low-code-no-code-in-der-enterprise-software-entwicklung-fluch-oder\/","url_meta":{"origin":22982,"position":0},"title":"Low-Code\/No-Code in der Enterprise-Software-Entwicklung \u2013 Fluch oder Segen?","author":"Antonia Herdtner","date":"28. February 2025","format":false,"excerpt":"Anmerkung:\u00a0Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst. 1. Einleitung Die fortschreitende digitale Transformation erfordert von Unternehmen eine stetige Anpassung ihrer IT-Strategien, um wettbewerbsf\u00e4hig zu bleiben. Traditionelle Softwareentwicklung erfordert jedoch umfangreiche Programmierkenntnisse, lange Entwicklungszyklen und erhebliche finanzielle Ressourcen. Angesichts des Fachkr\u00e4ftemangels in der IT-Branche und des steigenden Bedarfs\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26698,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/01\/30\/cloud-basiertes-performance-monitoring-fur-rich-media-systeme\/","url_meta":{"origin":22982,"position":1},"title":"Cloudbasiertes Performance-Monitoring f\u00fcr Rich-Media-Systeme","author":"Simon Wimmer","date":"30. January 2025","format":false,"excerpt":"Problemstellung In einer zunehmend digitalisierten Welt haben sich Rich-Media-Systeme zu einem integralen Bestandteil unseres Alltags entwickelt. Diese Systeme umfassen komplexe Informations- und Kommunikationsumgebungen, die verschiedene Medienformen und interaktive Komponenten vereinen, um eine hohe Informationstiefe und Interaktionsdichte zu erreichen. Beispiele hierf\u00fcr sind Video-Streaming-Dienste, Augmented Reality (AR) Anwendungen und interaktive Webinhalte. Die\u2026","rel":"","context":"In &quot;Rich Media Systems&quot;","block_context":{"text":"Rich Media Systems","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/interactive-media\/rich-media-systems\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/blog.mi.hdm-stuttgart.de\/wp-content\/uploads\/2025\/01\/dashboard-150x150.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":27751,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/07\/21\/was-unternehmenssoftware-von-entwicklern-verlangt\/","url_meta":{"origin":22982,"position":2},"title":"Was Unternehmenssoftware von Entwicklern verlangt","author":"Peter Tran","date":"21. July 2025","format":false,"excerpt":"Anmerkung: Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst Einleitung Unternehmenssoftware, wie ERP oder CRM-Systeme, ist das R\u00fcckgrat moderner Organisationen. Sie \u00fcbernimmt zentrale Gesch\u00e4ftsprozesse, verarbeitet gro\u00dfe Datenmengen zuverl\u00e4ssig und muss h\u00f6chsten Anforderungen an Sicherheit, Skalierbarkeit und Wartbarkeit gerecht werden. F\u00fcr Entwickler bedeutet das: Ihre L\u00f6sungen m\u00fcssen nicht nur\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26895,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/02\/22\/parallel-sysplex-wie-ibm-z-kontinuierliche-verfugbarkeit-durch-ras-und-innovationen-des-z16-sicherstellt\/","url_meta":{"origin":22982,"position":3},"title":"Parallel SysPlex: Wie IBM Z kontinuierliche Verf\u00fcgbarkeit durch RAS und Innovationen des z16 sicherstellt","author":"Luca Walz","date":"22. February 2025","format":false,"excerpt":"Note: Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst. Kurzfassung In einer zunehmend digitalisierten Welt ist hohe Verf\u00fcgbarkeit eines Systems essenziell f\u00fcr gesch\u00e4ftskritische Anwendungen. Hierbei erm\u00f6glicht eine, von IBM f\u00fcr das IBM Z-Mainframe entwickelte, Cluster Technologie eine nahezu kontinuierliche Verf\u00fcgbarkeit, welche durch dynamische Lastenverteilung, redundante Architektur und Echtzeit\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":28304,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2026\/02\/08\/ai-security-leveraging-ai-for-security-automation\/","url_meta":{"origin":22982,"position":4},"title":"AI Security &#8211; Leveraging AI for Security automation","author":"Nico Giaquinta","date":"8. February 2026","format":false,"excerpt":"Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst. Lesezeit: 5 Minuten In der heutigen IT-Landschaft ist Cybersicherheit unausweichlich. Tausende Alerts, unz\u00e4hlige Logs und verd\u00e4chtige Aktivit\u00e4ten m\u00fcssen in Echtzeit analysiert werden. Traditionelle Sicherheitssysteme mit definierten Regeln sto\u00dfen an ihre Grenzen.Die Herausforderung: sich selbst verbreitende Ransomware, Phishing-Kampagnen mit Deepfakes und\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":26902,"url":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/2025\/02\/24\/wie-erreichen-server-eine-betriebszeit-von-99999999-und-warum-ist-das-fur-heutige-unternehmen-wichtig\/","url_meta":{"origin":22982,"position":5},"title":"Wie erreichen Server eine Betriebszeit von 99,999999% und warum ist das f\u00fcr heutige Unternehmen wichtig?","author":"Jonas \u00d6hler","date":"24. February 2025","format":false,"excerpt":"Note: Dieser Blogpost wurde f\u00fcr das Modul Enterprise IT (113601a) verfasst. Verf\u00fcgbarkeit ist ein entscheidender Faktor f\u00fcr Online-Systeme, da Gesch\u00e4ftsprozesse sofort zum Stillstand kommen k\u00f6nnen, wenn ein System ausf\u00e4llt. Im E-Commerce ist Verf\u00fcgbarkeit besonders wichtig, da Kunden sofortigen Zugriff erwarten. Wenn eine Website nicht erreichbar ist, wechseln Nutzer schnell zur\u2026","rel":"","context":"In &quot;Allgemein&quot;","block_context":{"text":"Allgemein","link":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/category\/allgemein\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"jetpack_sharing_enabled":true,"authors":[{"term_id":865,"user_id":1042,"is_guest":0,"slug":"ss544","display_name":"Sarah Schwab","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/0f274ba1d6d6737a54914ed0cca4ff23f44f9747c56e083d82e06f082edf3bdc?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22982","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/users\/1042"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/comments?post=22982"}],"version-history":[{"count":18,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22982\/revisions"}],"predecessor-version":[{"id":23017,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/posts\/22982\/revisions\/23017"}],"wp:attachment":[{"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/media?parent=22982"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/categories?post=22982"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/tags?post=22982"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/blog.mi.hdm-stuttgart.de\/index.php\/wp-json\/wp\/v2\/ppma_author?post=22982"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}