{"id":89038,"date":"2020-07-17T19:42:30","date_gmt":"2020-07-17T17:42:30","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg"},"modified":"2020-07-17T19:42:30","modified_gmt":"2020-07-17T17:42:30","slug":"logirovanie-v-kubernetes-efk-protiv-plg","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg","title":{"rendered":"Logowanie w Kubernetes: EFK przeciwko PLG","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/0b7076a32f4c9a830bf6b765055510cc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Monitorowanie sta\u0142o si\u0119 bardzo wa\u017cnym elementem rozwijaj\u0105cych si\u0119 rozwi\u0105za\u0144 chmurowych w miar\u0119 wzrostu z\u0142o\u017cono\u015bci system\u00f3w rozproszonych. Jest niezb\u0119dne do zrozumienia ich zachowania. Potrzebne s\u0105 skalowalne narz\u0119dzia, kt\u00f3re b\u0119d\u0105 w stanie zbiera\u0107 dane z wszystkich us\u0142ug \u2014 i zapewni\u0107 specjalistom jedyny interfejs z analiz\u0105 wydajno\u015bci, prezentacj\u0105 b\u0142\u0119d\u00f3w, dost\u0119pno\u015bci\u0105 i logami. <\/p>\n<p><\/p>\n<p>Te same narz\u0119dzia powinny by\u0107 efektywne i wydajne. W tym artykule om\u00f3wimy dwa popularne zestawy technologii: EFK (Elasticsearch) i PLG (Loki) oraz przeanalizujemy ich architektury i r\u00f3\u017cnice.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"stek-efk\">Zestaw EFK<\/h2>\n<p><\/p>\n<p>By\u0107 mo\u017ce s\u0142ysza\u0142e\u015b o bardzo popularnym ELK lub EFK. Zestaw sk\u0142ada si\u0119 z kilku oddzielnych cz\u0119\u015bci: Elasticsearch (obiektowe magazynowanie), Logstash lub FluentD (zbieranie i agregacja log\u00f3w) oraz Kibana do wizualizacji.<\/p>\n<p><\/p>\n<p>Typowy schemat dzia\u0142ania wygl\u0105da tak:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/75a2b7d079064f7aa662d9e27f73c3f2.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Elasticsearch<\/strong> \u2014 rozproszone obiektowe magazynowanie z wyszukiwaniem i analiz\u0105 w czasie rzeczywistym. Doskona\u0142e rozwi\u0105zanie dla cz\u0119\u015bciowo z\u0142o\u017conych danych, takich jak logi. Informacje s\u0105 przechowywane w postaci dokument\u00f3w JSON, indeksowane w czasie rzeczywistym i rozdzielane po w\u0119z\u0142ach klastra. U\u017cywany jest indeks odwr\u00f3cony, kt\u00f3ry zawiera wszystkie unikalne s\u0142owa i powi\u0105zane z nimi dokumenty do wyszukiwania pe\u0142notekstowego, kt\u00f3re z kolei opiera si\u0119 na silniku wyszukiwania Apache Lucene.<\/p>\n<p><\/p>\n<p><strong>FluentD<\/strong> \u2014 to zbieracz danych, kt\u00f3ry wykonuje unifikacj\u0119 danych podczas ich zbierania i konsumowania. Stara si\u0119 uporz\u0105dkowa\u0107 dane w JSON, w miar\u0119 mo\u017cliwo\u015bci. Jego architektura jest rozszerzalna, istnieje wi\u0119cej ni\u017c <noindex><a rel=\"nofollow\" href=\"https:\/\/www.fluentd.org\/plugins\/all\">setek r\u00f3\u017cnych rozszerze\u0144<\/a><\/noindex>, wspieranych przez spo\u0142eczno\u015b\u0107, na wszelkie okazje.<\/p>\n<p><\/p>\n<p><strong>Kibana<\/strong> \u2014 narz\u0119dzie wizualizacji danych dla Elasticsearch z r\u00f3\u017cnymi dodatkowymi mo\u017cliwo\u015bciami, takimi jak analiza szereg\u00f3w czasowych, grafami, uczeniem maszynowym i innymi.<\/p>\n<p><\/p>\n<h3 id=\"arhitektura-elasticsearch\">Architektura Elasticsearch<\/h3>\n<p><\/p>\n<p>Dane klastra Elasticsearch s\u0105 przechowywane rozproszone na wszystkich jego w\u0119z\u0142ach. Klastr sk\u0142ada si\u0119 z kilku w\u0119z\u0142\u00f3w w celu zwi\u0119kszenia dost\u0119pno\u015bci i odporno\u015bci. Ka\u017cdy w\u0119ze\u0142 mo\u017ce pe\u0142ni\u0107 wszystkie role klastra, ale w du\u017cych, skalowalnych wdro\u017ceniach w\u0119z\u0142om zazwyczaj przypisywane s\u0105 oddzielne zadania.<\/p>\n<p><\/p>\n<p>Typy w\u0119z\u0142\u00f3w klastra:<\/p>\n<p><\/p>\n<ul>\n<li>master node \u2014 zarz\u0105dza klastrem, potrzebne s\u0105 minimum trzy, z czego jeden jest zawsze aktywny;<\/li>\n<li>data node \u2014 przechowuje zindeksowane dane i wykonuje r\u00f3\u017cne zadania z nimi zwi\u0105zane;<\/li>\n<li>w\u0119ze\u0142 ingest \u2014 organizuje konwertery do przetwarzania danych przed indeksowaniem;<\/li>\n<li>w\u0119ze\u0142 koordynuj\u0105cy \u2014 routowanie zapyta\u0144, redukcja fazy przetwarzania wyszukiwania, koordynacja masowej indeksacji;<\/li>\n<li>w\u0119ze\u0142 alertuj\u0105cy \u2014 uruchomienie zada\u0144 powiadamiania;<\/li>\n<li>w\u0119ze\u0142 uczenia maszynowego \u2014 przetwarzanie zada\u0144 uczenia maszynowego.<\/li>\n<\/ul>\n<p><\/p>\n<p>Na poni\u017cszym diagramie pokazano, jak dane s\u0105 przechowywane i replikowane mi\u0119dzy w\u0119z\u0142ami w celu uzyskania wy\u017cszej dost\u0119pno\u015bci danych.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/b476660dc60aca34fbe421b8eaf0ee31.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dane ka\u017cdej repliki s\u0105 przechowywane w indeksie odwr\u00f3conym, poni\u017cszy schemat pokazuje, jak to dzia\u0142a:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/0341c127742a5e8fe787f2076be0464f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"ustanovka\">Instalacja<\/h3>\n<p><\/p>\n<p>Szczeg\u00f3\u0142y mo\u017cna zobaczy\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.digitalocean.com\/community\/tutorials\/how-to-set-up-an-elasticsearch-fluentd-and-kibana-efk-logging-stack-on-kubernetes\">tutaj<\/a><\/noindex>, b\u0119d\u0119 korzysta\u0107 z helm chart:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ helm install efk-stack stable\/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics<\/code><\/pre>\n<p><\/p>\n<h2 id=\"stek-plg\">Stos PLG<\/h2>\n<p><\/p>\n<p>Nie nale\u017cy si\u0119 dziwi\u0107, je\u015bli nie mo\u017cesz znale\u017a\u0107 tego akronimu, poniewa\u017c bardziej znany jest jako Grafana Loki. W ka\u017cdym razie ten stos zyskuje na popularno\u015bci, poniewa\u017c wykorzystuje przemy\u015blane rozwi\u0105zania techniczne. M\u00f3g\u0142 ju\u017c s\u0142ysze\u0107 o Grafanie, popularnym narz\u0119dziu do wizualizacji. Jej tw\u00f3rcy, inspirowani Prometheusem, stworzyli Loki, poziomo skalowalny system agregacji log\u00f3w o wysokiej wydajno\u015bci. Loki indeksuje tylko metadane, ale nie same logi, co pozwoli\u0142o mu by\u0107 prostym w obs\u0142udze i ekonomicznie op\u0142acalnym.<\/p>\n<p><\/p>\n<p><strong>Promtail<\/strong> \u2014 agent do wysy\u0142ania log\u00f3w z systemu operacyjnego do klastra Loki. <strong>Grafana<\/strong> \u2014 narz\u0119dzie do wizualizacji oparte na danych z Loki.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/3cc613eacf013723d46e7d31ff166dac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Loki zbudowano na tych samych zasadach, co Prometheus, dlatego dobrze nadaje si\u0119 do przechowywania i analizy log\u00f3w Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"arhitektura-loki\">Architektura Loki<\/h3>\n<p><\/p>\n<p>Loki mo\u017cna uruchomi\u0107 zar\u00f3wno w trybie pojedynczego procesu, jak i w kilku procesach, co zapewnia poziome skalowanie.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/82679c9a38f6115d0c8f3911533fb9f6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Mo\u017ce r\u00f3wnie\u017c dzia\u0142a\u0107 zar\u00f3wno jako monolityczna aplikacja, jak i jako mikroserwis. Uruchomienie w trybie pojedynczego procesu mo\u017ce by\u0107 przydatne do lokalnego rozwoju lub ma\u0142ego monitorowania. Dla wdro\u017cenia przemys\u0142owego i obci\u0105\u017cenia skalowalnego zaleca si\u0119 zastosowanie wariantu mikroserwisowego. \u015acie\u017cki zapisu i odczytu danych s\u0105 oddzielone, co pozwala dostosowa\u0107 i skalowa\u0107 go adekwatnie do potrzeb.<\/p>\n<p><\/p>\n<p>Zobaczmy architektur\u0119 systemu zbierania log\u00f3w bez szczeg\u00f3\u0142\u00f3w:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/f66b90693295acb723b01aecfd7381dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A tu \u2014 opis (architektura mikroserwisowa):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/a2d74e86e75c4fb3ef39823ed2170517.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Sk\u0142adniki:<\/p>\n<p><\/p>\n<p><strong>Promtail<\/strong> \u2014 agent instalowany na w\u0119z\u0142ach (w postaci zestawu us\u0142ug), zbiera logi z zada\u0144 i korzysta z API Kubernetes, aby uzyska\u0107 metadane, kt\u00f3rymi b\u0119d\u0105 oznaczane logi. Nast\u0119pnie wysy\u0142a log do g\u0142\u00f3wnej us\u0142ugi Loki. Dla dopasowania metadanych stosowane s\u0105 te same zasady etykietowania, co w Prometheus.<\/p>\n<p><\/p>\n<p><strong>Dystrybutor<\/strong> \u2014 us\u0142uga dystrybucji dzia\u0142aj\u0105ca jako bufor. Aby przetwarza\u0107 miliony wpis\u00f3w, pakuje przychodz\u0105ce dane, kompresuj\u0105c je w blokach podczas ich przyjmowania. R\u00f3wnocze\u015bnie dzia\u0142a kilka odbiornik\u00f3w danych, ale logi nale\u017c\u0105ce do jednego strumienia danych musz\u0105 znale\u017a\u0107 si\u0119 tylko w jednym z nich dla wszystkich jego blok\u00f3w. To jest zorganizowane w postaci pier\u015bcienia odbiornik\u00f3w i sekwencyjnego haszowania. Dla odporno\u015bci na awarie i redundancji odbywa si\u0119 to n razy (3, je\u015bli nie jest konfigurowane).<\/p>\n<p><\/p>\n<p><strong>Ingester<\/strong> \u2014 us\u0142uga odbiorcza. Bloki danych przychodz\u0105 skompresowane z dodanymi logami. Gdy blok osi\u0105ga wystarczaj\u0105cy rozmiar, jest zrzucany do bazy danych. Metadane trafiaj\u0105 do indeksu, a dane z bloku z logiem przechodz\u0105 do Chunks (zwykle jest to magazyn obiektowy). Po zrzucie odbiorca tworzy nowy blok, do kt\u00f3rego b\u0119d\u0105 dodawane nowe wpisy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/a277021b303ffa3eb924b4dfc617564a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Index<\/strong> \u2014 baza danych, DynamoDB, Cassandra, Google BigTable i inne.<\/p>\n<p><\/p>\n<p><strong>Chunks<\/strong> \u2014 bloki log\u00f3w w skompresowanej formie, zazwyczaj przechowywane w magazynie obiektowym, takim jak S3.<\/p>\n<p><\/p>\n<p><strong>Querier<\/strong> \u2014 \u015bcie\u017cka odczytu, wykonuj\u0105ca ca\u0142\u0105 czarn\u0105 robot\u0119. Sprawdza zakres czasowy i etykiety, a nast\u0119pnie przeszukuje indeks w celu znalezienia dopasowa\u0144. Nast\u0119pnie odczytuje bloki danych i filtruje je, aby uzyska\u0107 wyniki.<\/p>\n<p><\/p>\n<p>A teraz przyjrzyjmy si\u0119 wszystkiemu w akcji.<\/p>\n<p><\/p>\n<h3 id=\"ustanovka-1\">Instalacja<\/h3>\n<p><\/p>\n<p>Naj\u0142atwiejszym sposobem na zainstalowanie w Kubernetes jest skorzystanie z helm. Zak\u0142adamy, \u017ce ju\u017c go zainstalowa\u0142e\u015b i skonfigurowa\u0142e\u015b (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/507656\/\">i trzeciej wersji!<\/a><\/noindex> <em>przyp. t\u0142umacza<\/em>)<\/p>\n<p><\/p>\n<p>Dodajemy repozytorium i instalujemy stos.<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">$ helm repo add loki https:\/\/grafana.github.io\/loki\/charts\n$ helm repo update\n$ helm upgrade --install loki loki\/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false<\/code><\/pre>\n<p><\/p>\n<p>Poni\u017cej znajduje si\u0119 przyk\u0142ad pulpitu, na kt\u00f3rym pokazano dane z Prometheus dla metryk Etcd i Loki dla log\u00f3w pod\u00f3w Etcd.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logowanie w Kubernetes: EFK przeciwko PLG\" src=\"\/wp-content\/uploads\/2020\/07\/36efc5b7abe7ad3c3f8869bd09a9e3e7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A teraz porozmawiajmy o architekturze obu system\u00f3w i por\u00f3wnajmy ich mo\u017cliwo\u015bci.<\/p>\n<p><\/p>\n<h2 id=\"sravnenie\">Por\u00f3wnanie<\/h2>\n<p><\/p>\n<h3 id=\"yazyk-zaprosov\">J\u0119zyk zapyta\u0144<\/h3>\n<p><\/p>\n<p>W Elasticsearch u\u017cywany jest Query DSL oraz j\u0119zyk zapyta\u0144 Lucene, kt\u00f3re umo\u017cliwiaj\u0105 pe\u0142notekstowe wyszukiwanie. To ustalony, pot\u0119\u017cny silnik wyszukiwania z szerok\u0105 obs\u0142ug\u0105 operator\u00f3w. Dzi\u0119ki niemu mo\u017cna wyszukiwa\u0107 w kontek\u015bcie i sortowa\u0107 wed\u0142ug istotno\u015bci. <\/p>\n<p><\/p>\n<p>Po drugiej stronie ringu znajduje si\u0119 LogQL, stosowany w Loki, nast\u0119pcy PromQL (j\u0119zyka zapyta\u0144 Prometheusa). Wykorzystuje on etykiety log\u00f3w do filtrowania i selekcji danych log\u00f3w. Mo\u017cliwe jest u\u017cycie niekt\u00f3rych operator\u00f3w oraz arytmetyki, jak opisano <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/logql.md\">tutaj<\/a><\/noindex>, ale pod wzgl\u0119dem mo\u017cliwo\u015bci ust\u0119puje j\u0119zykowi Elastic.<\/p>\n<p><\/p>\n<p>Poniewa\u017c zapytania w Loki s\u0105 zwi\u0105zane z etykietami \u2014 \u0142atwo je powi\u0105za\u0107 z metrykami, co u\u0142atwia organizacj\u0119 monitoringu operacyjnego.<\/p>\n<p><\/p>\n<h3 id=\"masshtabiruemost\">Skalowalno\u015b\u0107<\/h3>\n<p><\/p>\n<p>Oba stosy s\u0105 horyzontalnie skalowalne, ale w przypadku Loki jest to prostsze, poniewa\u017c ma on oddzielne \u015bcie\u017cki do odczytu i zapisu danych oraz architektur\u0119 mikroserwisow\u0105. Loki mo\u017ce by\u0107 dostosowany do Twoich potrzeb i mo\u017ce by\u0107 u\u017cywany do bardzo du\u017cych zbior\u00f3w danych log\u00f3w.<\/p>\n<p><\/p>\n<h3 id=\"multiarendnost\">Multi-tenancy<\/h3>\n<p><\/p>\n<p>Multi-tenancy klastra to powszechny temat w redukcji OPEX, oba stosy zapewniaj\u0105 multi-tenancy. Dla Elasticsearch jest kilka <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/blog\/found-multi-tenancy\">sposob\u00f3w<\/a><\/noindex> oddzielania klient\u00f3w: oddzielny indeks dla ka\u017cdego klienta, routowanie na podstawie klienta, unikalne pola klienta, filtry wyszukiwania. W Loki jest to <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/operations\/multi-tenancy.md\">wsparcie<\/a><\/noindex> w postaci nag\u0142\u00f3wka HTTP X-Scope-OrgID.<\/p>\n<p><\/p>\n<h3 id=\"stoimost\">Koszt<\/h3>\n<p><\/p>\n<p>Loki jest bardzo efektywny ekonomicznie, poniewa\u017c nie indeksuje danych, a jedynie metadanych. W ten spos\u00f3b osi\u0105ga si\u0119 <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/blog\/2020\/02\/19\/how-loki-reduces-log-storage\/\">oszcz\u0119dno\u015bci na przechowywaniu<\/a><\/noindex> i pami\u0119ci (cache), poniewa\u017c przechowywanie obiekt\u00f3w jest ta\u0144sze ni\u017c blokowe, kt\u00f3re stosowane jest w klastrach Elasticsearch.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Podsumowanie<\/h2>\n<p><\/p>\n<p>Stos EFK mo\u017ce by\u0107 wykorzystywany do r\u00f3\u017cnych cel\u00f3w, zapewniaj\u0105c maksymaln\u0105 elastyczno\u015b\u0107 i wielofunkcyjny interfejs Kibana do analizy, wizualizacji i zapyta\u0144. Mo\u017ce by\u0107 dodatkowo wzbogacony mo\u017cliwo\u015bciami uczenia maszynowego.<\/p>\n<p><\/p>\n<p>Stos Loki jest przydatny w ekosystemie Kubernetes ze wzgl\u0119du na mechanizm wykrywania metadanych. \u0141atwo mo\u017cna powi\u0105za\u0107 dane do monitorowania opartego na szeregach czasowych w Grafanie i logach.<\/p>\n<p><\/p>\n<p>Kiedy mowa o kosztach i d\u0142ugoterminowym przechowywaniu log\u00f3w, Loki jest \u015bwietnym wyborem do wprowadzenia do rozwi\u0105za\u0144 chmurowych.<\/p>\n<p><\/p>\n<p>Na rynku jest wiele alternatyw \u2014 niekt\u00f3re z nich mog\u0105 by\u0107 lepsze dla Ciebie. Na przyk\u0142ad, GKE ma integracj\u0119 z Stackdriver, co zapewnia doskona\u0142e rozwi\u0105zanie do monitorowania. Nie uwzgl\u0119dnili\u015bmy ich w naszej analizie w tym artykule.<\/p>\n<p><\/p>\n<p>Linki:<\/p>\n<p><\/p>\n<ul>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/overview\/comparisons.md\">https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/overview\/comparisons.md<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/blog\/found-elasticsearch-from-the-bottom-up\">https:\/\/www.elastic.co\/blog\/found-elasticsearch-from-the-bottom-up<\/a><\/noindex><\/li>\n<li><noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/blog\/found-elasticsearch-in-production\/\">https:\/\/www.elastic.co\/blog\/found-elasticsearch-in-production\/<\/a><\/noindex><\/li>\n<\/ul>\n<p><\/p>\n<p><em>Artyku\u0142 zosta\u0142 przet\u0142umaczony i przygotowany dla Habr przez pracownik\u00f3w <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/7x-vEQ\">centrum szkoleniowego Slurm<\/a><\/noindex> \u2014 intensywne kursy, wideo oraz szkolenia korporacyjne prowadzone przez praktyk\u00f3w (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)<\/em><\/p>\n<p>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/510822\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c \u0440\u0430\u0441\u0442\u0443\u0449\u0438\u0445 \u043e\u0431\u043b\u0430\u0447\u043d\u044b\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u0441 \u0440\u043e\u0441\u0442\u043e\u043c \u0441\u043b\u043e\u0436\u043d\u043e\u0441\u0442\u0438 \u0440\u0430\u0441\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c. \u041e\u043d \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u043f\u043e\u043d\u0438\u043c\u0430\u043d\u0438\u044f \u0438\u0445 \u043f\u043e\u0432\u0435\u0434\u0435\u043d\u0438\u044f. \u041d\u0443\u0436\u043d\u044b \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u0443\u0435\u043c\u044b\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0441\u043c\u043e\u0433\u0443\u0442 \u0441\u043e\u0431\u0440\u0430\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u0441\u043e \u0432\u0441\u0435\u0445 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u2014 \u0438 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u0430\u043c \u0435\u0434\u0438\u043d\u044b\u0439 \u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 \u0441 \u0430\u043d\u0430\u043b\u0438\u0437\u043e\u043c \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438, \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0435\u0439 \u043e\u0448\u0438\u0431\u043e\u043a, \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0441\u0442\u044c\u044e \u0438 \u0436\u0443\u0440\u043d\u0430\u043b\u0430\u043c\u0438. \u042d\u0442\u0438 \u0436\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u044d\u0444\u0444\u0435\u043a\u0442\u0438\u0432\u043d\u044b\u043c\u0438 \u0438 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":89039,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-89038","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c.\" \/>\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\/pl\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\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: EFK \u043f\u0440\u043e\u0442\u0438\u0432 PLG | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg\" \/>\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-07-17T17:42:30+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-07-17T17:42:30+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\udd47Logowanie w Kubernetes: EFK kontra PLG | ProHoster","description":"Monitorowanie sta\u0142o si\u0119 niezwykle wa\u017cnym komponentem.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","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: EFK \u043f\u0440\u043e\u0442\u0438\u0432 PLG | ProHoster","og:description":"\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u0441\u0442\u0430\u043b \u0432\u0435\u0441\u044c\u043c\u0430 \u0432\u0430\u0436\u043d\u044b\u043c \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u043c.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg","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-07-17T17:42:30+00:00","article:modified_time":"2020-07-17T17:42:30+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"89038","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 13:17:22","updated":"2022-09-28 02:02:56","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=89038"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/89038\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/89039"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=89038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=89038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=89038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}