{"id":32723,"date":"2019-10-31T21:48:35","date_gmt":"2019-10-31T18:48:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada\/"},"modified":"2019-10-31T21:48:35","modified_gmt":"2019-10-31T18:48:35","slug":"yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada","title":{"rendered":"Yuri Bushmelev \"Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve\" \u2014 p\u00ebrkthimi i raportit","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Logot jan\u00eb nj\u00eb pjes\u00eb e r\u00ebnd\u00ebsishme e sistemit, duke lejuar q\u00eb t\u00eb kuptohet n\u00ebse ai funksionon (ose jo) si\u00e7 pritet. N\u00eb kushtet e arkitektur\u00ebs mikrosh\u00ebrbimesh, puna me logot b\u00ebhet nj\u00eb disiplin\u00eb e ve\u00e7ant\u00eb. Duhet t\u00eb zgjidhen menj\u00ebher\u00eb shum\u00eb pyetje:<\/p>\n<p><\/p>\n<ul>\n<li>si t\u00eb shkruhen logot nga aplikacioni;<\/li>\n<li>ku t\u00eb shkruhen logot;<\/li>\n<li>si t\u00eb d\u00ebrgohen logot p\u00ebr ruajtje dhe p\u00ebrpunim;<\/li>\n<li>si t\u00eb p\u00ebrpunohen dhe ruhen logot.<\/li>\n<\/ul>\n<p><\/p>\n<p>P\u00ebrdorimi i teknologjive t\u00eb njohura t\u00eb konteinerizimit shton m\u00eb shum\u00eb v\u00ebshtir\u00ebsi p\u00ebr zgjidhjen e problemit.<\/p>\n<p><\/p>\n<p>Pik\u00ebrisht p\u00ebr k\u00ebt\u00eb \u00ebsht\u00eb shpjegimi i raportit t\u00eb Jurij Bushmelevit \"Harta e grumbujve n\u00eb fush\u00ebn e mbledhjes dhe d\u00ebrgimit t\u00eb logeve\" <\/p>\n<p>\n<center><div class=\"youtube-placeholder\" data-id=\"NAeedJv-S3I\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/NAeedJv-S3I\/hqdefault.jpg\" alt=\"Luaj videon\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<p>Kush \u00ebsht\u00eb i interesuar, ju lutem, shihni m\u00eb posht\u00eb.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p>M\u00eb quaj Yuri Bushmelev. Punoj n\u00eb Lazada. Sot do flas p\u00ebr m\u00ebnyr\u00ebn se si e kemi nd\u00ebrtuar logun ton\u00eb, si i mbledhim dhe \u00e7far\u00eb shkruajm\u00eb brenda tij. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/ece6053b1027ab3681022049ddcd79ea.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nga jemi? Kush jemi ne? Lazada \u00ebsht\u00eb marketi num\u00ebr 1 n\u00eb gjasht\u00eb vende t\u00eb Azis\u00eb Juglindore. T\u00eb gjitha k\u00ebto vende jan\u00eb t\u00eb shp\u00ebrndara n\u00eb qendrat tona t\u00eb t\u00eb dh\u00ebnave. Aktualisht kemi 4 qendra t\u00eb dh\u00ebnash. Pse \u00ebsht\u00eb e r\u00ebnd\u00ebsishme? Sepse disa zgjidhje ishin t\u00eb p\u00ebrcaktuara nga fakti se midis qendrave ka nj\u00eb lidhje shum\u00eb t\u00eb dob\u00ebt. Ne kemi nj\u00eb arkitektur\u00eb mikrosh\u00ebrbimesh. U befasova kur zbulova se tashm\u00eb kemi 80 mikrosh\u00ebrbime. Kur kam filluar projektin me logot, ka pasur vet\u00ebm 20. Po ashtu, ka nj\u00eb sasi t\u00eb konsiderueshme t\u00eb PHP legacy, me t\u00eb cilin duhet t\u00eb jetojm\u00eb dhe t\u00eb pajtohemi. T\u00eb gjitha k\u00ebto gjenerojn\u00eb p\u00ebr momentin m\u00eb shum\u00eb se 6 milion mesazhe n\u00eb minut\u00eb n\u00eb sistemin n\u00eb t\u00ebr\u00ebsi. M\u00eb tutje do t\u00eb tregoj se si p\u00ebrpiqemi t\u00eb jetojm\u00eb me k\u00ebt\u00eb dhe pse \u00ebsht\u00eb k\u00ebshtu.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/0ba5fcee5064865e836cefd47c40d246.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Me k\u00ebto 6 milion mesazhe, duhet t\u00eb jetojm\u00eb n\u00eb nj\u00eb far\u00eb m\u00ebnyre. \u00c7far\u00eb duhet t\u00eb b\u00ebjm\u00eb me to? 6 milion mesazhe q\u00eb duhet:<\/p>\n<p><\/p>\n<ul>\n<li>d\u00ebrguar nga aplikacioni<\/li>\n<li>pranuar p\u00ebr d\u00ebrgim<\/li>\n<li>d\u00ebrguar p\u00ebr analiz\u00eb dhe ruajtje.<\/li>\n<li>t\u00eb analizoni<\/li>\n<li>dhe ndonj\u00ebher\u00eb duhet t\u00eb ruhen.<\/li>\n<\/ul>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/a449062193c4b1757a61f5c92e270a74.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Kur u shfaq\u00ebn tre milion mesazhe, un\u00eb kisha nj\u00eb pamje t\u00eb ngjashme. Sepse ne filluam me ndonj\u00eb qindark\u00eb. \u00cbsht\u00eb e qart\u00eb se aty shkruhen log-\u00ebt e aplikacioneve. P\u00ebr shembull, nuk arrita t\u00eb lidhem me baz\u00ebn e t\u00eb dh\u00ebnave, arrita t\u00eb lidhem me baz\u00ebn e t\u00eb dh\u00ebnave, por nuk arrita t\u00eb lexoj di\u00e7ka. Por p\u00ebrve\u00e7 k\u00ebsaj, \u00e7do mikrosh\u00ebrbim yn\u00eb shkruan gjithashtu nj\u00eb log t\u00eb aksesit. \u00c7do k\u00ebrkes\u00eb q\u00eb vjen n\u00eb mikrosh\u00ebrbim bie n\u00eb log. Pse e b\u00ebjm\u00eb k\u00ebt\u00eb? Zhvilluesit duan t\u00eb ken\u00eb mund\u00ebsi gjurmi. N\u00eb \u00e7do log t\u00eb aksesit, ndodhet fusha traceid, me t\u00eb cilin m\u00eb pas nj\u00eb nd\u00ebrfaqe speciale shtrijon t\u00eb gjith\u00eb zinxhirin dhe e tregon bukur gjurmimin. Gjurmi tregon se si kaloi k\u00ebrkesa dhe kjo i ndihmon zhvilluesit tan\u00eb t\u00eb p\u00ebrballen m\u00eb shpejt me \u00e7do gj\u00eb t\u00eb panjohur.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/e13a2d37ce57e894d023ad405a2b5200.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si t\u00eb jetojm\u00eb me k\u00ebt\u00eb? Tani do t\u00eb flas shkurt p\u00ebr disa mund\u00ebsi \u2014 si zgjidhet gjithsesi ky problem. Si t\u00eb zgjidhet problemi i grumbullimit, transferimit dhe ruajtjes s\u00eb log-\u00ebve. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/60af5e5db804770295741995adb37d90.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si t\u00eb shkruajm\u00eb nga aplikacioni? E qart\u00eb \u00ebsht\u00eb se ka m\u00ebnyra t\u00eb ndryshme. N\u00eb ve\u00e7anti, ka praktika m\u00eb t\u00eb mira, si na tregojn\u00eb shok\u00ebt modern\u00eb. Ka stilin e vjet\u00ebr n\u00eb dy forma, si na treguan t\u00eb par\u00ebt. Ka edhe m\u00ebnyra t\u00eb tjera. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/deab57e4ac0472a8591c0fad9e9f2910.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Situata me grumbullimin e log-\u00ebve \u00ebsht\u00eb p\u00ebr af\u00ebrsisht t\u00eb nj\u00ebjt\u00ebn gj\u00eb. Mund\u00ebsit\u00eb p\u00ebr zgjidhjen e k\u00ebsaj pjes\u00eb t\u00eb ve\u00e7ant\u00eb nuk jan\u00eb shum\u00eb. Tani jan\u00eb m\u00eb shum\u00eb, por akoma jo shum\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/8a6004aaeb931332983a975d0fa5c1d6.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Megjithat\u00eb, lidhur me shp\u00ebrndarjen dhe analiz\u00ebn e m\u00ebvonshme \u2014 numri i variacioneve fillon t\u00eb shp\u00ebrthej\u00eb. Nuk do t\u00eb p\u00ebrshkruaj \u00e7do variant tani. Mendoj se variantet kryesore jan\u00eb t\u00eb njohura p\u00ebr t\u00eb gjith\u00eb ata q\u00eb jan\u00eb interesuar p\u00ebr tem\u00ebn.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/6a0b64c7e58bc59f56aaddd27112ec51.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Do t\u00eb tregoj si ne b\u00ebm\u00eb k\u00ebt\u00eb n\u00eb Lazada, dhe si fillimisht nisi e gjith\u00eb kjo. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/20f3aa5ceea8b28733ce5399bc30f5b5.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nj\u00eb vit m\u00eb par\u00eb, un\u00eb erdha n\u00eb Lazada dhe m\u00eb d\u00ebrguan n\u00eb projektin p\u00ebr log-et. Aty ishte di\u00e7ka e till\u00eb. Log-u nga aplikacioni shkruhej n\u00eb stdout dhe stderr. T\u00eb gjith\u00eb e b\u00ebn\u00eb sipas mod\u00ebs. Por m\u00eb pas zhvilluesit e hodh\u00ebn at\u00eb nga rrjedhat standarde, dhe m\u00eb pas spesialist\u00ebt e infrastruktur\u00ebs do t\u00eb merreshin me t\u00eb. Nd\u00ebrmjet specialist\u00ebve t\u00eb infrastruktur\u00ebs dhe zhvilluesve ka edhe l\u00ebshues, t\u00eb cil\u00ebt than\u00eb: \u00abeh\u2026 mir\u00eb, le t\u00eb paketojm\u00eb thjesht n\u00eb nj\u00eb skedar me shell-in, dhe mbaroi\u00bb. Dhe q\u00eb t\u00eb gjitha ishin n\u00eb nj\u00eb kontejner, k\u00ebshtu q\u00eb i paketuan direkt brenda kontejnerit, e mapuan brenda nj\u00eb directoriesh dhe e vendos\u00ebn aty. Mendoj se \u00ebsht\u00eb e qart\u00eb p\u00ebr t\u00eb gjith\u00eb se \u00e7far\u00eb doli nga kjo.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/d92e02c18a4c683c9389321e4d5412df.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>T\u00eb shikojm\u00eb disi m\u00eb thell\u00eb. Si i shp\u00ebrndanim k\u00ebto log-e. Disa kan\u00eb zgjedhur td-agent, i cili n\u00eb t\u00eb v\u00ebrtet\u00eb \u00ebsht\u00eb fluentd, por jo krejt\u00ebsisht fluentd. Nuk e kuptova kurr\u00eb marr\u00ebdh\u00ebnien midis k\u00ebtyre dy projekteve, por duket se p\u00ebr t\u00eb nj\u00ebjt\u00ebn gj\u00eb \u00ebsht\u00eb fjala. Dhe ky fluentd, i shkruar n\u00eb Ruby, lexonte skedar\u00ebt e log-eve, i parse me JSON p\u00ebrmes ndonj\u00eb regexi. Pastaj i d\u00ebrgonte n\u00eb Kafka. P\u00ebr m\u00eb tep\u00ebr, n\u00eb Kafka p\u00ebr \u00e7do API kishim 4 tema t\u00eb ve\u00e7anta. Pse 4? Sepse kemi live, kemi staging dhe sepse kemi stdout dhe stderr. Zhvilluesit i krijojn\u00eb ato, nd\u00ebrsa inxhinier\u00ebt e infrastruktur\u00ebs duhet t'i krijojn\u00eb n\u00eb Kafka. P\u00ebr m\u00eb tep\u00ebr, Kafka kontrollohej nga nj\u00eb departament tjet\u00ebr. Prandaj, duhej t\u00eb krijonim nj\u00eb bilet\u00eb q\u00eb ata t\u00eb krijonin 4 tema p\u00ebr \u00e7do API. T\u00eb gjith\u00eb k\u00ebt\u00eb e harronin. Pra, ishte nj\u00eb kaos total. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/3130f9ebfda22713cffacf10db45ca89.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb b\u00ebm\u00eb m\u00eb pas me k\u00ebt\u00eb? Ne e d\u00ebrguam at\u00eb n\u00eb Kafka. M\u00eb pas, nga Kafka, gjysma e log-eve fluturonte n\u00eb Logstash. Gjysma tjet\u00ebr e log-eve ndahej. Nj\u00eb pjes\u00eb fluturonte n\u00eb nj\u00eb Graylog, nj\u00eb pjes\u00eb \u2013 n\u00eb nj\u00eb Graylog tjet\u00ebr. N\u00eb p\u00ebrfundim, gjith\u00e7ka p\u00ebrfundonte n\u00eb nj\u00eb klaster Elasticsearch. Pra, e gjith\u00eb kjo kaos n\u00eb fund p\u00ebrfundonte aty. Nuk duhet b\u00ebr\u00eb k\u00ebshtu!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/98bf4811c102fc12fcd1114c25886b69.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja si duket, n\u00ebse e shikojm\u00eb nga lart. Nuk duhet b\u00ebr\u00eb k\u00ebshtu! K\u00ebtu jan\u00eb t\u00eb sh\u00ebnuara menj\u00ebher\u00eb me numra pikat e problemit. N\u00eb t\u00eb v\u00ebrtet\u00eb, ka m\u00eb shum\u00eb se kaq, por 6 jan\u00eb v\u00ebrtet problemet kryesore me t\u00eb cilat duhet t\u00eb b\u00ebjm\u00eb di\u00e7ka. P\u00ebr to do t\u00eb flas ve\u00e7mas tani. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/69f7682e6677bdda3068d6dea4db7732.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebtu (1, 2, 3) shkruhen skedar\u00ebt dhe, p\u00ebr pasoj\u00eb, menj\u00ebher\u00eb k\u00ebtu kemi tre pengesa. <\/p>\n<p><\/p>\n<p>E para (1) \u2014 \u00ebsht\u00eb se duhet t'i shkruajm\u00eb diku. Nuk do t\u00eb d\u00ebshironim gjithmon\u00eb t'i jepnim API mund\u00ebsin\u00eb t\u00eb shkruaj\u00eb direkt n\u00eb skedar. Preferohet q\u00eb API t\u00eb jet\u00eb e izoluar n\u00eb nj\u00eb kontejner, dhe akoma m\u00eb mir\u00eb \u2013 q\u00eb ajo t\u00eb jet\u00eb read-only. Un\u00eb jam sistemadministrator, k\u00ebshtu q\u00eb kam nj\u00eb k\u00ebndv\u00ebshtrim paksa alternativ p\u00ebr k\u00ebto \u00e7\u00ebshtje.<\/p>\n<p><\/p>\n<p>Momenti i dyt\u00eb (2,3) \u2014 kemi shum\u00eb k\u00ebrkesa q\u00eb vijn\u00eb n\u00eb API. API-ja shkruan shum\u00eb t\u00eb dh\u00ebna n\u00eb skedar. Skedar\u00ebt rriten. Na nevojitet t'i rotatojm\u00eb. Sepse, p\u00ebrndryshe, nuk mund t\u00eb sigurojm\u00eb hap\u00ebsir\u00eb n\u00eb disqet e papara. Rotimi \u00ebsht\u00eb i v\u00ebshtir\u00eb, sepse ata jan\u00eb t\u00eb krijuar me nj\u00eb kthim p\u00ebrmes shell n\u00eb katalog. Nuk mund t'i rotatojm\u00eb dot. Nuk mund t\u00eb k\u00ebrkojm\u00eb nga aplikacioni q\u00eb t\u00eb rihap\u00eb deskriptor\u00ebt e tij. Sepse zhvilluesit do t\u00eb na shikojn\u00eb si t\u00eb \u00e7mendur: \"Cilat deskriptor\u00eb? Ne n\u00eb t\u00eb v\u00ebrtet\u00eb shkruajm\u00eb n\u00eb stdout\". Infrastrukturuesit e b\u00ebn\u00eb copytruncate n\u00eb logrotate, i cili thjesht b\u00ebn nj\u00eb kopje t\u00eb skedarit dhe truncaton origjinalin. Si rezultat, midis k\u00ebtyre proceseve t\u00eb kopjimit zakonisht p\u00ebrfundon hap\u00ebsira n\u00eb disk.<\/p>\n<p><\/p>\n<p>(4) Ne kishim formate t\u00eb ndryshme n\u00eb API t\u00eb ndryshme. Ato disi i ndaheshin nj\u00ebra-tjetr\u00ebs, por duhej t\u00eb shkruanim regexp t\u00eb ndrysh\u00ebm. Duke qen\u00eb se gjith\u00e7ka kjo drejtohej nga Puppet, kishte nj\u00eb grup t\u00eb madh klasash me \u201emerimanga\u201c t\u00eb veta. Plus, ndonj\u00ebher\u00eb td-agent konsumonte shum\u00eb memorie, e ngadal\u00ebsonte, mund t\u00eb b\u00ebnte sikur punonte dhe t\u00eb mos b\u00ebnte asgj\u00eb. Nga jasht\u00eb ishte e pamundur t\u00eb kuptohej se ai nuk b\u00ebnt\u00eb asgj\u00eb. N\u00eb rastin m\u00eb t\u00eb mir\u00eb, ai do t\u00eb rr\u00ebzohej dhe dikush do ta ngrinte m\u00eb pas. Sak\u00ebsisht, do t\u00eb vinte nj\u00eb alarm dhe dikush do t\u00eb shkonte e do ta ngrinte me duar. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/424cda2b60e9e5669b7ef2b34ca74e48.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>(6) Dhe m\u00eb e keqja \u2014 ishte elasticsearch. Sepse ishte nj\u00eb version i vjet\u00ebr. Sepse, at\u00ebher\u00eb, nuk kishim master t\u00eb dedikuar. Kishim loge t\u00eb larmishme, ku fushat mund t\u00eb p\u00ebrputheshin. Loge t\u00eb ndryshme t\u00eb aplikacioneve t\u00eb ndryshme mund t\u00eb shkruheshin me emra t\u00eb nj\u00ebjt\u00eb fushe, por brenda mund t\u00eb kishin t\u00eb dh\u00ebna t\u00eb ndryshme. Dometh\u00ebn\u00eb, nj\u00eb log vjen me Integer n\u00eb fush\u00ebn, p\u00ebr shembull, level. Nj\u00eb log tjet\u00ebr vjen me String n\u00eb fush\u00ebn level. N\u00eb munges\u00eb t\u00eb nj\u00eb hartimi statik, rezulton nj\u00eb gj\u00eb e mrekullueshme. N\u00ebse pas rotacionit t\u00eb indeksit n\u00eb elasticsearch, mesazhi i par\u00eb q\u00eb vjen \u00ebsht\u00eb me varg, at\u00ebher\u00eb ne e kalojm\u00eb normalisht. Por n\u00ebse i pari q\u00eb vjen \u00ebsht\u00eb me Integer, t\u00eb gjitha mesazhet e ardhshme q\u00eb vijn\u00eb me String thjesht p\u00ebrjashtohen. Sepse tipi i fush\u00ebs nuk p\u00ebrputhet.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/bc869f827bed326792857113191bb028.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Filluam t\u00eb b\u00ebjm\u00eb k\u00ebto pyetje. Vendos\u00ebm t\u00eb mos k\u00ebrkojm\u00eb fajtor\u00ebt.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/a071a4b38462f249339c988c35463639.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por nj\u00eb koh\u00eb e gjat\u00eb, ishte e qart\u00eb se duhej t\u00eb vendosnim standarde. Disa standarde kishim already. T\u00eb tjer\u00eb i vendos\u00ebm pak m\u00eb von\u00eb. P\u00ebr fat, formati i nj\u00ebjt\u00eb i regjistrimeve p\u00ebr t\u00eb gjitha API-t\u00eb ishte miratuar n\u00eb at\u00eb koh\u00eb. Ai \u00ebsht\u00eb p\u00ebrshkruar drejtp\u00ebrdrejt n\u00eb standartet e bashk\u00ebpunimit t\u00eb sh\u00ebrbimeve. Pra, ata q\u00eb duan t\u00eb marrin regjistrimet duhet t'i shkruajn\u00eb ato n\u00eb k\u00ebt\u00eb format. N\u00ebse dikush nuk i shkruan regjistrimet n\u00eb k\u00ebt\u00eb format, do t\u00eb thot\u00eb se ne nuk garantojm\u00eb asgj\u00eb. <\/p>\n<p><\/p>\n<p>M\u00eb pas, do t\u00eb d\u00ebshiroja t\u00eb vendosnim nj\u00eb standard t\u00eb vet\u00ebm p\u00ebr m\u00ebnyrat e regjistrimit, d\u00ebrgimin dhe mbledhjen e regjistrimeve. N\u00eb thelb, ku t'i shkruajm\u00eb ato dhe me \u00e7far\u00eb t'i d\u00ebrgojm\u00eb. Situata ideale do t\u00eb ishte t\u00eb p\u00ebrdorej e nj\u00ebjta bibliotek\u00eb n\u00eb projekte. Kemi nj\u00eb bibliotek\u00eb t\u00eb ve\u00e7ant\u00eb p\u00ebr regjistrimin n\u00eb Go, dhe nj\u00eb tjet\u00ebr p\u00ebr PHP. T\u00eb gjith\u00eb ata q\u00eb i kemi - t\u00eb gjith\u00eb duhet t'i p\u00ebrdorin ato. Aktualisht do t\u00eb thosha se rreth 80% e k\u00ebsaj po funksionon. Por disa vazhdojn\u00eb t\u00eb han\u00eb kaktus\u00eb.<\/p>\n<p><\/p>\n<p>Dhe aty (n\u00eb slajd) fillon ngadal\u00eb t\u00eb shfaqet \"SLA p\u00ebr d\u00ebrgimin e regjistrimeve\". Aktualisht nuk e kemi, por jemi duke punuar p\u00ebr t\u00eb. Sepse \u00ebsht\u00eb shum\u00eb praktike kur infrastruktura thot\u00eb se n\u00ebse shkruani n\u00eb nj\u00eb format t\u00eb till\u00eb n\u00eb nj\u00eb vend t\u00eb till\u00eb dhe jo m\u00eb shum\u00eb se N mesazhe n\u00eb sekond\u00eb, at\u00ebher\u00eb ne do t'ia d\u00ebrgojm\u00eb atje me nj\u00eb probabilitet t\u00eb caktuar. Kjo heq shum\u00eb nga dhimbjet e kok\u00ebs. N\u00ebse SLA ekziston, at\u00ebher\u00eb \u00ebsht\u00eb thjesht e shk\u00eblqyer!<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/a887aceac13135afe90bb5f5a5ec1d26.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si filluam t\u00eb zgjidhim problemin? Problemi kryesor ishte me td-agent. Nuk ishte e qart\u00eb se ku shkonte regjistri. A d\u00ebrgoheshin ata? A mblidheshin ata? Ku ishin ata n\u00eb t\u00eb v\u00ebrtet\u00eb? Prandaj, pika e par\u00eb ishte t\u00eb z\u00ebvend\u00ebsonim td-agent. Kam shkruar shkurtimisht disa opsione p\u00ebr at\u00eb q\u00eb mund ta z\u00ebvend\u00ebsojm\u00eb.<\/p>\n<p><\/p>\n<p>Fluentd. S\u00eb pari, kam pasur p\u00ebrvoj\u00eb me t\u00eb n\u00eb pun\u00ebn time t\u00eb m\u00ebparshme, dhe ai gjithashtu her\u00eb pas here ishte duke r\u00ebn\u00eb. S\u00eb dyti, \u00ebsht\u00eb pik\u00ebrisht e nj\u00ebjta gj\u00eb, por p\u00ebr profesionist\u00ebt. <\/p>\n<p><\/p>\n<p>Filebeat. \u00c7far\u00eb e b\u00ebnte at\u00eb t\u00eb p\u00ebrshtatsh\u00ebm p\u00ebr ne? Sepse \u00ebsht\u00eb n\u00eb Go, dhe ne kemi nj\u00eb ekspertiz\u00eb t\u00eb madhe n\u00eb Go. Prandaj, n\u00ebse ndodhte di\u00e7ka, mund t\u00eb b\u00ebnim disa ndryshime vet\u00eb. Prandaj nuk e mor\u00ebm. Q\u00eb t\u00eb mos kishte asnj\u00eb tundim p\u00ebr t\u00eb filluar ta rishkruanim p\u00ebr vete. <\/p>\n<p><\/p>\n<p>Nj\u00eb zgjidhje e qart\u00eb p\u00ebr sistem-adminin mbetet \u00e7do lloj sistemi regjistrimi, si syslog-ng \/ rsyslog \/ nxlog.<\/p>\n<p><\/p>\n<p>Ose t\u00eb shkruajm\u00eb di\u00e7ka ton\u00ebn, por ne k\u00ebt\u00eb e gruntuam, ashtu si dhe filebeat. N\u00ebse do t\u00eb shkruanim di\u00e7ka, do t\u00eb ishte m\u00eb mir\u00eb t\u00eb shkruanim di\u00e7ka t\u00eb dobishme p\u00ebr biznesin. P\u00ebr d\u00ebrgimin e regjistrimeve, do t\u00eb ishte m\u00eb mir\u00eb t\u00eb merrnim di\u00e7ka t\u00eb gatshme.<\/p>\n<p><\/p>\n<p>Prandaj, zgjedhja p\u00ebrfundoi duke u p\u00ebrqendruar n\u00eb syslog-ng dhe rsyslog. U prir\u00ebm drejt rsyslog, thjesht sepse kishim klasa p\u00ebr rsyslog n\u00eb Puppet, dhe nuk gjet\u00ebm ndonj\u00eb diferenc\u00eb t\u00eb dukshme mes tyre. \u00c7far\u00eb ka aty syslog, ka dhe k\u00ebtu syslog. Po, ndokush ka dokumentacion m\u00eb t\u00eb keq, ndokush m\u00eb t\u00eb mir\u00eb. Ai di k\u00ebshtu, ai ndryshe.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/a88116711b547fa5b2b34daf72cc4220.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe pak p\u00ebr rsyslog. S\u00eb pari, ai \u00ebsht\u00eb i shk\u00eblqyer, sepse ka shum\u00eb module. Ka RainerScript, nj\u00eb gjuh\u00eb moderne konfigurimi e kuptueshme p\u00ebr njer\u00ebzit. Nj\u00eb bonus fantastik \u00ebsht\u00eb se mund\u00ebm ta simulonim sjelljen e td-agent me mjete standarde, dhe p\u00ebr aplikacionet nuk ndryshoi asgj\u00eb. Pra, ne e ndryshojm\u00eb td-agent me rsyslog, dhe gjith\u00e7ka tjet\u00ebr mbetet e pandryshuar. Dhe menj\u00ebher\u00eb e marrim d\u00ebrges\u00ebn duke funksionuar. M\u00eb pas, mmnormalize \u00ebsht\u00eb nj\u00eb gj\u00eb fantastike n\u00eb rsyslog. Ai lejon t\u00eb analizosh log-et, por jo me Grok dhe regexp. Ai b\u00ebn nj\u00eb pem\u00eb t\u00eb sintaks\u00ebs abstrakte. Ai analizon log-et p\u00ebraf\u00ebrsisht si nj\u00eb kompilator analizon burimin. Kjo lejon t\u00eb punosh shum\u00eb shpejt dhe t\u00eb konsumosh pak CPU, dhe, m\u00eb t\u00eb v\u00ebrtet\u00eb, \u00ebsht\u00eb nj\u00eb gj\u00eb shum\u00eb e shk\u00eblqyer. Ka shum\u00eb bonuse t\u00eb tjera. Nuk do t\u00eb ndalem tek ato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/ca811be9f9ff318fb8c8bbf3dc45a038.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Rsyslog ka shum\u00eb disavantazhe t\u00eb tjera. Ato jan\u00eb p\u00ebraf\u00ebrsisht t\u00eb nj\u00ebjta me bonuset. Problemet kryesore jan\u00eb se duhet t\u00eb dish si ta p\u00ebrgatis\u00ebsh dhe duhet t\u00eb zgjidh\u00ebsh versionin.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/034f588e0834b1d4e4873d9c3dbd0873.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne vendos\u00ebm q\u00eb do t\u00eb shkruajm\u00eb log-et n\u00eb unix socket. Dhe jo n\u00eb \/dev\/log, sepse atje kemi nj\u00eb kaos nga log-et sistemore, atje journald \u00ebsht\u00eb n\u00eb k\u00ebt\u00eb pipeline. Prandaj, le t\u00eb shkruajm\u00eb n\u00eb nj\u00eb socket t\u00eb personalizuar. Do ta lidhim me nj\u00eb ruleset t\u00eb ve\u00e7ant\u00eb. Nuk do t\u00eb p\u00ebrzihen asgj\u00eb. Do t\u00eb jet\u00eb gjith\u00e7ka e qart\u00eb dhe n\u00eb transparenc\u00eb. K\u00ebshtu e b\u00ebm\u00eb. Katalogu me k\u00ebto socket jan\u00eb standardizuar dhe kalojn\u00eb n\u00eb t\u00eb gjitha kontejner\u00ebt. Kontejner\u00ebt mund t\u00eb shohin socket-in e nevojsh\u00ebm, ta hapin dhe t\u00eb shkruajn\u00eb n\u00eb t\u00eb. <\/p>\n<p><\/p>\n<p>Pse jo nj\u00eb skedar? Sepse t\u00eb gjith\u00eb kishin lexuar <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/badoo\/blog\/280606\/\">artikullin p\u00ebr Badushk\u00ebn<\/a><\/noindex>, e cila p\u00ebrpiqej t\u00eb kalonte nj\u00eb skedar n\u00eb docker, dhe duke zbuluar se pas rinisjes rsyslog ndryshon descriptor-in e skedarit, dhe docker e humb at\u00eb skedar. Ai mban t\u00eb hapur di\u00e7ka tjet\u00ebr, por jo m\u00eb at\u00eb socket ku shkruajn\u00eb. Ne vendos\u00ebm se do ta shmangim k\u00ebt\u00eb problem dhe, p\u00ebr nj\u00ebkoh\u00ebsisht, do ta shmangim edhe problemin e bllokimit.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/78db15581a68ce16d11f5ebe7e6fe04e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Rsyslog b\u00ebn veprimet e caktuara n\u00eb diapozitiv dhe d\u00ebrgon log-et ose n\u00eb relays, ose n\u00eb Kafka. Kafka i p\u00ebrshtatet m\u00ebnyr\u00ebs s\u00eb vjet\u00ebr. Relay \u2014 \u00ebsht\u00eb se p\u00ebrpiqesha t\u00eb p\u00ebrdor vet\u00ebm rsyslog p\u00ebr d\u00ebrgimin e log-eve. Pa Message Queue, me mjete standarde rsyslog. N\u00eb thelb, kjo funksionon.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/e61a25005ecbdc86d9de3215ee6fb97e.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Por shkak t\u00eb disa ve\u00e7orive p\u00ebr m\u00ebnyr\u00ebn si mund t\u00eb i futim ato n\u00eb k\u00ebt\u00eb pjes\u00eb (Logstash\/Graylog\/ES). Kjo pjes\u00eb (rsyslog-rsyslog) p\u00ebrdoret midis qendrave t\u00eb t\u00eb dh\u00ebnave. K\u00ebtu \u00ebsht\u00eb nj\u00eb lidhje t\u00eb dh\u00ebnash t\u00eb kompresuar, q\u00eb lejon ruajtjen e band\u00ebs dhe, si rezultat, rrit gjasat q\u00eb t\u00eb marrim disa log-e nga nj\u00eb qend\u00ebr tjet\u00ebr t\u00eb t\u00eb dh\u00ebnave kur kanali \u00ebsht\u00eb i ngarkuar. Sepse kemi Indonezin\u00eb, ku situata \u00ebsht\u00eb e v\u00ebshtir\u00eb. Atje, kjo \u00ebsht\u00eb nj\u00eb problem konstant.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/7509ba360be2db4dec0c8679225d285f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne po mendojm\u00eb se si t\u00eb monitorojm\u00eb, me \u00e7far\u00eb probabiliteti log-et q\u00eb regjistrojm\u00eb nga aplikacioni arrijn\u00eb n\u00eb at\u00eb skaj? Ne vendos\u00ebm t\u00eb krijojm\u00eb metrika. Rsyslog ka modul t\u00eb vet mbi grumbullimin e statistikave, ku ka disa num\u00ebrues. P\u00ebr shembull, ai mund t\u00eb ju tregoj\u00eb madh\u00ebsin\u00eb e radh\u00ebs, ose sa mesazhe kan\u00eb ardhur n\u00eb nj\u00eb veprim t\u00eb caktuar. Nga k\u00ebto mund t\u00eb nxjerrim di\u00e7ka. P\u00ebr m\u00eb tep\u00ebr, ka num\u00ebrues personalizues q\u00eb mund t\u00eb konfigurojm\u00eb, dhe ai do t'ju tregoj\u00eb, p\u00ebr shembull, numrin e mesazheve q\u00eb regjistroi nj\u00eb API i caktuar. M\u00eb pas, un\u00eb shkrova rsyslog_exporter n\u00eb Python dhe t\u00eb gjith\u00eb k\u00ebt\u00eb e d\u00ebrguam n\u00eb Prometheus dhe nd\u00ebrtuam grafika. Do t\u00eb donim shum\u00eb metrika nga Graylog, por ende nuk kemi arritur t'i konfigurojm\u00eb ato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/ef9bd61fc43e056b4a56240c85e7fd20.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Cilat probleme kemi hasur? Problemet kan\u00eb lindur kur kemi zbuluar (papritur!) se Live API-t tan\u00eb d\u00ebrgojn\u00eb 50,000 mesazhe n\u00eb sekond\u00eb. K\u00ebto jan\u00eb vet\u00ebm Live API pa staging. Dhe Graylog na tregon vet\u00ebm 12,000 mesazhe n\u00eb sekond\u00eb. Nd\u00ebrsa lind pyetja e arsyeshme, ku jan\u00eb t\u00eb tjer\u00ebt? Nga kjo, ne arrit\u00ebm n\u00eb p\u00ebrfundimin se Graylog nuk po p\u00ebrballonte. K\u00ebrkuam dhe, n\u00eb fakt, Graylog me Elasticsearch nuk po p\u00ebrballonte k\u00ebt\u00eb ngarkes\u00eb.<\/p>\n<p><\/p>\n<p>M\u00eb tej, zbulime t\u00eb tjera q\u00eb kemi b\u00ebr\u00eb gjat\u00eb procesit.<\/p>\n<p><\/p>\n<p>Shkrimi n\u00eb socket \u00ebsht\u00eb bllokuar. Si ndodhi kjo? Kur p\u00ebrdorja rsyslog p\u00ebr dor\u00ebzim, nj\u00eb moment u prish lidhja midis qendrave t\u00eb t\u00eb dh\u00ebnave. Dor\u00ebzimi u ndal n\u00eb nj\u00eb vend, nd\u00ebrsa dor\u00ebzimi n\u00eb nj\u00eb tjet\u00ebr. T\u00eb gjitha k\u00ebto arrit\u00ebn n\u00eb makin\u00ebn me API-t, t\u00eb cilat shkruajn\u00eb n\u00eb socket rsyslog. Aty u mbush radh\u00eb. M\u00eb pas, u mbush radh\u00eb p\u00ebr shkrim n\u00eb unix socket, q\u00eb sipas parazgjedhjes \u00ebsht\u00eb 128 paketa. Dhe shkrimi i ardhsh\u00ebm n\u00eb aplikacion bllokohet. Kur shikuan n\u00eb bibliotek\u00ebn q\u00eb p\u00ebrdorim n\u00eb aplikacionet n\u00eb Go, aty shkruhej se shkrimi n\u00eb socket ndodhte n\u00eb modin jo-bllokues. Ne ishim t\u00eb sigurt q\u00eb asgj\u00eb nuk po bllokohej. Sepse kishim lexuar. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/badoo\/blog\/280606\/\">artikullin p\u00ebr Badushk\u00ebn<\/a><\/noindex>, e cila ka e shkruajti p\u00ebr k\u00ebt\u00eb. Por ka nj\u00eb moment. Rreth k\u00ebtij thirrje kishte edhe nj\u00eb cik\u00ebl t\u00eb pafund, n\u00eb t\u00eb cilin b\u00ebhej vazhdimisht nj\u00eb p\u00ebrpjekje p\u00ebr ta futur mesazhin n\u00eb soket. K\u00ebt\u00eb nuk e v\u00ebm\u00eb re. Kemi qen\u00eb t\u00eb detyruar ta rreshim librarin\u00eb. Q\u00eb at\u00ebher\u00eb ajo \u00ebsht\u00eb nd\u00ebrruar disa her\u00eb, por tani ne e kemi eliminuar bllokimin n\u00eb t\u00eb gjitha n\u00ebn sistemet. Prandaj, mund t\u00eb ndalojm\u00eb rsyslog-un, dhe asgj\u00eb nuk do t\u00eb bie.<\/p>\n<p><\/p>\n<p>Duhet t\u00eb monitorojm\u00eb madh\u00ebsin\u00eb e radh\u00ebve, q\u00eb ndihmon q\u00eb t\u00eb mos bien n\u00eb k\u00ebto gracka. N\u00eb radh\u00eb t\u00eb par\u00eb, mund t\u00eb monitorojm\u00eb kur fillojm\u00eb t\u00eb humbasim mesazhe. N\u00eb radh\u00eb t\u00eb dyt\u00eb, mund t\u00eb monitorojm\u00eb problemet q\u00eb kemi n\u00eb t\u00ebr\u00ebsi me dor\u00ebzimin.<\/p>\n<p><\/p>\n<p>Dhe nj\u00eb moment tjet\u00ebr i pak\u00ebndsh\u00ebm \u2014 amplifikimi 10-fish n\u00eb arkitektur\u00ebn e mikros\u00ebrvitor\u00ebve \u2014 \u00ebsht\u00eb shum\u00eb e leht\u00eb. Nuk kemi shum\u00eb k\u00ebrkesa hyr\u00ebse, por p\u00ebr shkak t\u00eb grafit n\u00eb t\u00eb cilin qarkullojn\u00eb k\u00ebto mesazhe m\u00eb tej, p\u00ebr shkak t\u00eb log-eve t\u00eb aksesit, ne realisht rrisim ngarkes\u00ebn p\u00ebr log-et rreth dhjet\u00eb her\u00eb. Fatkeq\u00ebsisht, nuk kam arritur t\u00eb llogaris numrat e sakt\u00eb, por mikroservisat \u2014 ato jan\u00eb t\u00eb tilla. Duhet ta kemi parasysh k\u00ebt\u00eb. Pra, n\u00eb k\u00ebt\u00eb moment n\u00ebn sistemi q\u00eb mbledh log-et \u00ebsht\u00eb m\u00eb i ngarkuari n\u00eb Lazada. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/d76c6d91613ff77c41b8985cee83218f.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Si ta zgjidhim problemin me elasticsearch? N\u00ebse duhet t\u00eb marrim shpejt log-et n\u00eb nj\u00eb vend, p\u00ebr t\u00eb mos ecur n\u00ebp\u00ebr t\u00eb gjitha makinat, dhe p\u00ebr t'i mbledhur atje, p\u00ebrdorni nj\u00eb ruajtje skedari. Kjo funksionon garantuar. Kjo krijohet nga \u00e7do server. Duhet vet\u00ebm t\u2019i shtoni disa disqe atje dhe t\u00eb vendosni syslog. Pas k\u00ebsaj do t\u00eb keni garantuar t\u00eb gjitha log-et n\u00eb nj\u00eb vend. M\u00eb pas mund t\u00eb filloni t\u00eb konfiguroni elasticsearch, graylog, di\u00e7ka tjet\u00ebr nga ngadal\u00eb. Por do t'i keni t\u00eb gjitha log-et, dhe p\u00ebr m\u00eb tep\u00ebr, mund t'i ruani, sa mjaftojn\u00eb masat e disqeve.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/571297f25de76958769f3a4b9bfbf5b9.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>N\u00eb momentin e prezantimit tim, skema dukej k\u00ebshtu. Praktikisht kemi ndaluar t\u00eb shkruajm\u00eb n\u00eb skedar\u00eb. Tani, me t\u00eb gjitha gjasat, do t\u00eb \u00e7aktivizojm\u00eb mbetjet. N\u00eb makinat lokale, n\u00eb t\u00eb cilat jan\u00eb aktivizuar API-t\u00eb, do t\u00eb ndalojm\u00eb t\u00eb shkruajm\u00eb n\u00eb skedar\u00eb. S\u00eb pari, ekziston nj\u00eb ruajtje skedari q\u00eb funksionon shum\u00eb mir\u00eb. S\u00eb dyti, n\u00eb k\u00ebto makina vendoset hap\u00ebsira vazhdimisht, \u00ebsht\u00eb e nevojshme ta monitorojm\u00eb at\u00eb vazhdimisht.<\/p>\n<p><\/p>\n<p>Kjo pjes\u00eb me Logstash dhe Graylog, v\u00ebrtet e ngarkon. Prandaj duhet t\u00eb heqim dor\u00eb prej saj. Duhet t\u00eb zgjedhim nj\u00eb nga ato.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/4a285577708aa1c55c16a72364fa8072.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ne vendos\u00ebm t\u00eb heqim Logstash dhe Kibana. Sepse kemi nj\u00eb departament t\u00eb siguris\u00eb. Cila \u00ebsht\u00eb lidhja? Lidhja \u00ebsht\u00eb se Kibana pa X-Pack dhe pa Shield nuk lejon ndarjen e t\u00eb drejtave t\u00eb aksesit n\u00eb loge. Prandaj mor\u00ebm Graylog. Pavar\u00ebsisht se nuk m\u00eb p\u00eblqen, ai funksionon. Kemi bler\u00eb pajisje t\u00eb reja, vendos\u00ebm aty nj\u00eb Graylog t\u00eb ri dhe transferuam t\u00eb gjitha loget me formate t\u00eb rrepta n\u00eb nj\u00eb Graylog t\u00eb ve\u00e7ant\u00eb. Ne zgjidh\u00ebm problemin me lloje t\u00eb ndryshme t\u00eb fushave t\u00eb nj\u00ebjta n\u00eb m\u00ebnyr\u00eb organizative.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/91b9fdada2648ae1caec05169b11926a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>\u00c7far\u00eb p\u00ebrfshihet n\u00eb Graylog t\u00eb ri? Ne thjesht e regjistruam gjith\u00e7ka n\u00eb Docker. Mor\u00ebm nj\u00eb s\u00ebr\u00eb server\u00ebsh, shp\u00ebrndam\u00eb tre instanca Kafka, 7 server\u00eb Graylog versioni 2.3 (sepse d\u00ebshironim Elasticsearch version 5). T\u00eb gjitha k\u00ebto i ngrit\u00ebm mbi RAID nga HDD. V\u00ebm\u00eb re nj\u00eb norm\u00eb indeksimi deri n\u00eb 100 mij\u00eb mesazhe n\u00eb sekond\u00eb. V\u00ebm\u00eb re numrin se 140 terabajt t\u00eb dh\u00ebnash n\u00eb jav\u00eb. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/05f9b3c06739548f092bbe271bf8fc54.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dhe s\u00ebrish, pengesa! Po na presin dy shitje t\u00eb m\u00ebdha. Ne kaluam p\u00ebr 6 milion mesazhe. Graylog nuk po arrin t\u00eb p\u00ebrpunoj\u00eb. Duhet t\u00eb mbijetojm\u00eb s\u00ebrish. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/424aa2febc2fd903aabee4aeabb64010.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>K\u00ebshtu mbijetuam. Shtova pak server\u00eb dhe SSD. Aktualisht po jetojm\u00eb me k\u00ebt\u00eb m\u00ebnyr\u00eb. Tani po p\u00ebrpunojm\u00eb tashm\u00eb 160k mesazhe n\u00eb sekond\u00eb. Ende nuk kemi arritur n\u00eb limit, prandaj p\u00ebr momentin \u00ebsht\u00eb e paqart\u00eb se sa realisht mund t\u00eb nxjerrim nga kjo. <\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/17d84fa7de5403551e55f42345e62a1a.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Ja si jan\u00eb planet tona p\u00ebr t\u00eb ardhmen. Nga k\u00ebto, ndoshta, m\u00eb e r\u00ebnd\u00ebsishmja \u00ebsht\u00eb high availability. P\u00ebr momentin nuk e kemi. Disa makineri jan\u00eb t\u00eb konfiguruara nj\u00ebsoj, por t\u00eb gjitha kalojn\u00eb p\u00ebrmes nj\u00eb makinerie. Duhet t\u00eb shpenzojm\u00eb koh\u00eb p\u00ebr t\u00eb konfiguruar nj\u00eb failover mes tyre.<\/p>\n<p><\/p>\n<p>T\u00eb mbledhim metrika nga Graylog.<\/p>\n<p><\/p>\n<p>T\u00eb b\u00ebjm\u00eb nj\u00eb limit t\u00eb norm\u00ebs q\u00eb nj\u00eb API e r\u00ebn\u00eb nga dora t\u00eb mos na shkat\u00ebrroj\u00eb bandwidth dhe gjith\u00e7ka tjet\u00ebr.<\/p>\n<p><\/p>\n<p>Dhe p\u00ebrfundimisht, t\u00eb n\u00ebnshkruajm\u00eb nj\u00eb SLA me zhvilluesit, se ne mund t\u00eb ofrojm\u00eb kaq shum\u00eb. N\u00ebse shkruani m\u00eb shum\u00eb, nga na vjen keq.<\/p>\n<p><\/p>\n<p>Dhe t\u00eb shkruajm\u00eb dokumentacion.<\/p>\n<p><\/p>\n<p><img decoding=\"async\" alt=\"Yuri Bushmelev &quot;Harta e grykave n\u00eb fush\u00ebn e mbledhjes dhe dor\u00ebzimit t\u00eb log\u00ebve&quot; \u2014 p\u00ebrkthimi i raportit\" src=\"\/wp-content\/uploads\/2019\/04\/4a78e2834d5877f8bf17d77a44000c22.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Shkurtimisht, p\u00ebrmbledhja e t\u00eb gjitha atyre q\u00eb kaluam. S\u00eb pari, standartet. S\u00eb dyti, syslog \u2014 tort\u00eb. S\u00eb treti, rsyslog funksionon pik\u00ebrisht si\u00e7 \u00ebsht\u00eb shkruar n\u00eb slajd. Dhe le t\u00eb kalojm\u00eb te pyetjet.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Pse vendos\u00ebt t\u00eb mos marr\u00eb...<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Duhet t\u00eb shkruhet n\u00eb skedarin. Ishte shum\u00eb e pak\u00ebndshme. Kur API-ja juaj shkruan mij\u00ebra mesazhe n\u00eb sekond\u00eb, edhe n\u00ebse rrotulloheni nj\u00eb her\u00eb n\u00eb or\u00eb, kjo nuk \u00ebsht\u00eb nj\u00eb mund\u00ebsi. Mund t\u00eb shkruhet n\u00eb pipe. Ndaj zhvilluesit m\u00eb pyet\u00ebn: \"\u00c7far\u00eb do ndodhte n\u00ebse procesi n\u00eb t\u00eb cilin shkruajm\u00eb bie\"? Un\u00eb thjesht nuk e gjeta dot nj\u00eb p\u00ebrgjigje, dhe thash\u00eb: \"E drejt\u00eb, le t\u00eb mos e b\u00ebjm\u00eb ashtu.\"<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Pse nuk i shkruani thjesht loget n\u00eb HDFS?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Ky \u00ebsht\u00eb hapi tjet\u00ebr. Kemi menduar p\u00ebr t\u00eb n\u00eb fillim, por, p\u00ebr shkak se aktualisht nuk kemi burime p\u00ebr t\u00eb punuar mbi k\u00ebt\u00eb, ai mbetet si nj\u00eb zgjidhje afatgjat\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Formati kolumnar do t\u00eb ishte m\u00eb i p\u00ebrshtatsh\u00ebm.<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: E kuptoj t\u00eb gjith\u00eb. Ne jemi \"p\u00ebr\" me t\u00eb dyja duar. <\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Ju shkruani n\u00eb rsyslog. Aty mund t\u00eb p\u00ebrdorni si TCP, ashtu edhe UDP. Por n\u00ebse p\u00ebrdorni UDP, si garantoni dor\u00ebzimin?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Ka dy \u00e7\u00ebshtje. S\u00eb pari, un\u00eb i tregoj t\u00eb gjith\u00ebve se nuk garantojm\u00eb dor\u00ebzimin e logeve. Sepse, kur zhvilluesit vijn\u00eb dhe thon\u00eb: 'Le t\u00eb fillojm\u00eb t\u00eb shkruajm\u00eb t\u00eb dh\u00ebna financiare aty, dhe ju do t'i ruani diku p\u00ebr rast se ndodh ndonj\u00eb gj\u00eb', ne u p\u00ebrgjigjemi 'E shk\u00eblqyer! Le t\u00eb fillojm\u00eb t\u00eb bllokojm\u00eb sh\u00ebnimin n\u00eb socket dhe ta b\u00ebjm\u00eb k\u00ebt\u00eb n\u00eb transaksione, p\u00ebr t\u00eb garantuar q\u00eb ne e kemi vendosur n\u00eb socket dhe t\u00eb sigurohemi se ne e kemi marr\u00eb at\u00eb nga ana tjet\u00ebr.' N\u00eb k\u00ebt\u00eb moment, t\u00eb gjith\u00ebve fillon t\u00eb mos u nevojitet. Dhe pasi nuk kan\u00eb nevoj\u00eb, \u00e7far\u00eb pyetje na kan\u00eb ne? N\u00ebse nuk doni t\u00eb garantoni sh\u00ebnimin n\u00eb socket, p\u00ebrse duhet t\u00eb garantojm\u00eb dor\u00ebzimin? Ne b\u00ebjm\u00eb p\u00ebrpjekjet m\u00eb t\u00eb mira. Ne v\u00ebrtet p\u00ebrpiqemi t\u00eb dor\u00ebzojm\u00eb sa m\u00eb shum\u00eb dhe sa m\u00eb mir\u00eb, por nuk japim 100% garanci. Prandaj, nuk duhet t\u00eb shkruani atje t\u00eb dh\u00ebna financiare. P\u00ebr k\u00ebt\u00eb ka databaza me transaksione.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Kur API gjeneron nj\u00eb mesazh n\u00eb log dhe transferon kontrollin te mikrosh\u00ebrbimet, a keni hasur ndonj\u00ebher\u00eb n\u00eb problemin se mesazhet nga mikrosh\u00ebrbime t\u00eb ndryshme vijn\u00eb n\u00eb rend t\u00eb gabuar? Kjo shkakton konfuzion.<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: \u00cbsht\u00eb normale q\u00eb ato t\u00eb vijn\u00eb n\u00eb rend t\u00eb ndrysh\u00ebm. Duhet t\u00eb jeni gati p\u00ebr k\u00ebt\u00eb. Sepse \u00e7do d\u00ebrges\u00eb rrjet\u00ebrore nuk ju garanton rendin, ose duhet t\u00eb shpenzoni burime posa\u00e7\u00ebrisht p\u00ebr k\u00ebt\u00eb. N\u00ebse marim depozitat e skedar\u00ebve, \u00e7do API ruan loget n\u00eb skedarin e vet. N\u00eb t\u00eb v\u00ebrtet\u00eb, rsyslog i vendos ato n\u00eb kataloge. \u00c7do API ka loget e veta, ku mund t\u00eb shkoni dhe t\u00eb shikoni, dhe m\u00eb pas sipas timestamp n\u00eb k\u00ebt\u00eb log mund t'i korrespondoni. N\u00ebse ata shkojn\u00eb t\u00eb shikojn\u00eb n\u00eb Graylog, atje do t\u00eb sortohen sipas timestamp. Aty do t\u00eb jet\u00eb gjith\u00e7ka n\u00eb rregull.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Timestamp mund t\u00eb ndryshoj\u00eb me milisekonda.<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Timestamp gjenerohet nga vet\u00eb API. Kjo \u00ebsht\u00eb, n\u00eb thelb, e gjith\u00eb ideja. Ne kemi NTP. API gjeneron timestamp edhe n\u00eb mesazhin vet\u00eb. Nuk \u00ebsht\u00eb rsyslog q\u00eb e shton at\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Nuk \u00ebsht\u00eb shum\u00eb e qart\u00eb si ndodhi nd\u00ebrveprimi midis qendrav\u00eb t\u00eb t\u00eb dh\u00ebnave. Brenda qendr\u00ebs s\u00eb t\u00eb dh\u00ebnave \u00ebsht\u00eb e qart\u00eb se si u mbledh\u00ebn dhe u p\u00ebrpunuan logjet. Si ndodh nd\u00ebrveprimi midis qendrave t\u00eb t\u00eb dh\u00ebnave? Apo secila qend\u00ebr t\u00eb dh\u00ebnash jeton jet\u00ebn e saj?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Pjes\u00ebrisht. \u00c7do vend ndodhet n\u00eb nj\u00eb qend\u00ebr t\u00eb dh\u00ebnash t\u00eb caktuar. Aktualisht nuk kemi shtrirje, q\u00eb nj\u00eb vend t\u00eb jet\u00eb i vendosur n\u00eb qendra t\u00eb dh\u00ebnash t\u00eb ndryshme. Prandaj, nuk \u00ebsht\u00eb e nevojshme t'i bashkojm\u00eb ato. Brenda \u00e7do qendre ka Log Relay. Kjo \u00ebsht\u00eb nj\u00eb server Rsyslog. N\u00eb t\u00eb v\u00ebrtet\u00eb, ka dy makina menaxhimi. Ato jan\u00eb t\u00eb konfiguruara nj\u00ebsoj. Por p\u00ebr momentin, thjesht trafiku kalon p\u00ebrmes nj\u00eb prej tyre. Ajo agregon t\u00eb gjith\u00eb logjet. Ka nj\u00eb radh\u00eb disku p\u00ebr \u00e7do rast. Ajo kompreson logjet dhe i d\u00ebrgon n\u00eb qendr\u00ebn e dh\u00ebnave qendrore (n\u00eb Singapor), nga ku m\u00eb pas ato d\u00ebrgohen n\u00eb Graylog. N\u00eb \u00e7do qend\u00ebr t\u00eb t\u00eb dh\u00ebnave ka edhe nj\u00eb storage t\u00eb tij. N\u00eb rast se na mungon lidhja, ne kemi t\u00eb gjitha logjet atje. Ato do t\u00eb mbesin atje. Ato do t\u00eb ruhen atje.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: N\u00eb situata jasht\u00ebzakonshme, a e merrni logun nga atje?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Mund t\u00eb shkoni aty (n\u00eb storage) dhe t\u00eb shikoni.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Si i monitoroni q\u00eb t\u00eb mos i humbni logjet?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: N\u00eb t\u00eb v\u00ebrtet\u00eb, i humbim logjet dhe ne e monitorojm\u00eb k\u00ebt\u00eb. Monitorimi filloi para nj\u00eb muaji. N\u00eb bibliotek\u00ebn q\u00eb p\u00ebrdor Go API, ka metrika. Ajo di t\u00eb num\u00ebroj\u00eb se sa her\u00eb nuk ka mundur t\u00eb shkruaj\u00eb n\u00eb socket. Atje aktualisht ka nj\u00eb heuristik t\u00eb zgjuar. Ka nj\u00eb buffer. Ai p\u00ebrpiqet t\u00eb shkruaj\u00eb mesazhin nga ai n\u00eb socket. N\u00ebse bufferi mbushet, ai fillon t\u2019i heq\u00eb. Dhe llogarit se sa i ka hequr. N\u00ebse fillojn\u00eb t\u00eb mbushen numrat, ne merremi vesh p\u00ebr k\u00ebt\u00eb. Tani ato d\u00ebrgohen gjithashtu n\u00eb Prometheus, dhe n\u00eb Grafana mund t\u00eb shihni grafik\u00ebt. Mund t\u00eb konfiguroni njoftimet. Por p\u00ebr momentin nuk \u00ebsht\u00eb e qart\u00eb se kujt t'ia d\u00ebrgojm\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: N\u00eb elasticsearch, ju ruani logjet me rezervim. Sa replika keni?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Nj\u00eb replik\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: A \u00ebsht\u00eb vet\u00ebm nj\u00eb replik\u00eb?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Kjo \u00ebsht\u00eb nj\u00eb master dhe nj\u00eb replik\u00eb. T\u00eb dh\u00ebnat ruhen n\u00eb dy kopje.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: A e keni modifikuar ndonj\u00ebher\u00eb madh\u00ebsin\u00eb e buffer-it t\u00eb rsyslog? <\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Ne shkruajm\u00eb datagramet n\u00eb nj\u00eb socket unix t\u00eb personalizuar. Kjo na v\u00eb menj\u00ebher\u00eb nj\u00eb kufizim prej 128 kilobajt. Nuk mund t\u00eb shkruajm\u00eb m\u00eb shum\u00eb n\u00eb t\u00eb. K\u00ebt\u00eb e kemi specifikuar n\u00eb standard. Ata q\u00eb duan t\u00eb kalojn\u00eb n\u00eb storag\u00eb, shkruajn\u00eb 128 kilobajt. Bibliotekat, p\u00ebr m\u00eb tep\u00ebr, e presin at\u00eb dhe vendosin nj\u00eb flag q\u00eb mesazhi \u00ebsht\u00eb prishur. N\u00eb standardin e vet t\u00eb mesazhit kemi nj\u00eb fush\u00eb t\u00eb ve\u00e7ant\u00eb q\u00eb tregon n\u00ebse \u00ebsht\u00eb prishur gjat\u00eb shkrimit apo jo. Prandaj kemi mund\u00ebsin\u00eb t\u00eb ndjekim edhe k\u00ebt\u00eb moment.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: A shkruani JSON t\u00eb prishur? <\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: JSON i prishur do t\u00eb hidhet ose gjat\u00eb relay, p\u00ebr shkak t\u00eb paket\u00ebs supe t\u00eb madhe. Ose do t\u00eb hidhet nga Graylog, sepse nuk do t\u00eb jet\u00eb n\u00eb gjendje ta analizoj\u00eb JSON-in. Por ka disa nuanca q\u00eb duhen rregulluar, dhe ato kryesisht lidhen me rsyslog. Kam p\u00ebrfunduar aty disa \u00e7\u00ebshtje, mbi t\u00eb cilat duhet ende t\u00eb punojm\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Pse Kafka? A keni provuar RabbitMQ? A po has problemi me Graylog n\u00ebn k\u00ebto ngarkesa?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Nuk po funksionojm\u00eb me Graylog. Por me Graylog jemi duke funksionuar. \u00cbsht\u00eb tejet problematik. Ai \u00ebsht\u00eb nj\u00eb gj\u00eb origjinale. Dhe, n\u00eb t\u00eb v\u00ebrtet\u00eb, nuk \u00ebsht\u00eb i nevojsh\u00ebm. Do t\u00eb preferoja t\u00eb shkruaja nga rsyslog direkt n\u00eb elasticsearch dhe pastaj t\u00eb shihja Kibana. Por duhet t\u00eb zgjidhim \u00e7\u00ebshtjen me sigurimin. Ky \u00ebsht\u00eb nj\u00eb variant i mundsh\u00ebm i zhvillimit ton\u00eb, kur do t\u00eb heqim Graylog dhe do t\u00eb p\u00ebrdorim Kibana. Nuk do t\u00eb ket\u00eb kuptim t\u00eb p\u00ebrdorim Logstash. Sepse, mund t\u00eb b\u00ebj t\u00eb nj\u00ebjt\u00ebn gj\u00eb me rsyslog. Dhe ai ka nj\u00eb modul p\u00ebr t\u00eb shkruar n\u00eb elasticsearch. Me Graylog po p\u00ebrpiqemi t\u00eb jetojm\u00eb ndonj\u00ebher\u00eb. Madje e kemi b\u00ebr\u00eb pak tuning. Por ka ende hap\u00ebsir\u00eb p\u00ebr p\u00ebrmir\u00ebsime.<\/p>\n<p><\/p>\n<p>Rreth Kafka-s. K\u00ebshtu ka ndodhur historikisht. Kur erdha, ajo tashm\u00eb ekzistonte, dhe ishim duke shkruar skedar\u00ebt e log-ut n\u00eb t\u00eb. Ne thjesht ngrit\u00ebm klasterin ton\u00eb dhe kaluam log-et n\u00eb t\u00eb. Ne e menaxhojm\u00eb, dhe e dim\u00eb si ndihen. Rreth RabbitMQ... nuk shkon mir\u00eb me RabbitMQ. Por me RabbitMQ shkojm\u00eb. E kemi n\u00eb prodhim, dhe kishim disa probleme me t\u00eb. Tani, para shitjeve, e kemi rregulluar dhe tani punon normalisht. Por deri at\u00ebher\u00eb nuk isha i gatsh\u00ebm ta nxirrja n\u00eb prodhim. Ka nj\u00eb moment tjet\u00ebr. Graylog mund t\u00eb lexoj\u00eb versionin AMQP 0.9, nd\u00ebrsa rsyslog mund t\u00eb shkruaj\u00eb versionin AMQP 1.0. Nuk ka asnj\u00eb zgjidhje q\u00eb mund t\u00eb b\u00ebj\u00eb t\u00eb dyja. Ka vet\u00ebm nj\u00ebri ose tjetri. Prandaj, p\u00ebr momentin vet\u00ebm Kafka. Por gjithashtu ka nuanca t\u00eb veta. Sepse omkafka n\u00eb at\u00eb versionin e rsyslog-it q\u00eb po p\u00ebrdorim, mund t\u00eb humbas\u00eb t\u00ebr\u00eb tamponin e mesazheve q\u00eb ka marr\u00eb nga rsyslog. Deri tani po pajtohemi me k\u00ebt\u00eb. <\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: A e p\u00ebrdorni Kafka-n sepse ajo tashm\u00eb ishte atje? Nuk p\u00ebrdoret p\u00ebr ndonj\u00eb q\u00ebllim tjet\u00ebr?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Kafka, e cila ishte atje, p\u00ebrdoret nga ekipi i Data S\u0441ience. Ky \u00ebsht\u00eb nj\u00eb projekt krejt ndryshe, p\u00ebr t\u00eb cilin, fatkeq\u00ebsisht, nuk mund t\u00eb them asgj\u00eb. Nuk jam n\u00eb dijeni. Ajo ka qen\u00eb n\u00ebn menaxhimin e ekipit t\u00eb Data S\u0441ience. Kur hodh\u00ebn log-et, vendos\u00ebn ta p\u00ebrdorin at\u00eb, p\u00ebr t\u00eb mos u detyruar t\u00eb instalonin edhe t\u00eb vet\u00ebn. Tani e kemi p\u00ebrdit\u00ebsuar Graylog-un dhe humb\u00ebm kompatibilitetin, sepse atje \u00ebsht\u00eb nj\u00eb version i vjet\u00ebr i Kafka-s. Na duhej t\u00eb krijonim t\u00eb ton\u00ebn. Nj\u00ebkoh\u00ebsisht u shp\u00ebtuam nga ato kat\u00ebr tema p\u00ebr \u00e7do API. B\u00ebm\u00eb nj\u00eb tem\u00eb t\u00eb gjer\u00eb p\u00ebr t\u00eb gjitha live-t, nj\u00eb tem\u00eb t\u00eb gjer\u00eb p\u00ebr t\u00eb gjitha staging-t dhe thjesht i d\u00ebrgojm\u00eb t\u00eb gjitha aty. Graylog-i i ekzekuton k\u00ebto paralelisht.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Pse \u00ebsht\u00eb e nevojshme kjo magji me soket\u00ebt? A keni provuar t\u00eb p\u00ebrdorni log-drajverin syslog p\u00ebr kontejner\u00ebt?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: N\u00eb at\u00eb moment kur u angazhuam me k\u00ebt\u00eb \u00e7\u00ebshtje, marr\u00ebdh\u00ebniet tona me Docker-in ishin tensionuese. Ishte Docker 1.0 ose 0.9. Docker vet\u00eb ishte i \u00e7uditsh\u00ebm. S\u00eb dyti, n\u00ebse duhet t\u00eb fus\u00ebsh log-et n\u00eb t\u00eb... Kam nj\u00eb dyshim t\u00eb pasigurt se ai i kalon t\u00eb gjitha log-et p\u00ebrmes vetes, p\u00ebrmes demonit t\u00eb Docker-it. N\u00ebse nj\u00eb API yn\u00eb \u00ebsht\u00eb duke u \u00e7mendur, at\u00ebher\u00eb API-t\u00eb e tjera hasin v\u00ebshtir\u00ebsi n\u00eb d\u00ebrgimin e stdout dhe stderr. Nuk e di \u00e7far\u00eb do t\u00eb ndodh\u00eb nga kjo. Kam nj\u00eb ndjenj\u00eb intuitive se nuk duhet t\u00eb p\u00ebrdorim drejtuesin syslog t\u00eb Docker-it n\u00eb k\u00ebt\u00eb vend. Departamenti yn\u00eb p\u00ebr testimin funksional ka nj\u00eb kluster t\u00eb vetin Graylog me log-et. Ata p\u00ebrdorin drejtues log-esh t\u00eb Docker-it dhe duket se gjith\u00e7ka shkon mir\u00eb. Por ata e shkruajn\u00eb GELF direkt n\u00eb Graylog. Kur filluam k\u00ebt\u00eb, duhej t\u00eb funksiononte thjesht. Ndoshta m\u00eb von\u00eb, kur dikush t\u00eb thot\u00eb se gjith\u00e7ka funksionon mir\u00eb p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb, do ta provojm\u00eb.<\/p>\n<p><\/p>\n<p><strong>Pyetje<\/strong>: Po e b\u00ebni d\u00ebrges\u00ebn mes qendrave t\u00eb t\u00eb dh\u00ebnave me rsyslog. Pse jo me Kafka?<\/p>\n<p><\/p>\n<p><strong>P\u00ebrgjigje<\/strong>: Ne e b\u00ebjm\u00eb edhe k\u00ebshtu, edhe ashtu n\u00eb t\u00eb v\u00ebrtet\u00eb. P\u00ebr dy arsye. N\u00ebse kanali \u00ebsht\u00eb plot\u00ebsisht i prishur, t\u00eb gjith\u00eb log-et tan\u00eb, p\u00ebrfshir\u00eb ato t\u00eb kompresuar, nuk kalojn\u00eb p\u00ebrmes tij. Nd\u00ebrsa Kafka lejon q\u00eb ato thjesht t\u00eb humbasin gjat\u00eb procesit. Me k\u00ebt\u00eb metod\u00eb ne shmangim ngjeshjen e k\u00ebtyre log-eve. Thjesht p\u00ebrdorim Kafka n\u00eb k\u00ebt\u00eb rast direkt. N\u00ebse kanali yn\u00eb \u00ebsht\u00eb i mir\u00eb dhe duam ta l\u00ebm\u00eb at\u00eb t\u00eb lir\u00eb, at\u00ebher\u00eb p\u00ebrdorim rsyslog-in. Por n\u00eb t\u00eb v\u00ebrtet\u00eb, mund ta konfiguroni n\u00eb m\u00ebnyr\u00eb q\u00eb ai vet\u00eb t\u00eb hedh at\u00eb q\u00eb nuk kalon. N\u00eb k\u00ebt\u00eb moment ne thjesht p\u00ebrdorim d\u00ebrgimin rsyslog direkt n\u00eb disa vende, dhe Kafka n\u00eb t\u00eb tjer\u00ebt.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/450098\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041b\u043e\u0433\u0438 \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u043b\u0438\u0431\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442), \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u043e\u0433\u0430\u043c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u044b. \u041d\u0443\u0436\u043d\u043e \u0440\u0435\u0448\u0438\u0442\u044c \u0441\u0440\u0430\u0437\u0443 \u043a\u0443\u0447\u0443 \u0432\u043e\u043f\u0440\u043e\u0441\u043e\u0432: \u043a\u0430\u043a \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438 \u0438\u0437 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f; \u043a\u0443\u0434\u0430 \u043f\u0438\u0441\u0430\u0442\u044c \u043b\u043e\u0433\u0438; \u043a\u0430\u043a \u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0442\u044c \u043b\u043e\u0433\u0438 \u0434\u043b\u044f \u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438; \u043a\u0430\u043a \u043e\u0431\u0440\u0430\u0431\u0430\u0442\u044b\u0432\u0430\u0442\u044c \u0438 \u0445\u0440\u0430\u043d\u0438\u0442\u044c \u043b\u043e\u0433\u0438. \u041f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0445 \u043d\u044b\u043d\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":24507,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-32723","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.2 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041b\u043e\u0433\u0438 \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u043b\u0438\u0431\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442), \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u043e\u0433\u0430\u043c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u044b.\" \/>\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\/sq\/blog\/administrirovanie\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\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\u042e\u0440\u0438\u0439 \u0411\u0443\u0448\u043c\u0435\u043b\u0435\u0432 \u00ab\u041a\u0430\u0440\u0442\u0430 \u0433\u0440\u0430\u0431\u043b\u0435\u0439 \u043d\u0430 \u043f\u043e\u043b\u0435 \u0441\u0431\u043e\u0440\u0430 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043b\u043e\u0433\u043e\u0432\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041b\u043e\u0433\u0438 \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u043b\u0438\u0431\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442), \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u043e\u0433\u0430\u043c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u044b.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada\" \/>\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=\"2019-10-31T18:48:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:48:35+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\udd47Juri Bushmelev \"Harta e gropa mbi fush\u00ebn e mbledhjes dhe d\u00ebrgimit t\u00eb log-eve\" \u2014 dekodimi i prezantimit | ProHoster","description":"Log-et jan\u00eb nj\u00eb pjes\u00eb e r\u00ebnd\u00ebsishme e sistemit, e cila ndihmon p\u00ebr t\u00eb kuptuar n\u00ebse ai funksionon (ose jo) si\u00e7 pritet. N\u00eb kushtet e arkitektur\u00ebs mikrosh\u00ebrbimeve, punimi me log-e b\u00ebhet nj\u00eb disiplin\u00eb e ve\u00e7ant\u00eb olimpike.","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","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\u042e\u0440\u0438\u0439 \u0411\u0443\u0448\u043c\u0435\u043b\u0435\u0432 \u00ab\u041a\u0430\u0440\u0442\u0430 \u0433\u0440\u0430\u0431\u043b\u0435\u0439 \u043d\u0430 \u043f\u043e\u043b\u0435 \u0441\u0431\u043e\u0440\u0430 \u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0438 \u043b\u043e\u0433\u043e\u0432\u00bb \u2014 \u0440\u0430\u0441\u0448\u0438\u0444\u0440\u043e\u0432\u043a\u0430 \u0434\u043e\u043a\u043b\u0430\u0434\u0430 | ProHoster","og:description":"\u041b\u043e\u0433\u0438 \u2014 \u0432\u0430\u0436\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u044e\u0449\u0430\u044f \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u043e\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 (\u043b\u0438\u0431\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442), \u043a\u0430\u043a \u043e\u0436\u0438\u0434\u0430\u0435\u0442\u0441\u044f. \u0412 \u0443\u0441\u043b\u043e\u0432\u0438\u044f\u0445 \u043c\u0438\u043a\u0440\u043e\u0441\u0435\u0440\u0432\u0438\u0441\u043d\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u044b \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u043b\u043e\u0433\u0430\u043c\u0438 \u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0441\u044f \u043e\u0442\u0434\u0435\u043b\u044c\u043d\u043e\u0439 \u0434\u0438\u0441\u0446\u0438\u043f\u043b\u0438\u043d\u043e\u0439 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u043e\u043b\u0438\u043c\u043f\u0438\u0430\u0434\u044b.","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/yurij-bushmelev-karta-grablej-na-pole-sbora-i-dostavki-logov-rasshifrovka-doklada","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":"2019-10-31T18:48:35+00:00","article:modified_time":"2019-10-31T18:48:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"32723","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":"2026-01-21 12:16:55","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:53:25","updated":"2026-01-21 12:16:55","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32723","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=32723"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/32723\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/24507"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=32723"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=32723"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=32723"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}