{"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\/cs\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg","title":{"rendered":"Logging v Kubernetes: EFK vs PLG","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/0b7076a32f4c9a830bf6b765055510cc.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Monitorov\u00e1n\u00ed se stalo velmi d\u016fle\u017eitou sou\u010d\u00e1st\u00ed rostouc\u00edch cloudov\u00fdch \u0159e\u0161en\u00ed s rostouc\u00ed slo\u017eitost\u00ed distribuovan\u00fdch syst\u00e9m\u016f. Je nezbytn\u00e9 pro pochopen\u00ed jejich chov\u00e1n\u00ed. Jsou pot\u0159eba \u0161k\u00e1lovateln\u00e9 n\u00e1stroje, kter\u00e9 dok\u00e1\u017eou sb\u00edrat data ze v\u0161ech slu\u017eeb \u2014 a poskytnout specialist\u016fm jednotn\u00e9 rozhran\u00ed s anal\u00fdzou v\u00fdkonu, zobrazen\u00edm chyb, dostupnost\u00ed a \u017eurn\u00e1ly. <\/p>\n<p><\/p>\n<p>Tyto n\u00e1stroje mus\u00ed b\u00fdt tak\u00e9 efektivn\u00ed a v\u00fdkonn\u00e9. V tomto \u010dl\u00e1nku se pod\u00edv\u00e1me na dv\u011b popul\u00e1rn\u00ed technologie: EFK (Elasticsearch) a PLG (Loki) a vysv\u011btl\u00edme jejich architektury a rozd\u00edly.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2 id=\"stek-efk\">EFK stack<\/h2>\n<p><\/p>\n<p>Mo\u017en\u00e1 jste ji\u017e sly\u0161eli o velmi popul\u00e1rn\u00edm ELK nebo EFK. Tento stack se skl\u00e1d\u00e1 z n\u011bkolika samostatn\u00fdch \u010d\u00e1st\u00ed: Elasticsearch (objektov\u00e9 \u00falo\u017ei\u0161t\u011b), Logstash nebo FluentD (sb\u011br a agregace \u017eurn\u00e1l\u016f) a Kibana pro vizualizaci.<\/p>\n<p><\/p>\n<p>Typick\u00e1 sch\u00e9ma pr\u00e1ce vypad\u00e1 takto:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs 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 distribuovan\u00e9 objektov\u00e9 \u00falo\u017ei\u0161t\u011b s vyhled\u00e1v\u00e1n\u00edm a anal\u00fdzou v re\u00e1ln\u00e9m \u010dase. Skv\u011bl\u00e9 \u0159e\u0161en\u00ed pro \u010d\u00e1ste\u010dn\u011b strukturovan\u00e1 data, nap\u0159\u00edklad \u017eurn\u00e1ly. Informace jsou uchov\u00e1v\u00e1ny ve form\u011b JSON dokument\u016f, indexov\u00e1ny v re\u00e1ln\u00e9m \u010dase a distribuov\u00e1ny mezi uzly clusteru. Pou\u017e\u00edv\u00e1 se inverzn\u00ed index, kter\u00fd obsahuje v\u0161echna unik\u00e1tn\u00ed slova a s nimi souvisej\u00edc\u00ed dokumenty pro fulltextov\u00e9 vyhled\u00e1v\u00e1n\u00ed, kter\u00e9 je zalo\u017eeno na vyhled\u00e1vac\u00edm enginu Apache Lucene.<\/p>\n<p><\/p>\n<p><strong>FluentD<\/strong> \u2014 je sb\u011bra\u010d dat, kter\u00fd prov\u00e1d\u00ed unifikaci dat p\u0159i jejich sb\u011bru a vyu\u017e\u00edv\u00e1n\u00ed. Sna\u017e\u00ed se co nejv\u00edce uspo\u0159\u00e1dat data do JSON form\u00e1tu. Jeho architektura je roz\u0161i\u0159iteln\u00e1, existuje v\u00edce ne\u017e <noindex><a rel=\"nofollow\" href=\"https:\/\/www.fluentd.org\/plugins\/all\">stovky r\u016fzn\u00fdch roz\u0161\u00ed\u0159en\u00ed<\/a><\/noindex>, kter\u00e1 podporuje komunita, na v\u0161echny p\u0159\u00edpady pou\u017eiteln\u00e9.<\/p>\n<p><\/p>\n<p><strong>Kibana<\/strong> \u2014 n\u00e1stroj pro vizualizaci dat pro Elasticsearch s r\u016fzn\u00fdmi dal\u0161\u00edmi funkcemi, nap\u0159\u00edklad anal\u00fdzou \u010dasov\u00fdch \u0159ad, grafy, strojov\u00fdm u\u010den\u00edm a dal\u0161\u00edmi.<\/p>\n<p><\/p>\n<h3 id=\"arhitektura-elasticsearch\">Architektura Elasticsearch<\/h3>\n<p><\/p>\n<p>Data clusteru Elasticsearch jsou ulo\u017eena rozpt\u00fdlen\u00e1 po v\u0161ech jeho uzlech. Cluster se skl\u00e1d\u00e1 z n\u011bkolika uzl\u016f pro zlep\u0161en\u00ed dostupnosti a odolnosti. Ka\u017ed\u00fd uzel m\u016f\u017ee vykon\u00e1vat v\u0161echny role clusteru, ale v rozs\u00e1hl\u00fdch a \u0161k\u00e1lovateln\u00fdch nasazen\u00edch jsou uzl\u016fm obvykle p\u0159id\u011blov\u00e1ny specifick\u00e9 \u00fakoly.<\/p>\n<p><\/p>\n<p>Typy uzl\u016f clusteru:<\/p>\n<p><\/p>\n<ul>\n<li>master node \u2014 spravuje cluster, pot\u0159eba minim\u00e1ln\u011b t\u0159i, jeden je v\u017edy aktivn\u00ed;<\/li>\n<li>data node \u2014 uchov\u00e1v\u00e1 indexovan\u00e1 data a prov\u00e1d\u00ed s nimi r\u016fzn\u00e9 \u00fakoly;<\/li>\n<li>ingest node \u2014 organizuje potrub\u00ed pro transformaci dat p\u0159ed indexac\u00ed;<\/li>\n<li>coordinating node \u2014 sm\u011brov\u00e1n\u00ed dotaz\u016f, zkracov\u00e1n\u00ed f\u00e1ze zpracov\u00e1n\u00ed vyhled\u00e1v\u00e1n\u00ed, koordinace hromadn\u00e9 indexace;<\/li>\n<li>alerting node \u2014 spou\u0161t\u011bn\u00ed \u00faloh pro upozorn\u011bn\u00ed;<\/li>\n<li>machine learning node \u2014 zpracov\u00e1n\u00ed \u00faloh strojov\u00e9ho u\u010den\u00ed.<\/li>\n<\/ul>\n<p><\/p>\n<p>Na n\u00ed\u017ee uveden\u00e9m diagramu je zn\u00e1zorn\u011bno, jak jsou data ukl\u00e1d\u00e1na a replikov\u00e1na mezi uzly pro zaji\u0161t\u011bn\u00ed vy\u0161\u0161\u00ed dostupnosti dat.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/b476660dc60aca34fbe421b8eaf0ee31.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Data ka\u017ed\u00e9 repliky jsou ulo\u017eena v invertovan\u00e9m indexu, sch\u00e9ma n\u00ed\u017ee ukazuje, jak se to d\u011bje:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/0341c127742a5e8fe787f2076be0464f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h3 id=\"ustanovka\">Instalace<\/h3>\n<p><\/p>\n<p>Podrobnosti si m\u016f\u017eete prohl\u00e9dnout <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\">zde<\/a><\/noindex>, budu pou\u017e\u00edvat 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\">PLG stack<\/h2>\n<p><\/p>\n<p>Nen\u00ed divu, pokud tento akronym nem\u016f\u017eete naj\u00edt, proto\u017ee je v\u00edce zn\u00e1m\u00fd jako Grafana Loki. Tento stack se ka\u017edop\u00e1dn\u011b st\u00e1v\u00e1 popul\u00e1rn\u00edm, proto\u017ee vyu\u017e\u00edv\u00e1 dob\u0159e promy\u0161len\u00e1 technick\u00e1 \u0159e\u0161en\u00ed. Mo\u017en\u00e1 u\u017e jste sly\u0161eli o Grafan\u011b, popul\u00e1rn\u00edm n\u00e1stroji pro vizualizaci. Jej\u00ed tv\u016frci, inspirov\u00e1ni Prometheem, vyvinuli Loki, horizont\u00e1ln\u011b \u0161k\u00e1lovateln\u00fd vysoce v\u00fdkonn\u00fd syst\u00e9m pro agregaci log\u016f. Loki indexuje pouze metadata, nikoli samotn\u00e9 logy, co\u017e mu umo\u017enilo b\u00fdt snadno pou\u017eiteln\u00fdm a ekonomicky v\u00fdhodn\u00fdm \u0159e\u0161en\u00edm.<\/p>\n<p><\/p>\n<p><strong>Promtail<\/strong> \u2014 agent pro odes\u00edl\u00e1n\u00ed log\u016f z opera\u010dn\u00edho syst\u00e9mu do clusteru Loki. <strong>Grafana<\/strong> \u2014 n\u00e1stroj pro vizualizaci zalo\u017een\u00fd na datech z Loki.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/3cc613eacf013723d46e7d31ff166dac.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Loki je postaven na stejn\u00fdch principech jako Prometheus, a proto je dob\u0159e p\u0159izp\u016fsoben pro uchov\u00e1n\u00ed a anal\u00fdzu log\u016f Kubernetes.<\/p>\n<p><\/p>\n<h3 id=\"arhitektura-loki\">Architektura Loki<\/h3>\n<p><\/p>\n<p>Loki m\u016f\u017ee b\u00fdt spu\u0161t\u011bn jak v re\u017eimu jednoho procesu, tak v re\u017eimu n\u011bkolika proces\u016f, co\u017e zaji\u0161\u0165uje horizont\u00e1ln\u00ed \u0161k\u00e1lov\u00e1n\u00ed.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/82679c9a38f6115d0c8f3911533fb9f6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u016f\u017ee tak\u00e9 fungovat jak v re\u017eimu monolitick\u00e9 aplikace, tak jako mikroslu\u017eba. Spu\u0161t\u011bn\u00ed jako jednoho procesu m\u016f\u017ee b\u00fdt u\u017eite\u010dn\u00e9 pro m\u00edstn\u00ed v\u00fdvoj nebo pro mal\u00e9 monitorov\u00e1n\u00ed. Pro pr\u016fmyslov\u00e9 nasazen\u00ed a \u0161k\u00e1lovateln\u00e9 zat\u00ed\u017een\u00ed se doporu\u010duje pou\u017e\u00edt variantu mikroslu\u017eby. Cesty pro z\u00e1pis a \u010dten\u00ed dat jsou odd\u011bleny, tak\u017ee je mo\u017en\u00e9 ho dostate\u010dn\u011b jemn\u011b nastavit a \u0161k\u00e1lovat podle pot\u0159eby.<\/p>\n<p><\/p>\n<p>Pod\u00edvejme se na architekturu syst\u00e9mu sb\u011bru log\u016f bez podrobnost\u00ed:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/f66b90693295acb723b01aecfd7381dd.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A zde \u2014 popis (mikroslu\u017ebov\u00e1 architektura):<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/a2d74e86e75c4fb3ef39823ed2170517.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Slo\u017eky:<\/p>\n<p><\/p>\n<p><strong>Promtail<\/strong> \u2014 agent, kter\u00fd je instalov\u00e1n na uzlov\u00fdch po\u010d\u00edta\u010d\u00edch (ve form\u011b sady slu\u017eeb), shroma\u017e\u010fuje protokoly z \u00faloh a vol\u00e1 API Kubernetes k z\u00edsk\u00e1n\u00ed metadat, kter\u00fdmi budou protokoly ozna\u010deny. Pot\u00e9 odes\u00edl\u00e1 protokol na hlavn\u00ed slu\u017ebu Loki. Pro porovn\u00e1n\u00ed metadat plat\u00ed stejn\u00e1 pravidla pro ozna\u010dov\u00e1n\u00ed jako v Prometheu.<\/p>\n<p><\/p>\n<p><strong>Distributor<\/strong> \u2014 slu\u017eba distribuov\u00e1n\u00ed, funguj\u00edc\u00ed jako buffer. Pro zpracov\u00e1n\u00ed milion\u016f z\u00e1znam\u016f zabal\u00ed p\u0159\u00edchoz\u00ed data a komprimuje je po bloc\u00edch, jak p\u0159ich\u00e1zej\u00ed. Sou\u010dasn\u011b pracuje n\u011bkolik p\u0159\u00edjemc\u016f dat, ale protokoly pat\u0159\u00edc\u00ed jednomu toku p\u0159\u00edchoz\u00edch dat mus\u00ed b\u00fdt v\u017edy v jednom z nich pro v\u0161echny jeho bloky. Je to uspo\u0159\u00e1d\u00e1no jako kruh p\u0159ij\u00edma\u010d\u016f a sekven\u010dn\u00ed hashov\u00e1n\u00ed. Pro odolnost v\u016f\u010di chyb\u00e1m a redundantnost se to prov\u00e1d\u00ed n-kr\u00e1t (3, pokud nen\u00ed nastavena jinak).<\/p>\n<p><\/p>\n<p><strong>Ingester<\/strong> \u2014 slu\u017eba p\u0159\u00edjemce. Bloky dat p\u0159ich\u00e1zej\u00ed komprimovan\u00e9 spolu s p\u0159idan\u00fdmi protokoly. Jakmile je blok dostate\u010dn\u011b velk\u00fd, dojde k jeho ulo\u017een\u00ed do datab\u00e1ze. Metadata jdou do indexu a data z bloku s protokolem kon\u010d\u00ed v Chunks (obvykle se jedn\u00e1 o objektov\u00e9 \u00falo\u017ei\u0161t\u011b). Po ulo\u017een\u00ed p\u0159\u00edjemce vytvo\u0159\u00ed nov\u00fd blok, do kter\u00e9ho budou p\u0159id\u00e1v\u00e1ny nov\u00e9 z\u00e1znamy.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs 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 datab\u00e1ze, DynamoDB, Cassandra, Google BigTable a dal\u0161\u00ed.<\/p>\n<p><\/p>\n<p><strong>Chunks<\/strong> \u2014 bloky protokol\u016f v komprimovan\u00e9 podob\u011b, obvykle ulo\u017een\u00e9 v objektov\u00e9m \u00falo\u017ei\u0161ti, nap\u0159\u00edklad S3.<\/p>\n<p><\/p>\n<p><strong>Querier<\/strong> \u2014 \u010dtec\u00ed cesta, kter\u00e1 vykon\u00e1v\u00e1 ve\u0161kerou \u010dernou pr\u00e1ci. Sleduje \u010dasov\u00e9 intervaly a zna\u010dky, pot\u00e9 prohled\u00e1v\u00e1 index za \u00fa\u010delem nalezen\u00ed shod. N\u00e1sledn\u011b \u010dte bloky dat a filtruje je pro dosa\u017een\u00ed v\u00fdsledku.<\/p>\n<p><\/p>\n<p>A nyn\u00ed se pod\u00edvejme na v\u0161e v akci.<\/p>\n<p><\/p>\n<h3 id=\"ustanovka-1\">Instalace<\/h3>\n<p><\/p>\n<p>Pro instalaci do Kubernetes je nejjednodu\u0161\u0161\u00ed pou\u017e\u00edt helm. P\u0159edpokl\u00e1d\u00e1me, \u017ee jste jej ji\u017e nainstalovali a nastavili (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/507656\/\">a t\u0159et\u00ed verzi!<\/a><\/noindex> <em>pozn. p\u0159ekladatele<\/em>)<\/p>\n<p><\/p>\n<p>P\u0159id\u00e1me repozit\u00e1\u0159 a nainstalujeme stack.<\/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>N\u00ed\u017ee je uveden p\u0159\u00edklad \u0159\u00eddic\u00edho panelu, na kter\u00e9m jsou zobrazeny \u00fadaje z Prometheu pro metriky Etcd a Loki pro protokoly pod\u016f Etcd.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Logging v Kubernetes: EFK vs PLG\" src=\"\/wp-content\/uploads\/2020\/07\/36efc5b7abe7ad3c3f8869bd09a9e3e7.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>A nyn\u00ed proberme architekturu obou syst\u00e9m\u016f a porovnejme jejich mo\u017enosti.<\/p>\n<p><\/p>\n<h2 id=\"sravnenie\">Porovn\u00e1n\u00ed<\/h2>\n<p><\/p>\n<h3 id=\"yazyk-zaprosov\">Dotazovac\u00ed jazyk<\/h3>\n<p><\/p>\n<p>V Elasticsearch se pou\u017e\u00edv\u00e1 Query DSL a Lucene query language, kter\u00e9 umo\u017e\u0148uj\u00ed fulltextov\u00e9 vyhled\u00e1v\u00e1n\u00ed. Je to zaveden\u00fd v\u00fdkonn\u00fd vyhled\u00e1vac\u00ed engine s \u0161irokou podporou oper\u00e1tor\u016f. S jeho pomoc\u00ed lze vyhled\u00e1vat na z\u00e1klad\u011b kontextu a t\u0159\u00eddit podle relevance. <\/p>\n<p><\/p>\n<p>Na druh\u00e9 stran\u011b ringu je LogQL, pou\u017e\u00edvan\u00fd v Loki, n\u00e1stupce PromQL (Prometheus query language). Vyu\u017e\u00edv\u00e1 \u0161t\u00edtky protokol\u016f k filtrov\u00e1n\u00ed a v\u00fdb\u011bru dat protokol\u016f. Je mo\u017en\u00e9 pou\u017e\u00edt n\u011bkter\u00e9 oper\u00e1tory a aritmetiku, jak je pops\u00e1no <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/logql.md\">zde<\/a><\/noindex>, ale v mo\u017enostech zaost\u00e1v\u00e1 za Elastic language.<\/p>\n<p><\/p>\n<p>Vzhledem k tomu, \u017ee dotazy v Loki jsou spojeny se \u0161t\u00edtky, je snadn\u00e9 je asociovat s metrikami, co\u017e usnad\u0148uje organizaci opera\u010dn\u00edho monitorov\u00e1n\u00ed.<\/p>\n<p><\/p>\n<h3 id=\"masshtabiruemost\">\u0160k\u00e1lovatelnost<\/h3>\n<p><\/p>\n<p>Oba stacky jsou horizont\u00e1ln\u011b \u0161k\u00e1lovateln\u00e9, ale s Loki je to jednodu\u0161\u0161\u00ed, proto\u017ee m\u00e1 odd\u011blen\u00e9 cesty pro \u010dten\u00ed a z\u00e1pis dat a tak\u00e9 mikroservisn\u00ed architekturu. Loki m\u016f\u017ee b\u00fdt p\u0159izp\u016fsoben va\u0161im pot\u0159eb\u00e1m a m\u016f\u017ee b\u00fdt pou\u017eit pro velmi velk\u00e9 objemy dat protokol\u016f.<\/p>\n<p><\/p>\n<h3 id=\"multiarendnost\">Multi-tenancy<\/h3>\n<p><\/p>\n<p>Multi-tenancy klastru je spole\u010dn\u00e9 t\u00e9ma pro zkr\u00e1cen\u00ed OPEX a oba stacky zaji\u0161\u0165uj\u00ed multi-tenancy. Pro Elasticsearch existuje n\u011bkolik <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/blog\/found-multi-tenancy\">zp\u016fsob\u016f<\/a><\/noindex> rozd\u011blen\u00ed klient\u016f: samostatn\u00fd index pro ka\u017ed\u00e9ho klienta, sm\u011brov\u00e1n\u00ed na z\u00e1klad\u011b klienta, unik\u00e1tn\u00ed pole klienta, vyhled\u00e1vac\u00ed filtry. V Loki existuje <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/grafana\/loki\/blob\/master\/docs\/operations\/multi-tenancy.md\">podpora<\/a><\/noindex> ve form\u011b hlavi\u010dky HTTP X-Scope-OrgID.<\/p>\n<p><\/p>\n<h3 id=\"stoimost\">N\u00e1klady<\/h3>\n<p><\/p>\n<p>Loki je velmi ekonomicky efektivn\u00ed, proto\u017ee neindexuje data, pouze metadata. T\u00edmto se dosahuje <noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/blog\/2020\/02\/19\/how-loki-reduces-log-storage\/\">\u00faspor na \u00falo\u017ei\u0161ti<\/a><\/noindex> a pam\u011bti (cache), proto\u017ee objektov\u00e9 \u00falo\u017ei\u0161t\u011b je levn\u011bj\u0161\u00ed ne\u017e blokov\u00e9, kter\u00e9 se pou\u017e\u00edv\u00e1 v klastrech Elasticsearch.<\/p>\n<p><\/p>\n<h2 id=\"zaklyuchenie\">Z\u00e1v\u011br<\/h2>\n<p><\/p>\n<p>Stack EFK m\u016f\u017ee b\u00fdt vyu\u017eit pro r\u016fzn\u00e9 \u00fa\u010dely, co\u017e zaji\u0161\u0165uje maxim\u00e1ln\u00ed flexibilitu a multifunk\u010dn\u00ed rozhran\u00ed Kibana pro anal\u00fdzu, vizualizaci a dotazy. M\u016f\u017ee b\u00fdt nav\u00edc vylep\u0161en funkcemi strojov\u00e9ho u\u010den\u00ed.<\/p>\n<p><\/p>\n<p>Stack Loki je u\u017eite\u010dn\u00fd v ekosyst\u00e9mu Kubernetes d\u00edky mechanismu pro objevov\u00e1n\u00ed metadat. Je snadn\u00e9 p\u0159i\u0159adit data pro monitorov\u00e1n\u00ed zalo\u017een\u00e9 na \u010dasov\u00fdch \u0159ad\u00e1ch v Grafana a protokolech.<\/p>\n<p><\/p>\n<p>Pokud jde o n\u00e1klady a dlouhodob\u00e9 uchov\u00e1v\u00e1n\u00ed protokol\u016f, Loki je skv\u011blou volbou pro vstup do cloudov\u00fdch \u0159e\u0161en\u00ed.<\/p>\n<p><\/p>\n<p>Na trhu je mnoho alternativ \u2014 n\u011bkter\u00e9 mohou b\u00fdt lep\u0161\u00ed pro v\u00e1s. Nap\u0159\u00edklad pro GKE existuje integrace Stackdriver, kter\u00e1 poskytuje skv\u011bl\u00e9 \u0159e\u0161en\u00ed pro monitorov\u00e1n\u00ed. Neza\u0159adili jsme je do na\u0161eho hodnocen\u00ed v tomto \u010dl\u00e1nku.<\/p>\n<p><\/p>\n<p>Odkazy:<\/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>\u010cl\u00e1nek byl p\u0159elo\u017een a p\u0159ipraven pro Habr zam\u011bstnanci <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/7x-vEQ\">\u0161kol\u00edc\u00edho centra Slurm<\/a><\/noindex> \u2014 intenzivn\u00ed kurzy, video \u0161kolen\u00ed a firemn\u00ed \u0161kolen\u00ed od praktikuj\u00edc\u00edch odborn\u00edk\u016f (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)<\/em><\/p>\n<p>Zdroj: <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.3 - 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\/cs\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"cs_CZ\" \/>\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\/cs\/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\udd47Logov\u00e1n\u00ed v Kubernetes: EFK proti PLG | ProHoster","description":"Monitorov\u00e1n\u00ed se stalo velmi d\u016fle\u017eitou sou\u010d\u00e1st\u00ed.","canonical_url":"https:\/\/prohoster.info\/cs\/blog\/administrirovanie\/logirovanie-v-kubernetes-efk-protiv-plg","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"cs_CZ","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\/cs\/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\/cs\/wp-json\/wp\/v2\/posts\/89038","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/comments?post=89038"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/posts\/89038\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media\/89039"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/media?parent=89038"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/categories?post=89038"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/cs\/wp-json\/wp\/v2\/tags?post=89038"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}