{"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\/et\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","title":{"rendered":"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Alustame logimise p\u00f5hit\u00f5dedest Dockeris ja Kubernetesis ning seej\u00e4rel vaatame kahte t\u00f6\u00f6riista, mida saab usaldusv\u00e4\u00e4rselt kasutada tootmisosas: Grafana Loki ja EFK (Elasticsearch + Fluent Bit + Kibana) virna.<\/p>\n<p><\/p>\n<p><em>Artikli materjal on v\u00e4ljav\u00f5te <noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/nkmP0-EDb1A\">avatoru loengust \u201eSlyrm\u201c<\/a><\/noindex>. Kui on soov ja eriti tootmisvajadus, on v\u00f5imalik l\u00e4bida p\u00f5hjalik koolitus \u2014 registreeruge kursusele <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Tinm9w\">Kubernetes'e infrastruktuuri j\u00e4lgimise ja logimise kohta<\/a><\/noindex>.<\/em><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" 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\">Logimine Dockeris<\/h2>\n<p><\/p>\n<p>Kubernetesi tasandil k\u00e4ivitatakse rakendused podides, kuid madalamal tasandil t\u00f6\u00f6tavad nad siiski tavaliselt Dockeris. Seet\u00f5ttu peab logimise seadistama nii, et koguda logisid konteineritest. Kuna konteinerid k\u00e4ivitab Docker, tuleb m\u00f5ista, kuidas logimine toimub Dockeris.<\/p>\n<p><\/p>\n<p>Loodan, et iga lugeja teab: rakenduse logid tuleb kirjutada stdout\/stderr'i, mitte konteineri sisse. Logisid kogub Docker Daemon, ja see t\u00f6\u00f6tab just nende logidega, mis saadetakse stdout\/stderr'i. Lisaks toob logide salvestamine konteineri sisse kaasa probleeme: konteiner paisub kasvava logi t\u00f5ttu (kuna konteineris pole t\u00f5en\u00e4oliselt Logrotate'i), ja Docker Daemon ei tea sellest logist midagi.<\/p>\n<p><\/p>\n<p>Dockeril on mitmeid logi draivereid v\u00f5i pistikprogramme konteinerite logide kogumiseks. Tasuta versioonis Docker Community Edition (CE) on logi draivereid v\u00e4hem kui kaubanduslikus Docker Enterprise Editionis (EE).<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/2b05602b54a9075f63713f72c7e74dfa.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ma ei ole kunagi praktikas kasutanud Docker EE-d: Southbridge'is p\u00fc\u00fcame kinni pidada avatud l\u00e4htekoodiga lahendustest ning enamikule klientidest ei ole Docker EE lisafunktsioonid vajalikud. <\/p>\n<p><\/p>\n<p>Logi draiverid Docker CE-s:<\/p>\n<p><\/p>\n<p><strong>local<\/strong> \u2014 logide salvestamine Docker Daemoni sisemistesse failidesse;<br \/>\n<strong>json-file<\/strong> \u2014 json-logi loomine iga konteineri kausta;<br \/>\n<strong>journald<\/strong> \u2014 logide saatmine journald'ile.<\/p>\n<p><\/p>\n<p>Dockeris logimise seaded asuvad failis daemon.json. <\/p>\n<p><\/p>\n<p>V\u00e4ljas \"log-driver\" m\u00e4\u00e4ratakse pistikprogramm ja v\u00e4ljas \"log-opts\" \u2014 selle seaded. \u00dclaltoodud n\u00e4ites on m\u00e4\u00e4ratud pistikprogramm \"json-file\", logi suuruse piirang - \"max-size\": \"10m\"; failide arvu piirang (p\u00f6\u00f6rlemise seaded) - \"max-file\": \"3\"; ning v\u00e4\u00e4rtused, mis lisatakse logidele.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/0b86671ee8d3d009da29ba66bc29d4eb.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00f5ningaid logi draiveri seadeid saab m\u00e4\u00e4rata k\u00e4surea utiliidi kaudu. See on mugav, kui eraldi konteiner tuleb k\u00e4ivitada teise logi draiveriga. <\/p>\n<p><\/p>\n<p>Nii n\u00e4eb logimise skeem Dockeris v\u00e4lja:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/a45d8e3044780a5b7f20d83e14545d1b.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kuidas s\u00fcsteem t\u00f6\u00f6tab: logidraiver, n\u00e4iteks json-file, loob faile. Logikogujaid (Rsyslog, Fluentd, Logagent ja teised) koguvad need failid ja edastavad need salvestamiseks Elasticusse, Sematexti v\u00f5i teistele salvestuskohtadele.<\/p>\n<p><\/p>\n<h2 id=\"osobennosti-logirovaniya-v-kubernetes\">Logimise eritiused Kuberneteses<\/h2>\n<p><\/p>\n<p>Lihtsustatud kujul n\u00e4eb logimine Kuberneteses v\u00e4lja nii: on pod, milles t\u00f6\u00f6tab konteiner, ja konteiner saadab logid stdout'i\/stderr'i. Seej\u00e4rel loob Docker faili ja salvestab logid, mida saab hiljem keerata.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/76e6fdbbb9f97851bfa95a7153d8c525.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Vaadake l\u00e4hemalt, millised on logimise erip\u00e4rad Kuberneteses.<\/p>\n<p><\/p>\n<p><strong>S\u00e4ilitada logid deploide vahel<\/strong>. See on h\u00e4davajalik tingimus logimise korrektseks seadistamiseks. Kui logisid ei salvestata versioonide vahel, siis uue rakenduse versiooni v\u00e4ljalaskmisel kaovad eelnevad logid. Kubo konteineri taask\u00e4ivitamine toob samuti kaasa logide kadumise. Kubernetesel on v\u00f5tmefunktsioon &#8212;previous, mis v\u00f5imaldab vaadata rakenduse logisid enne viimast Pod-i taask\u00e4ivitamist, kuid mitte s\u00fcgavamale.<\/p>\n<p><\/p>\n<p><strong>Agregeerida logid k\u00f5ikidest instantsidest<\/strong>. Kui mikroteenuseid majutatakse pilves, siis vastutab s\u00fcsteemi j\u00e4relevalve eest pilveteenuse pakkuja. Kui mikroteenuseid t\u00f6\u00f6tab oma riistvara peal, tuleb konteinerite logide k\u00f5rval koguda ka s\u00fcsteemi logisid.<\/p>\n<p><\/p>\n<p>Varem ei olnud mugavaid t\u00f6\u00f6riistu logide kogumiseks nii s\u00fcsteemist kui ka mikroteenustest. \u00dcks t\u00f6\u00f6riist kogus tavaliselt s\u00fcsteemi logisid (n\u00e4iteks Rsyslog), teine logisid Dockerilt (n\u00e4iteks journal-bit koos Docker logi draiveri seadistamisega journaldile). Proovisime kasutada journal-bit'it, et koguda logisid konteineritest (Docker logi draiveri seadistamine, et logid kirjutataks journaldile) ja s\u00fcsteemist (CentOS 7-l on juba systemd ja journald). Lahendus t\u00f6\u00f6tab, aga ei ole ideaalne. Kui logisid on palju, hakkab journal-bit lagima ja teated kaovad.<\/p>\n<p><\/p>\n<p>Eksperimendid kestsid ja leiti teine lahendus. CentOS 7-s dubleeritakse p\u00f5hised s\u00fcsteemi logid (messages, audit, secure) var-logis failidena. Dockeris saab samuti seadistada logide salvestamist json failidesse. Seega saab neid faile CentOS 7-st ja Dockerist koos koguda.<\/p>\n<p><\/p>\n<p>Aja jooksul muutus ELK Stack lahendus populaarseks. See on kombinatsioon mitmest t\u00f6\u00f6riistast: Elasticsearch, Logstash ja Kibana.<\/p>\n<p><\/p>\n<p>Elasticsearch salvestab konteineritest logisid, Logstash kogub instantsidelt logisid, Kibana v\u00f5imaldab saadud logisid t\u00f6\u00f6delda ja nende p\u00f5hjal graafikuid koostada. M\u00f5nda aega kasutati ELK Stack'i aktiivselt, aga minu arvates on selle aeg m\u00f6\u00f6das. Hiljem r\u00e4\u00e4gin, miks.<\/p>\n<p><\/p>\n<p><strong>Lisage metaandmed<\/strong>. Podid, rakendused ja konteinerid v\u00f5ivad t\u00f6\u00f6tada igal pool. Veelgi enam, \u00fchel rakendusel v\u00f5ib olla mitu instantsi. Logid on salvestatud \u00fchte vormingusse, kuid me peame m\u00f5istma, milline t\u00e4pselt see replika on, milline Pod seda kirjutab ja millisest nimede ruumist see p\u00e4rineb. Seep\u00e4rast on logidele vaja lisada metaandmed.<\/p>\n<p><\/p>\n<p><strong>Parsi logid<\/strong>. Naljakas, kuid logimise ja j\u00e4lgimise s\u00fcsteemi toetamise kulud v\u00f5ivad \u00fcletada p\u00f5hirakenduse kulud. Kui teil voolab k\u00fcmneid ja sadu tuhandeid logisid sekundis, tundub see loomulik, kuid siiski tuleb tunda piiri. \u00dcks viis selle piiri leidmiseks on logide parsimine. <\/p>\n<p><\/p>\n<p>\u00dcldiselt ei ole vaja koguda ja salvestada k\u00f5iki logisid, vaid saadetakse salvestamiseks ainult osa \u2014 n\u00e4iteks logid staatusega \u201ewarning\u201d v\u00f5i \u201eerror\u201d. Kui r\u00e4\u00e4kida nginx-i v\u00f5i ingress-kontrollerite logidest, siis v\u00f5ib salvestada vaid need, mille staatus erineb 200-st. Kuid see ei ole universaalne n\u00f5uanne: kui te v\u00f5tate logidest mingil moel anal\u00fc\u00fcse, siis on loogiline neid koguda. <\/p>\n<p><\/p>\n<p>M\u00f5tlematult logide filtreerimist ei soovitata, kuna filtreeritud andmed ei pruugi olla piisavad normaalseks anal\u00fc\u00fcsiks. Teisest k\u00fcljest, v\u00f5ib-olla peaks anal\u00fc\u00fcsi l\u00e4bi viima mitte logimistaseme, vaid metrite kogumise tasemel. Siis ei ole vaja s\u00e4ilitada sadu tuhandeid 200 koodiga ridu. \u00dcks l\u00e4henemisviis on saada teavet liiklusest ja vigadest ingress-kontrollerite m\u00f5\u00f5tmistest. <\/p>\n<p><\/p>\n<p>\u00dcldiselt tuleb siin korralikult m\u00f5elda: mida soovite s\u00e4ilitada ja kui kaua, sest vastasel juhul tekib olukord, kus logimiss\u00fcsteem v\u00f5tab rohkem ressursse kui peamine projekt.<\/p>\n<p><\/p>\n<p><strong>Praegu ei ole standardset lahendust logimiseks.<\/strong>Erinevalt j\u00e4lgimisest, kus on \u00fcks k\u00f5ige levinum lahendus Prometheus, puudub logimisel standard. <\/p>\n<p><\/p>\n<p>Selles loengus vaatleme kahte t\u00f6\u00f6riista: \u00fchte populaarsest ja teist \u2014 j\u00e4rjest populaarsemat. Peale nende on olemas ka teisi, kuid selles artiklis me neid ei k\u00e4sitle.<\/p>\n<p><\/p>\n<p>Kuna arvesse on v\u00f5etud k\u00f5ik \u00fclaltoodud omadused, saab logimist Kuberneteses n\u00fc\u00fcd kujutada sellise skeemi kaudu:<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/81f4989c1fb7b1a4ac37524db76fd4e4.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Konteinerilogide j\u00e4\u00e4b alles, rotatsioon on olemas, kuid ilmub kogumise agent, mis valib logid ja saadab need salvestamiseks (skeemil \u2014 Logging Backend). Agent t\u00f6\u00f6tab igas s\u00f5lmes ja tavaliselt on see k\u00e4ivitatud Kuberneteses.<\/p>\n<p><\/p>\n<p>N\u00fc\u00fcd vaatame logimise t\u00f6\u00f6riistu.<\/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> ilmus hiljuti, kuid on juba \u00fcsna tuntud. Selle eelised: kergesti paigaldatav, tarbib v\u00e4he ressursse, ei vaja Elasticsearchi paigaldamist, kuna salvestab andmed TSDB-sse (ajare\u00e4kitud andmebaas). Eelmisel artiklis kirjutasin, et sellises andmebaasis hoiab andmeid Prometheus, ja see on \u00fcks paljusid sarnasusi kahe toote vahel. Arendajad isegi v\u00e4idavad, et Loki on \"Prometheus logimise maailmas\".<\/p>\n<p><\/p>\n<p>P\u00e4evakorda TSDB kohta neile, kes ei ole lugenud <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/southbridge\/blog\/516748\/\">eelmist artiklit<\/a><\/noindex>: TSDB t\u00e4idab suure hulga ajareadade andmete s\u00e4ilitamise \u00fclesande suurep\u00e4raselt, kuid ei ole m\u00f5eldud pikaajaliseks s\u00e4ilitamiseks. Kui mingil p\u00f5hjusel peate logisid s\u00e4ilitama kauem kui kaks n\u00e4dalat, siis on parem seadistada nende edastamine teise andmebaasi.<\/p>\n<p><\/p>\n<p>Veel \u00fcks Loki eelis on see, et andmete visualiseerimiseks kasutatakse Grafanat. See on v\u00e4ga mugav: Grafanas vaatame j\u00e4lgimisandmeid ja seal samas, \u00fchendades Loki, vaatame logisid. Logide p\u00f5hjal saab ehitada diagramme.<\/p>\n<p><\/p>\n<p>Loki arhitektuur n\u00e4eb v\u00e4lja umbes selline: <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/8e4ed48dbb84b7813b96728b9efddcec.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>DaemonSet'i abil k\u00e4itatakse klastris k\u00f5igil serveritel agendi \u2014 Promtail v\u00f5i Fluent Bit. Agent kogub logisid. Loki v\u00f5tab need ja salvestab oma TSDB-sse. Logidele lisatakse kohe metainformatsioon, mis on mugav: saab filtreerida Pods'i, namespace'ide, konteinerite nimede ja isegi siltide j\u00e4rgi.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/docs\/loki\/latest\/installation\/\">Loki installimise juhend<\/a><\/noindex><\/p>\n<p><\/p>\n<p>Loki t\u00f6\u00f6tab tuttavas Grafana liideses. Loki'l on isegi oma p\u00e4ringute keel, mida nimetatakse LogQL-iks \u2014 nime ja s\u00fcntaksi poolest meenutab see PromQL-i Prometheuses. Loki liideses on p\u00e4ringute vihjed, seega ei pea neid s\u00fcdameiselt teadma.<\/p>\n<p><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/grafana.com\/docs\/loki\/latest\/logql\/\">Dokumentatsioon LogQL keele kohta<\/a><\/noindex><\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/acd3028fa181604be4523096d87e48cb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<em>Loki liidese Grafanas<\/em><\/p>\n<p><\/p>\n<p>Filtreid kasutades saab Lokis leida koode (\"400\", \"404\" ja igasuguseid muid); vaadata logisid kogu s\u00f5lmel; filtreerida v\u00e4lja k\u00f5ik logid, kus esineb s\u00f5na \"error\". Kui logile vajutada, avaneb kaart, kus on kogu teave s\u00fcndmuse kohta.<\/p>\n<p><\/p>\n<p>Loki pakub mitmeid t\u00f6\u00f6riistu, mis v\u00f5imaldavad vajalikest logidest andmeid v\u00e4lja t\u00f5mmata, kuigi ausalt \u00f6eldes v\u00f5iks neid tehniliselt rohkem olla. Praegu arendatakse Lokit aktiivselt ja see kogub populaarsust. <\/p>\n<p><\/p>\n<h2 id=\"elastic--fluent-bit--kibana-efk-stack\">Elastic + Fluent Bit + Kibana (EFK virn)<\/h2>\n<p><\/p>\n<p>EFK virn on klassikalisem ja samas mitte v\u00e4hem populaarne logimisvahend. <\/p>\n<p><\/p>\n<p>Artikli alguses mainiti ELK-d (Elasticsearch + Logstash + Kibana), kuid see virn on vananenud, kuna Logstash ei ole kuigi efektiivne ja n\u00f5uab palju ressursse. Selle asemel on hakanud kasutama kergekaalulisemat ja efektiivsemat Fluentd-d, ning p\u00e4rast seda tuli sellele appi <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/about\/what-is-fluent-bit\">Fluent Bit<\/a><\/noindex> \u2014 veelgi kergekaalulisem ja veelgi efektiivsem logikoguja agent. <\/p>\n<p><\/p>\n<p>Arendajate v\u00e4itel on Fluent Bit rohkem kui 100 korda efektiivsem kui Fluentd: \u00abSeal, kus Fluentd tarbib 20 MB RAM-i, tarbib Fluent Bit 150 KB\u00bb \u2014 otse tsitaat dokumentatsioonist. Selle p\u00f5hjal on Fluent Bit-d hakanud sagedamini kasutama.<\/p>\n<p><\/p>\n<p>Fluent Bit-l on v\u00e4hem v\u00f5imalusi kui Fluentd-l, kuid see katab peamised vajadused, mist\u00f5ttu kasutame peamiselt Fluent Bit-i.<\/p>\n<p><\/p>\n<p>EFK steki t\u00f6\u00f6p\u00f5him\u00f5te: agent kogub logisid k\u00f5igilt podidelt (tavaliselt on see DaemonSet, mis on k\u00e4ivitatud k\u00f5igil klastriserveritel) ja saadab need salvestusse (Elasticsearch, PostgreSQL v\u00f5i Kafka). Kibana \u00fchendub salvestusega ja toob sealt v\u00e4lja kogu vajaliku teabe.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" 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> esitleb teavet kasutajas\u00f5bralikus veebiliideses. Seal on graafikud, filtrid ja palju muud.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/523a219739b6e7641694b240c61a15d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Logide p\u00f5hjal saab luua terveid infos\u00fcsteeme.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/21b580f8b4871bdda64692563f53303e.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<h2 id=\"vozmozhnosti-fluent-bit\">Fluent Biti v\u00f5imalused<\/h2>\n<p><\/p>\n<p>Kuna Fluent Bitist on tavaliselt r\u00e4\u00e4gitud v\u00e4hem kui Logstashist, vaatame seda veidi l\u00e4hemalt. Fluent Biti v\u00f5ib loogiliselt jagada kuue mooduli peale, millele saab lisada pistikprogramme, mis laiendavad Fluent Biti v\u00f5imalusi.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Kubernetesi logimine: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid\" src=\"\/wp-content\/uploads\/2020\/09\/f95a642aad7f5d291e05d8a17d1aaadc.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p><strong>Sisendi moodul<\/strong> kogub logisid failidest, systemd teenustest ja isegi tcp-socketist (piisab, kui n\u00e4idata endpoint'i, ja Fluent Bit hakkab sinna \u00fchenduma). Need v\u00f5imalused on piisavad, et koguda logisid nii s\u00fcsteemist kui konteineritest.<\/p>\n<p><\/p>\n<p>Tootmisperioodil kasutame k\u00f5ige sagedamini pistikprogramme <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/pipeline\/inputs\/tail\">tail<\/a><\/noindex> (seda saab suunata logifailidega kausta) ja <noindex><a rel=\"nofollow\" href=\"https:\/\/docs.fluentbit.io\/manual\/pipeline\/inputs\/systemd\">systemd<\/a><\/noindex> (sellele saab \u00f6elda, millistest teenustest logisid koguda).<\/p>\n<p><\/p>\n<p><strong>Parsimise moodul<\/strong> toob logid \u00fchtsesse vormi. Vaikimisi on Nginx'i logid stringid. Plugina abil saab selle stringi teisendada JSON-ks: m\u00e4\u00e4rata v\u00e4lja ja nende v\u00e4\u00e4rtused. JSON-iga on palju lihtsam t\u00f6\u00f6tada kui tekstilogi puhul, kuna see pakub paindlikumaid sorteerimisv\u00f5imalusi.<\/p>\n<p><\/p>\n<p><strong>Filtri moodul<\/strong>. Sel tasemel eraldatakse soovimatud logid. N\u00e4iteks saadetakse salvestamiseks ainult logid, mille v\u00e4\u00e4rtus on \"warning\" v\u00f5i kindlatele m\u00e4rgistele vastavad logid. Valitud logid j\u00f5uavad puhvrisse.<\/p>\n<p><\/p>\n<p><strong>Puhvri moodul<\/strong>. Fluent Bit'il on kaks t\u00fc\u00fcpi puhvrit: m\u00e4lupuhver ja kettapuhver. Puhver on ajutine logide salvestus, mis on vajalik vigade v\u00f5i rikke korral. K\u00f5ik tahavad RAM-i pealt kokku hoida, seet\u00f5ttu valitakse tavaliselt kettapuhver. Kuid tuleb arvestada, et enne kettale minekut laaditakse logid ikkagi m\u00e4llu.<\/p>\n<p><\/p>\n<p><strong>Suunamise\/V\u00e4ljundi moodul<\/strong> sisaldab reegleid ja logide saatmise aadresse. Nagu juba mainitud, saab logisid saata Elasticsearch'i, PostgreSQL'i v\u00f5i n\u00e4iteks Kafka'sse. <\/p>\n<p><\/p>\n<p>Huvitav on see, et Fluent Bit logisid saab saata Fluentd-sse. Kuna esimene on kergem ja v\u00e4hem funktsionaalne, saab selle kaudu logisid koguda ja edastada Fluentd-sse, kus neid t\u00e4iendavate plugin'ite abil t\u00f6\u00f6telda ja salvestustesse saata.<\/p>\n<p><\/p>\n<blockquote><p>Kui plaanite kasutada Elasticsearchi\u2026<\/p>\n<p>L\u00f5petuseks kaks n\u00e4pun\u00e4idet neile, kes plaanivad kasutada Elasticsearchi tootmisandmetena logide salvestamiseks. <\/p>\n<ol>\n<li>Seadistage teavitused kasutades <noindex><a rel=\"nofollow\" href=\"https:\/\/elastalert.readthedocs.io\/en\/latest\/\">ElastAlert<\/a><\/noindex>. See rakendus eraldab \u00fcldisest logivoolust olulisi s\u00f5numeid ja saadab nende kohta teavitusi e-postile v\u00f5i teistele kanalitele. Kahjuks tuli hiljuti kurb uudis, et projekt v\u00f5ib peagi l\u00f5petada oma eksisteerimise. <em><noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Yelp\/elastalert\/issues\/2911\">kurbavalt uudis, et projekt v\u00f5ib peagi l\u00f5petada oma olemasolu<\/a><\/noindex><\/em>.<\/li>\n<li>Rottige logisid rakenduse <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elasticsearch\/client\/curator\/5.8\/index.html\">Curator<\/a><\/noindex> v\u00f5i Elasticsearchi API k\u00f5nesid. Elastic teeb sisuliselt praegu olulisi samme indeksite eluts\u00fckli haldamiseks ilma kolmandate osapoolte t\u00f6\u00f6riistadeta. \u00dcldiselt pole m\u00f5tet logisid pikalt hoida: t\u00f5en\u00e4oliselt pole mingit logi vajalik kaks n\u00e4dalat hiljem \u2013 kui see on t\u00f5eliselt kriitiline, on see kindlasti juba kahe n\u00e4dala jooksul k\u00e4sitletud. \u00c4\u00e4rmisel juhul saab vanad logid arhiveerida ja saata pikaajalisse s\u00e4ilitamisse. Olen kuulnud erilistest logidest, mida seaduse kohaselt peab s\u00e4ilitama kuni 5 aastat. Isiklikult ma sellise olukorraga kokku ei ole puutunud, kuid ma ei seondaks sellist teavet tavalogidega ning t\u00f5en\u00e4oliselt hoiaksin neid isegi eraldi.<\/li>\n<\/ol>\n<p>\n<\/p><\/blockquote>\n<p>J\u00e4tkub\u2026<\/p>\n<p><\/p>\n<p><em>Autor: Marcell Ibraev, sertifitseeritud Kubernetes administraator, praktikainsener <noindex><a rel=\"nofollow\" href=\"https:\/\/to.slurm.io\/TBhTzQ\">Southbridge<\/a><\/noindex>, esineja ja koolituste arendaja <noindex><a rel=\"nofollow\" href=\"http:\/\/to.slurm.io\/Tinm9w\">Sl\u00f6\u00e4rm<\/a><\/noindex>.<\/em><\/p>\n<p>Allikas: <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\/et\/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=\"et_EE\" \/>\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\/et\/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\udd47 Logimine Kuberneteses: kuidas koguda, salvestada, anal\u00fc\u00fcsida ja t\u00f6\u00f6delda logisid | ProHoster","description":"Vaatame \u00fcle logimise alused Dockeris ja Kuberneteses ning seej\u00e4rel uurime kahte t\u00f6\u00f6riista, mida saab julgelt tootmises kasutada: Grafana Loki ja EFK (Elasticsearch + Fluent Bit + Kibana) komplekt. Artikli sisu - kokkuv\u00f5te avatud loengust \"Sl\u00f6rm\" koolist. Kui on soovi ja eriti tootmisvajadus, on v\u00f5imalik l\u00e4bida t\u00e4iend\u00f5pe - registreeruge kursusele","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/logirovanie-v-kubernetes-kak-sobirat-hranit-parsit-i-obrabatyvat-logi","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"et_EE","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\/et\/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\/et\/wp-json\/wp\/v2\/posts\/93294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/comments?post=93294"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/93294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/93295"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=93294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=93294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=93294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}