{"id":93294,"date":"2020-09-05T07:42:58","date_gmt":"2020-09-05T05:42:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi"},"modified":"2020-09-05T07:42:58","modified_gmt":"2020-09-05T05:42:58","slug":"logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","status":"publish","type":"post","link":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","title":{"rendered":"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Lassen Sie uns die Grundlagen des Loggings in Docker und Kubernetes besprechen und anschlie\u00dfend zwei Werkzeuge betrachten, die sich bedenkenlos in der Produktion verwenden lassen: Grafana Loki und den EFK-Stack (Elasticsearch + Fluent Bit + Kibana).<\/p>\n<p><\/p>\n<p><em>Der Material des Artikels ist eine Zusammenfassung aus <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/nkmP0-EDb1A\">einer offenen Vorlesung der Schule \u201eSlyerm\u201c<\/a><\/noindex>. Wenn Sie interessiert sind und vor allem einen Produktionsbedarf haben, k\u00f6nnen Sie eine vollst\u00e4ndige Schulung absolvieren \u2013 melden Sie sich f\u00fcr den Kurs an \u00fcber <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Tinm9w\">Monitoring und Logging der Infrastruktur in Kubernetes<\/a><\/noindex>.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/565b51e95f609556ad38b9d294ef3f2f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"logirovanie-v-docker\">Logging in Docker<\/h2>\n<p><\/p>\n<p>Auf der Kubernetes-Ebene laufen Anwendungen in Pods, aber auf einer tieferen Ebene arbeiten sie normalerweise in Docker. Daher muss das Logging so eingerichtet werden, dass Protokolle von den Containern gesammelt werden. Docker startet die Container \u2013 also m\u00fcssen wir kl\u00e4ren, wie das Logging auf Docker-Ebene funktioniert.<\/p>\n<p><\/p>\n<p>Ich hoffe, jeder Leser wei\u00df: Die Anwendungsprotokolle sollten in stdout\/stderr und nicht im Container selbst geschrieben werden. Die Protokolle werden vom Docker Daemon aggregiert, der genau mit den Protokollen arbeitet, die an stdout\/stderr gesendet werden. Dar\u00fcber hinaus kann das Schreiben von Protokollen im Container zu Problemen f\u00fchren: Der Container w\u00e4chst aufgrund des zunehmenden Protokolls (da im Container wahrscheinlich kein Logrotate vorhanden ist), und der Docker Daemon ist sich dieses Protokolls nicht bewusst.<\/p>\n<p><\/p>\n<p>Docker bietet mehrere Log-Treiber oder Plugins zum Sammeln von Container-Protokollen. In der kostenlosen Version Docker Community Edition (CE) gibt es weniger Log-Treiber als in der kommerziellen Docker Enterprise Edition (EE).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/2b05602b54a9075f63713f72c7e74dfa.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Docker EE habe ich noch nie praktisch verwendet: In Southbridge halten wir uns an Open-Source-L\u00f6sungen, und die meisten unserer Kunden ben\u00f6tigen die zus\u00e4tzlichen Funktionen von Docker EE nicht. <\/p>\n<p><\/p>\n<p>Log-Treiber in Docker CE:<\/p>\n<p><\/p>\n<p><strong>local<\/strong> \u2014 Protokollierung in interne Docker Daemon-Dateien;<br \/>\n<strong>json-file<\/strong> \u2014 Erstellung einer json-Logdatei im Verzeichnis jedes Containers;<br \/>\n<strong>journald<\/strong> \u2014 Versenden von Protokollen an journald.<\/p>\n<p><\/p>\n<p>Die Protokollierungseinstellungen in Docker befinden sich in der Datei daemon.json. <\/p>\n<p><\/p>\n<p>Im Feld \"log-driver\" wird das Plugin angegeben, und im Feld \"log-opts\" dessen Einstellungen. Im obigen Beispiel wurde das Plugin \"json-file\" angegeben, die Gr\u00f6\u00dfenbegrenzung f\u00fcr das Protokoll \u2014 \"max-size\": \"10m\"; die Dateibegrenzung (Rotiereinstellungen) \u2014 \"max-file\": \"3\"; und auch die Werte, die den Protokollen hinzugef\u00fcgt werden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/0b86671ee8d3d009da29ba66bc29d4eb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Einige Einstellungen des Log-Treibers k\u00f6nnen \u00fcber das Befehlszeilen-Tool festgelegt werden. Das ist praktisch, wenn ein einzelner Container mit einem anderen Log-Treiber gestartet werden muss. <\/p>\n<p><\/p>\n<p>So sieht das Protokollierungsschema in Docker aus:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/a45d8e3044780a5b7f20d83e14545d1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>So funktioniert das Schema: Der Log-Treiber, beispielsweise json-file, erstellt Dateien. Die Log-Collector (Rsyslog, Fluentd, Logagent und andere) sammeln diese Dateien und \u00fcbertragen sie zur Speicherung in Elastic, Sematext oder andere Speicher.<\/p>\n<p><\/p>\n<h2 id=\"osobennosti-logirovaniya-v-kubernetes\">Besonderheiten des Loggings in Kubernetes<\/h2>\n<p><\/p>\n<p>Vereinfacht sieht das Logging-Schema in Kubernetes so aus: Es gibt einen Pod, in dem ein Container l\u00e4uft, der die Logs an stdout\/stderr sendet. Dann erstellt Docker eine Datei und protokolliert die Logs, die anschlie\u00dfend rotiert werden k\u00f6nnen.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/76e6fdbbb9f97851bfa95a7153d8c525.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Betrachten wir die Besonderheiten des Loggens in Kubernetes.<\/p>\n<p><\/p>\n<p><strong>Logs zwischen Deployments speichern<\/strong>. Dies ist eine zwingende Voraussetzung f\u00fcr die korrekte Konfiguration des Loggings. Wenn Logs zwischen den Deployments nicht gespeichert werden, gehen die Logs der vorherigen Version beim Update der Anwendung verloren; auch ein Neustart des Containers kann zu einem Verlust der Logs f\u00fchren. Kubernetes bietet das Flag &#8212;previous, mit dem die Logs der Anwendung vor dem letzten Restart des Pods eingesehen werden k\u00f6nnen, jedoch nicht tiefer.<\/p>\n<p><\/p>\n<p><strong>Logs von allen Instanzen aggregieren<\/strong>. Wenn Mikrodienste in der Cloud gehostet werden, liegt die System\u00fcberwachung beim Cloud-Anbieter. Wenn Mikrodienste auf eigener Hardware laufen, m\u00fcssen neben den Container-Logs auch die Logs des Systems gesammelt werden.<\/p>\n<p><\/p>\n<p>Fr\u00fcher gab es keine praktischen Werkzeuge zur Sammlung von Logs sowohl vom System als auch von Mikroservices. Normalerweise sammelte ein Werkzeug die Systemlogs (zum Beispiel Rsyslog), w\u00e4hrend ein anderes die Logs von Docker (zum Beispiel journal-bit mit einer Konfiguration des Log-Treibers Docker auf journald) erfasste. Wir haben versucht, journal-bit zu verwenden, um Logs sowohl von Containern (im Log-Treiber von Docker anzugeben, dass die Logs in journald geschrieben werden sollen) als auch vom System zu sammeln (in CentOS 7 gibt es bereits systemd und journald). Die L\u00f6sung funktioniert, ist aber nicht ideal. Wenn es viele Logs gibt, beginnt journal-bit zu ruckeln und Nachrichten gehen verloren.<\/p>\n<p><\/p>\n<p>Die Experimente gingen weiter \u2013 und ich fand einen anderen Weg. In CentOS 7 werden die Hauptsystemlogs (messages, audit, secure) in var-logs in Form von Dateien dupliziert. Auch in Docker kann man das Speichern der Logs in json-Dateien konfigurieren. Dementsprechend k\u00f6nnen diese Dateien aus CentOS 7 und Docker zusammen gesammelt werden.<\/p>\n<p><\/p>\n<p>Im Laufe der Zeit wurde die L\u00f6sung ELK Stack popul\u00e4r. Dies ist eine Kombination mehrerer Werkzeuge: Elasticsearch, Logstash und Kibana.<\/p>\n<p><\/p>\n<p>Elasticsearch speichert die Logs von Containern, Logstash sammelt die Logs von Instanzen, und Kibana erm\u00f6glicht die Verarbeitung der erhaltenen Logs sowie das Erstellen von Diagrammen. Eine Zeit lang wurde der ELK Stack aktiv genutzt, aber meiner Meinung nach geht seine Zeit zu Ende. Warum, erz\u00e4hle ich sp\u00e4ter.<\/p>\n<p><\/p>\n<p><strong>Metadaten hinzuf\u00fcgen<\/strong>. Pods, Anwendungen und Container k\u00f6nnen \u00fcberall ausgef\u00fchrt werden. Dar\u00fcber hinaus kann eine Anwendung mehrere Instanzen haben. Die Protokolle werden in einem einheitlichen Format aufgezeichnet, und wir m\u00fcssen verstehen, welche genau diese Replik ist, welcher Pod es schreibt und in welchem Namespace er sich befindet. Deshalb ist es erforderlich, Metadaten zu den Protokollen hinzuzuf\u00fcgen.<\/p>\n<p><\/p>\n<p><strong>Protokolle analysieren<\/strong>. Lustig, aber die Kosten f\u00fcr die Unterst\u00fctzung eines Protokollierungs- und \u00dcberwachungssystems k\u00f6nnen die Ausgaben f\u00fcr die Hauptanwendung \u00fcbersteigen. Wenn Sie Dutzende oder Hunderttausende von Protokollen pro Sekunde verarbeiten, erscheint das nachvollziehbar, aber man muss dennoch die Grenze kennen. Eine M\u00f6glichkeit, diese Grenze zu finden, ist die Analyse der Protokolle. <\/p>\n<p><\/p>\n<p>In der Regel sollten nicht alle Protokolle gesammelt und gespeichert werden; es ist ausreichend, nur einen Teil zu speichern \u2014 zum Beispiel Protokolle mit dem Status 'Warnung' oder 'Fehler'. Wenn es um Protokolle von Nginx oder Ingress-Controllern geht, sollten nur die Protokolle gespeichert werden, deren Status von 200 abweicht. Das ist jedoch kein universeller Ratschlag: Wenn Sie irgendwie Analysen zu Nginx-Protokollen durchf\u00fchren, sollten diese offensichtlich gesammelt werden. <\/p>\n<p><\/p>\n<p>Es wird nicht empfohlen, Protokolle blind zu filtern, da die gefilterten Daten m\u00f6glicherweise nicht ausreichen, um eine ordnungsgem\u00e4\u00dfe Analyse durchzuf\u00fchren. Auf der anderen Seite k\u00f6nnte es sinnvoll sein, die Analyse nicht auf der Ebene des Loggings, sondern auf der Ebene der Metrik-Sammlung durchzuf\u00fchren. Dann m\u00fcssen keine Hunderttausend Zeilen mit dem Code 200 gespeichert werden. Ein Ansatz w\u00e4re, Informationen \u00fcber Traffic und Fehler aus den Metriken der Ingress-Controller zu beziehen. <\/p>\n<p><\/p>\n<p>Insgesamt sollte man gut dar\u00fcber nachdenken, was man speichern m\u00f6chte und wie lange, da sonst eine Situation entstehen kann, in der das Logging-System mehr Ressourcen verbraucht als das Hauptprojekt.<\/p>\n<p><\/p>\n<p><strong>Derzeit gibt es keine standardisierte L\u00f6sung f\u00fcr das Logging.<\/strong>Im Gegensatz zum Monitoring, wo es eine am weitesten verbreitete L\u00f6sung, Prometheus, gibt, existiert im Logging kein Standard. <\/p>\n<p><\/p>\n<p>Im Rahmen dieser Vorlesung werden wir zwei Werkzeuge betrachten: eines ist popul\u00e4r, das andere gewinnt an Popularit\u00e4t. Neben diesen gibt es auch andere, die wir in diesem Artikel jedoch nicht behandeln werden.<\/p>\n<p><\/p>\n<p>Angesichts aller oben genannten Eigenschaften kann das Logging in Kubernetes nun in einem solchen Schema dargestellt werden:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/81f4989c1fb7b1a4ac37524db76fd4e4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Der Container-Log bleibt bestehen, die Rotation ist aktiv, aber ein Sammler-Agent wird eingef\u00fchrt, der die Logs aufnimmt und zur Speicherung sendet (in der Darstellung \u2014 zum Logging Backend). Der Agent l\u00e4uft auf jedem Knoten und wird in der Regel in Kubernetes ausgef\u00fchrt.<\/p>\n<p><\/p>\n<p>Jetzt betrachten wir die Logging-Tools.<\/p>\n<p><\/p>\n<h2 id=\"grafana-loki\">Grafana Loki<\/h2>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/oss\/loki\/\">Grafana Loki<\/a><\/noindex> er ist k\u00fcrzlich erschienen, hat sich aber bereits einen gewissen Bekanntheitsgrad erarbeitet. Seine Vorteile: einfache Installation, geringer Ressourcenverbrauch, keine Notwendigkeit zur Installation von Elasticsearch, da er die Daten in einer TSDB (zeitbasierten Datenbank) speichert. In meinem vorherigen Artikel erw\u00e4hnte ich, dass Prometheus Daten in einer solchen Datenbank speichert, und das ist eine der vielen \u00c4hnlichkeiten zwischen den beiden Produkten. Die Entwickler behaupten sogar, dass Loki das 'Prometheus f\u00fcr die Logging-Welt' ist.<\/p>\n<p><\/p>\n<p>Ein kleiner Einschub \u00fcber TSDB f\u00fcr diejenigen, die nicht gelesen haben. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/516748\/\">den vorherigen Artikel<\/a><\/noindex>: TSDB eignet sich hervorragend zur Speicherung gro\u00dfer Datenmengen und Zeitreihen, ist jedoch nicht f\u00fcr die langfristige Speicherung gedacht. Wenn Sie aus irgendeinem Grund Logs l\u00e4nger als zwei Wochen speichern m\u00fcssen, ist es besser, deren \u00dcbertragung in eine andere Datenbank einzurichten.<\/p>\n<p><\/p>\n<p>Ein weiterer Vorteil von Loki ist, dass zur Datenvisualisierung Grafana verwendet wird. Es ist sehr praktisch: In Grafana sehen wir die \u00dcberwachungsdaten und k\u00f6nnen dort auch, verbunden mit Loki, die Protokolle einsehen. Anhand der Protokolle k\u00f6nnen Grafiken erstellt werden.<\/p>\n<p><\/p>\n<p>Die Architektur von Loki sieht ungef\u00e4hr so aus: <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/8e4ed48dbb84b7813b96728b9efddcec.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mit einem DaemonSet wird auf allen Servern des Clusters ein Agent \u2014 Promtail oder Fluent Bit \u2014 bereitgestellt. Der Agent sammelt die Protokolle. Loki holt sie ab und speichert sie in seiner TSDB. Gleichzeitig werden den Protokollen Metadaten hinzugef\u00fcgt, was praktisch ist: Man kann nach Pods, Namespaces, Containernamen und sogar Labels filtern.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/docs\/loki\/latest\/installation\/\">Installationsanleitung f\u00fcr Loki<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Loki funktioniert in der vertrauten Benutzeroberfl\u00e4che von Grafana. Loki hat sogar eine eigene Abfragesprache, die LogQL genannt wird \u2014 benannt nach und im Syntax \u00e4hnlich zu PromQL in Prometheus. In der Benutzeroberfl\u00e4che von Loki gibt es Vorschl\u00e4ge f\u00fcr Abfragen, sodass man sie nicht auswendig wissen muss.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/docs\/loki\/latest\/logql\/\">Dokumentation zur Sprache LogQL<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/acd3028fa181604be4523096d87e48cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Loki in der Benutzeroberfl\u00e4che von Grafana<\/em><\/p>\n<p><\/p>\n<p>Mit Filtern kann man in Loki Codes finden (\"400\", \"404\" und jeden anderen); die Protokolle von allen Nodes ansehen; alle Protokolle filtern, die das Wort \"error\" enthalten. Wenn man auf ein Protokoll klickt, \u00f6ffnet sich eine Karte mit allen Informationen zum Ereignis.<\/p>\n<p><\/p>\n<p>In Loki gibt es ausreichend Werkzeuge, um die ben\u00f6tigten Logs zu extrahieren, obwohl es technisch gesehen ruhig mehr davon geben k\u00f6nnte. Momentan entwickelt sich Loki aktiv weiter und gewinnt an Popularit\u00e4t. <\/p>\n<p><\/p>\n<h2 id=\"elastic--fluent-bit--kibana-efk-stack\">Elastic + Fluent Bit + Kibana (EFK-Stack)<\/h2>\n<p><\/p>\n<p>Der EFK-Stack ist ein klassisches und zugleich sehr beliebtes Logging-Tool. <\/p>\n<p><\/p>\n<p>Am Anfang des Artikels wurde das ELK (Elasticsearch + Logstash + Kibana) erw\u00e4hnt, aber dieser Stack ist veraltet, da Logstash nicht sehr leistungsf\u00e4hig und gleichzeitig ressourcenintensiv ist. Stattdessen wird nun der leichtere und leistungsf\u00e4higere Fluentd eingesetzt, dem sp\u00e4ter noch <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/about\/what-is-fluent-bit\">Fluent Bit<\/a><\/noindex> \u2014 ein noch leichterer und leistungsf\u00e4higerer Collector-Agent \u2014 zur Seite steht. <\/p>\n<p><\/p>\n<p>Wenn man den Entwicklern glauben kann, ist Fluent Bit \u00fcber 100 Mal leistungsf\u00e4higer als Fluentd: \u201eWo Fluentd 20 MB RAM ben\u00f6tigt, ben\u00f6tigt Fluent Bit nur 150 KB\u201c \u2014 ein direktes Zitat aus der Dokumentation. Angesichts dieser Tatsache wird Fluent Bit h\u00e4ufiger verwendet.<\/p>\n<p><\/p>\n<p>Fluent Bit hat weniger Funktionen als Fluentd, deckt jedoch die grundlegenden Anforderungen ab, weshalb wir haupts\u00e4chlich Fluent Bit nutzen.<\/p>\n<p><\/p>\n<p>Das EFK-Stack-Arbeitsdiagramm: Der Agent sammelt Protokolle von allen Pods (in der Regel handelt es sich um ein DaemonSet, das auf allen Cluster-Servern ausgef\u00fchrt wird) und sendet sie an den Speicher (Elasticsearch, PostgreSQL oder Kafka). Kibana verbindet sich mit dem Speicher und ruft alle ben\u00f6tigten Informationen ab.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/cd5101637d30ab1e5f019fa424147023.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/kibana\">Kibana<\/a><\/noindex> stellt die Informationen in einer benutzerfreundlichen Weboberfl\u00e4che dar. Es gibt Grafiken, Filter und vieles mehr.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/523a219739b6e7641694b240c61a15d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Aus den Protokollen k\u00f6nnen ganze Dashboards erstellt werden.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/21b580f8b4871bdda64692563f53303e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"vozmozhnosti-fluent-bit\">Die M\u00f6glichkeiten von Fluent Bit<\/h2>\n<p><\/p>\n<p>Da Fluent Bit im Allgemeinen weniger bekannt ist als Logstash, wollen wir etwas genauer darauf eingehen. Fluent Bit kann logisch in 6 Module unterteilt werden, wobei einige Module mit Plugins ausgestattet werden k\u00f6nnen, die die M\u00f6glichkeiten von Fluent Bit erweitern.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Protokollierung in Kubernetes: So sammeln, speichern, analysieren und verarbeiten Sie Logs\" src=\"\/wp-content\/uploads\/2020\/09\/f95a642aad7f5d291e05d8a17d1aaadc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Input-Modul<\/strong> sammelt Protokolle aus Dateien, systemd-Diensten und sogar \u00fcber TCP-Sockets (man muss nur den Endpunkt angeben, und Fluent Bit beginnt, dorthin zu gehen). Diese Funktionen sind ausreichend, um Protokolle sowohl vom System als auch von Containern zu sammeln.<\/p>\n<p><\/p>\n<p>In der Produktion verwenden wir am h\u00e4ufigsten Plugins <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/pipeline\/inputs\/tail\">tail<\/a><\/noindex> (man kann es auf einen Ordner mit Protokollen richten) und <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/pipeline\/inputs\/systemd\">systemd<\/a><\/noindex> (man kann angeben, aus welchen Diensten Protokolle gesammelt werden sollen).<\/p>\n<p><\/p>\n<p><strong>Parser-Modul<\/strong> bringt die Protokolle in ein einheitliches Format. Standardm\u00e4\u00dfig sind die Nginx-Protokolle Zeichenfolgen. Mit dem Plug-in kann diese Zeichenfolge in JSON umgewandelt werden: Felder und deren Werte k\u00f6nnen festgelegt werden. Mit JSON l\u00e4sst sich viel einfacher arbeiten als mit der Zeichenprotokollierung, da es flexiblere Sortierm\u00f6glichkeiten bietet.<\/p>\n<p><\/p>\n<p><strong>Filtermodul<\/strong>. In diesem Schritt werden unn\u00f6tige Protokolle herausgefiltert. Zum Beispiel werden nur Protokolle mit dem Wert \u201ewarning\u201c oder bestimmten Labels zur Speicherung weitergeleitet. Die ausgew\u00e4hlten Protokolle gelangen in den Puffer.<\/p>\n<p><\/p>\n<p><strong>Puffermodul<\/strong>. Fluent Bit hat zwei Arten von Puffern: Arbeitsspeicherpuffer und Festplattenspeicher. Der Puffer ist ein tempor\u00e4rer Speicher f\u00fcr Protokolle, der im Fall von Fehlern oder St\u00f6rungen ben\u00f6tigt wird. Jeder m\u00f6chte RAM sparen, daher wird oft der Festplattenspeicher gew\u00e4hlt. Es muss jedoch ber\u00fccksichtigt werden, dass die Protokolle vor dem Speichern auf der Festplatte dennoch im Arbeitsspeicher abgelegt werden.<\/p>\n<p><\/p>\n<p><strong>Routing-\/Ausgabemodul<\/strong> enth\u00e4lt Regeln und Adressen f\u00fcr das Senden von Protokollen. Wie bereits erw\u00e4hnt, k\u00f6nnen Protokolle an Elasticsearch, PostgreSQL oder beispielsweise Kafka gesendet werden. <\/p>\n<p><\/p>\n<p>Interessant ist, dass Sie Fluent Bit-Protokolle in Fluentd senden k\u00f6nnen. Da die erste Option leichter und weniger funktionsreich ist, k\u00f6nnen Sie \u00fcber sie Protokolle sammeln und an Fluentd senden, wo sie mithilfe zus\u00e4tzlicher Plugins weiterverarbeitet und in Speicherorte gesendet werden k\u00f6nnen.<\/p>\n<p><\/p>\n<blockquote><p>Wenn Sie vorhaben, Elasticsearch zu verwenden...<\/p>\n<p>Zum Abschluss zwei Tipps f\u00fcr diejenigen, die planen, Elasticsearch als Protokollspeicher in der Produktion zu verwenden. <\/p>\n<ol>\n<li>Richten Sie Benachrichtigungen mit <noindex><a rel=\"nofollow\" href=\"https:\/\/elastalert.readthedocs.io\/en\/latest\/\">ElastAlert<\/a><\/noindex>ein. Dieses Programm extrahiert wichtige Nachrichten aus dem Gesamtstrom der Protokolle und erstellt Alarme per E-Mail oder \u00fcber einen anderen Kanal. K\u00fcrzlich gab es jedoch eine <em><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yelp\/elastalert\/issues\/2911\">tragische Nachricht, dass das Projekt m\u00f6glicherweise bald eingestellt wird.<\/a><\/noindex><\/em>.<\/li>\n<li>Rotieren Sie Protokolle mithilfe der Anwendung <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/client\/curator\/5.8\/index.html\">Curator<\/a><\/noindex> oder API-Anfragen an Elasticsearch. Im Grunde genommen macht Elastic derzeit betr\u00e4chtliche Fortschritte im Management der Lebenszyklen von Indizes, ohne auf externe Tools zur\u00fcckgreifen zu m\u00fcssen. Generell macht es keinen Sinn, Protokolle lange aufzubewahren: Es ist unwahrscheinlich, dass irgendein Log nach zwei Wochen noch ben\u00f6tigt wird \u2014 wenn es tats\u00e4chlich kritisch ist, wird es in diesen zwei Wochen bestimmt bereits bearbeitet sein. Im schlimmsten Fall k\u00f6nnen alte Logs archiviert und irgendwo f\u00fcr die Langzeitlagerung geschickt werden. Ich habe von speziellen Logs geh\u00f6rt, die gesetzlich bis zu 5 Jahre aufbewahrt werden m\u00fcssen. Pers\u00f6nlich habe ich mit so etwas nicht zu tun gehabt, aber ich w\u00fcrde diese Informationen nicht mit normalen Logs gleichsetzen und w\u00fcrde sie m\u00f6glicherweise sogar separat aufbewahren.<\/li>\n<\/ol>\n<p>\n<\/p><\/blockquote>\n<p>Fortsetzung folgt\u2026<\/p>\n<p><\/p>\n<p><em>Autor: Marsel Ibraev, zertifizierter Kubernetes-Administrator, praktizierender Ingenieur bei der Firma <noindex><a rel=\"nofollow\" href=\"https:\/\/to.slurm.io\/TBhTzQ\">Southbridge<\/a><\/noindex>, Sprecher und Kursentwickler <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Tinm9w\">Slurm<\/a><\/noindex>.<\/em><\/p>\n<p>Quelle: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/517636\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Docker \u0438 Kubernetes, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Grafana Loki \u0438 \u0441\u0442\u0435\u043a EFK (Elasticsearch + Fluent Bit + Kibana). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u044b\u0436\u0438\u043c\u043a\u0430 \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0435\u043a\u0446\u0438\u0438 \u0448\u043a\u043e\u043b\u044b \u00ab\u0421\u043b\u0451\u0440\u043c\u00bb. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0443\u0440\u0441 \u043f\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":93295,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-93294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Docker \u0438 Kubernetes, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Grafana Loki \u0438 \u0441\u0442\u0435\u043a EFK (Elasticsearch + Fluent Bit + Kibana). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u044b\u0436\u0438\u043c\u043a\u0430 \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0435\u043a\u0446\u0438\u0438 \u0448\u043a\u043e\u043b\u044b \u00ab\u0421\u043b\u0451\u0440\u043c\u00bb. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0443\u0440\u0441 \u043f\u043e\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"de_DE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Kubernetes: \u043a\u0430\u043a \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Docker \u0438 Kubernetes, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Grafana Loki \u0438 \u0441\u0442\u0435\u043a EFK (Elasticsearch + Fluent Bit + Kibana). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u044b\u0436\u0438\u043c\u043a\u0430 \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0435\u043a\u0446\u0438\u0438 \u0448\u043a\u043e\u043b\u044b \u00ab\u0421\u043b\u0451\u0440\u043c\u00bb. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0443\u0440\u0441 \u043f\u043e\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-05T05:42:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-05T05:42:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Logging in Kubernetes: Wie man Logs sammelt, speichert, parst und verarbeitet | ProHoster","description":"Lassen Sie uns die Grundlagen des Loggings in Docker und Kubernetes besprechen und dann zwei Werkzeuge betrachten, die man bedenkenlos in der Produktion einsetzen kann: Grafana Loki und das EFK-Stack (Elasticsearch + Fluent Bit + Kibana). Der Inhalt des Artikels ist eine Zusammenfassung aus einer offenen Vorlesung der Schule \u201eSlyrm\u201c. Wenn es den Wunsch und insbesondere einen Produktionsbedarf gibt, k\u00f6nnen Sie eine vollst\u00e4ndige Ausbildung absolvieren \u2014 melden Sie sich f\u00fcr den Kurs an.","canonical_url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"de_DE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432 Kubernetes: \u043a\u0430\u043a \u0441\u043e\u0431\u0438\u0440\u0430\u0442\u044c, \u0445\u0440\u0430\u043d\u0438\u0442\u044c, \u043f\u0430\u0440\u0441\u0438\u0442\u044c \u0438 \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u043b\u043e\u0433\u0438 | ProHoster","og:description":"\u0420\u0430\u0437\u0431\u0435\u0440\u0451\u043c \u043e\u0441\u043d\u043e\u0432\u044b \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 Docker \u0438 Kubernetes, \u0430 \u0437\u0430\u0442\u0435\u043c \u0440\u0430\u0441\u0441\u043c\u043e\u0442\u0440\u0438\u043c \u0434\u0432\u0430 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u043e\u0436\u043d\u043e \u0441\u043c\u0435\u043b\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u043f\u0440\u043e\u0434\u0430\u043a\u0448\u0435\u043d\u0435: Grafana Loki \u0438 \u0441\u0442\u0435\u043a EFK (Elasticsearch + Fluent Bit + Kibana). \u041c\u0430\u0442\u0435\u0440\u0438\u0430\u043b \u0441\u0442\u0430\u0442\u044c\u0438 \u2014 \u0432\u044b\u0436\u0438\u043c\u043a\u0430 \u0438\u0437 \u043e\u0442\u043a\u0440\u044b\u0442\u043e\u0439 \u043b\u0435\u043a\u0446\u0438\u0438 \u0448\u043a\u043e\u043b\u044b \u00ab\u0421\u043b\u0451\u0440\u043c\u00bb. \u0415\u0441\u043b\u0438 \u0435\u0441\u0442\u044c \u0436\u0435\u043b\u0430\u043d\u0438\u0435 \u0438 \u0442\u0435\u043c \u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0441\u0442\u0432\u0435\u043d\u043d\u0430\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\u0441\u0442\u044c \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u043e\u043b\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 \u2014 \u0437\u0430\u043f\u0438\u0441\u044b\u0432\u0430\u0439\u0442\u0435\u0441\u044c \u043d\u0430 \u043a\u0443\u0440\u0441 \u043f\u043e","og:url":"https:\/\/prohoster.info\/de\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-05T05:42:58+00:00","article:modified_time":"2020-09-05T05:42:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"93294","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:50:29","updated":"2022-09-27 18:43:48"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/93294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/comments?post=93294"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/posts\/93294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media\/93295"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/media?parent=93294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/categories?post=93294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/de\/wp-json\/wp\/v2\/tags?post=93294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}