{"id":31864,"date":"2019-10-31T21:43:33","date_gmt":"2019-10-31T18:43:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/monitoring-myortv-da-zdravstvuet-monitoring\/"},"modified":"2019-10-31T21:43:33","modified_gmt":"2019-10-31T18:43:33","slug":"monitoring-myortv-da-zdravstvuet-monitoring","status":"publish","type":"post","link":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","title":{"rendered":"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/13453bb7025a6bf3d1c7a3dc6d038d16.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMeie ettev\u00f5te on alates 2008. aastast peamiselt infrastruktuuri haldamise ja veebiprojektide \u00f6\u00f6p\u00e4evaringsse tehnilise toe pakkumisega. Meil on \u00fcle 400 kliendi, mis moodustab umbes 15% Venemaa e-kaubandusest. Seega on meie toetuses v\u00e4ga mitmekesine arhitektuur. Kui midagi l\u00e4heb katki, peame selle 15 minuti jooksul parandama. Kuid avarii toimumise m\u00f5istmiseks tuleb projekti j\u00e4lgida ja s\u00fcndmustele reageerida. Kuidas seda teha? <\/p>\n<p>Arvan, et korraliku monitooringus\u00fcsteemi loomisel tekib probleem. Kui probleemi ei oleks, koosneks mu ettekanne \u00fchest v\u00e4itest: \"Palun installige Prometheus + Grafana ja pistikprogrammid 1, 2, 3.\" Kahjuks ei toimi see enam nii. Peamine probleem on see, et k\u00f5ik usuvad endiselt millessegi, mis eksisteeris 2008. aastal, tarkvarakomponentide osas. <\/p>\n<p>Monitooringus\u00fcsteemi korraldamise osas julgen \u00f6elda, et... \u00f5igesti monitooritud projekte ei eksisteeri. Ja olukord on nii halb, et kui midagi kukub, on oht, et see j\u00e4\u00e4b m\u00e4rkamata \u2014 k\u00f5ik usuvad ju, et \"k\u00f5ike monitooritakse\".<br \/>\nV\u00f5ib-olla monitooritakse k\u00f5ike. Aga kuidas? <\/p>\n<p>Me k\u00f5ik oleme kokku puutunud j\u00e4rgmise looga: t\u00f6\u00f6tab \u00fcks devops, \u00fcks admin, ja neile tuleb arendajate meeskond ja \u00fctleb \u2014 \"me oleme v\u00e4lja andnud, n\u00fc\u00fcd monitoorige.\" Mida monitoorida? Kuidas see t\u00f6\u00f6tab?<\/p>\n<p>Okei. Monitoorime vanaviisi. Ja see juba muutub ning selgub, et olete monitoorinud teenust A, mis on muutunud teenuseks B, mis suhtleb teenusega C. Aga arendajate meeskond \u00fctleb: \"Pane tarkvara paigaldama, see peaks ju k\u00f5ik monitoorima!\"<\/p>\n<p>Mis siis muutus? \u2014 K\u00f5ik muutus!<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h4>2008. aasta. K\u00f5ik on suurep\u00e4rane.<\/h4>\n<p>\nOn paar arendajat, \u00fcks server, \u00fcks andmebaasi server. Sealt see k\u00f5ik algab. Meil on mingid andmed, paigaldame zabbixi, Nagios\u2019e, cacti. Ja siis seadistame arusaadavad h\u00e4ired CPU, ketaste t\u00f6\u00f6 ja ketaste kohta. Teeme veel paar k\u00e4sitsi kontrolli, et veebisaidi vastus oleks olemas, et tellimused j\u00f5uavad andmebaasi. Ja k\u00f5ik \u2013 oleme enam-v\u00e4hem kaitstud. <\/p>\n<p>Kui v\u00f5rrelda t\u00f6\u00f6mahu ulatust, mida toona tegi admin, et tagada j\u00e4lgimise toimimine, siis 98% sellest oli automaatne: inimene, kes tegeleb j\u00e4lgimisega, peab m\u00f5istma, kuidas Zabbix paigaldada, kuidas seda seadistada ja seadistada teatised. Ja 2% - need on v\u00e4lised kontrollid: kas sait vastab ja teeb p\u00e4ringu andmebaasi, kas uued tellimused on saabunud.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/3563dda4d025fd18200d6410d7d065ed.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n <\/p>\n<h4>2010. aasta. Koormus kasvab<\/h4>\n<p>\nAlustame veebide skaleerimist, lisame otsimootori. Me tahame olla kindlad, et toote kataloog sisaldab k\u00f5iki tooteid. Ja et toodete otsimine t\u00f6\u00f6tab. Et andmebaas t\u00f6\u00f6tab, et tellimused tehakse, et sait vastab v\u00e4ljastpoolt ja vastab kahest <a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/et\/server\/\"   title=\"serverid\" data-wpil-keyword-link=\"linked\"  data-wpil-monitor-id=\"1314\">serverid<\/a> ja kasutaja ei visata veebisaidilt v\u00e4lja, kuni ta on teisele serverile \u00fcmber tasakaalustatud, jne. Oluliste elementide arv kasvab. <\/p>\n<p>Samas seondub infrastruktuuriga seotud element endiselt enim juhataja peas. Ikka on peas idee, et inimene, kes tegeleb j\u00e4lgimisega, on see, kes paneb Zabbixi paigaldama ja suudab seda seadistada.<\/p>\n<p>Aga samas tekivad t\u00f6\u00f6\u00fclesanded v\u00e4liste kontrollide l\u00e4biviimiseks, otsimootori indekseerimise p\u00e4ringute skriptide komplekti loomine, skriptide komplekti loomiseks, et kontrollida, et otsing muutub indekseerimise k\u00e4igus, skriptide komplekti, mis kontrollivad, et tarneteenusele edastatakse tooted jne.<\/p>\n<p><img decoding=\"async\" alt=\"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/afa94a3156a24a81ab359b430341f27d.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPane t\u00e4hele: ma olen kolm korda kirjutanud \u00abskriptide komplekt\u00bb. Seega on vastutav j\u00e4lgimise eest enam mitte see, kes lihtsalt paigaldab Zabbixi. See on inimene, kes hakkab kodeerima. Kuid meeskonna peas ei muutu veel midagi. <\/p>\n<p>K\u00fcll aga maailm muutub, keerukamaks minnes. Lisandub virtualiseerimistasand, mitu uut s\u00fcsteemi. Need hakkavad omavahel suhtlema. Kes \u00fctles, et \u00abmikroteenuste l\u00f5hn hakkab olema?\u00bb Kuid iga teenus n\u00e4eb ikkagi eraldiseisvana v\u00e4lja nagu veebisait. Me saame sellele p\u00f6\u00f6rduda ja m\u00f5ista, et see annab vajalikku teavet ja t\u00f6\u00f6tab ning kui oled admin, kes pidevalt tegeleb projektiga, mis on arenenud 5-7-10 aastat, siis need teadmised kogunevad: ilmub uus tase - sa oled selle tunnetanud, ilmub veel \u00fcks tase - sa oled selle tunnetanud... <\/p>\n<p><img decoding=\"async\" alt=\"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/3578182594d012732afde7849b75322a.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAga harva, kui keegi toetab projekti 10 aastat.<\/p>\n<h3>J\u00e4lgimise spetsialisti kokkuv\u00f5te<\/h3>\n<p>\nOletame, et olete tulnud uude idufirmasse, kus on kohe 20 arendajat ja 15 mikros\u00fcsteemi, ning teie roll on administraator, kellele \u00f6eldakse: \"Ehita CI\/CD. Paluuuuun.\" Te ehitasite CI\/CD ja \u00e4kki kuulete: \"Meil on keeruline t\u00f6\u00f6tada tootmises 'konteineris', teadmata, kuidas seal rakendus t\u00f6\u00f6tab. Tee meile liivakast samasse 'konteinerisse'.\"<br \/>\n Te loote selle liivakasti selle konteineri sees. Teile \u00f6eldakse kohe: \"Me tahame etappidatabelit, mis iga p\u00e4ev uuendatakse tootmisest, et m\u00f5ista, et see t\u00f6\u00f6tab andmebaasis, kuid et samal ajal mitte rikkuda tootmisandmebaasi.\"<\/p>\n<p>Te elate selle k\u00f5ik. Rilis on j\u00e4\u00e4nud 2 n\u00e4dalat, teile \u00f6eldakse: \"N\u00fc\u00fcd peaksime selle k\u00f5ik j\u00e4lgima\u2026\" St. j\u00e4lgida klastrite infrastruktuuri, j\u00e4lgida mikros\u00fcsteemide arhitektuuri, j\u00e4lgida koost\u00f6\u00f6d v\u00e4liste teenustega\u2026 <\/p>\n<p>Kolleegid toovad v\u00e4lja harjumusp\u00e4rase skeemi ja \u00fctlevad: \"Siin on ju k\u00f5ik selge! Installi programm, mis seda k\u00f5ike j\u00e4lgib.\" Jah, jah: Prometheus + Grafana + pluginad. <br \/>\nJa lisavad samal ajal: \"Sul on kaks n\u00e4dalat, tee nii, et k\u00f5ik oleks usaldusv\u00e4\u00e4rne.\"<\/p>\n<p>Paljude projektide puhul, mida me n\u00e4eme, on j\u00e4lgimiseks m\u00e4\u00e4ratud \u00fcks inimene. Kujutage ette, et me tahame kaheks n\u00e4dalaks palgata inimese, kes tegeleks j\u00e4lgimisega, ja koostame talle CV. Milliseid oskusi peaks sellel inimesel olema, kui arvestada k\u00f5ike, mida me varem \u00fctlesime?<\/p>\n<ul>\n<li>Ta peab m\u00f5istma j\u00e4lgimist ja \u017eelee infrastruktuuri t\u00f6\u00f6d.<\/li>\n<li>Ta peab m\u00f5istma Kubernetes'i j\u00e4lgimise spetsiifikat (k\u00f5ik tahavad 'konteinerisse', sest seal on v\u00f5imalik k\u00f5igest eristuda, peituda, et \u00fclej\u00e4\u00e4nud lahendab administraator) \u2014 selle iseenesest, selle infrastruktuuri ning m\u00f5istma, kuidas rakendusi seal sees j\u00e4lgida.<\/li>\n<li>Ta peab m\u00f5istma, et teenused suhtlevad spetsiaalsete viisidega ja teadma teenuste omavahelise suhtluse spetsiifikat. On t\u00e4iesti realistlik n\u00e4ha projekti, kus osa teenustest suhtleb s\u00fcnkroonselt, sest teisiti ei saa. N\u00e4iteks backend l\u00e4heb REST-i kaudu, gRPC kaudu katalooge teenusele, saab toote nimekirja ja toob tagasi. Siin ei saa oodata. Ja teiste teenustega t\u00f6\u00f6tab ta as\u00fcnkroonselt. Edastada tellimus kullerteenusele, saata kiri jne.<br \/>\nTe olete kindlasti juba k\u00f5igest sellest segaduses? Aga administraator, kellel on vaja seda j\u00e4lgida, on veel rohkem segaduses. <\/li>\n<li>Ta peab oskama \u00f5igesti planeerida, kuna t\u00f6\u00f6d on \u00fcha rohkem. <\/li>\n<li>Seet\u00f5ttu peab ta looma strateegia loodud teenuse jaoks, et m\u00f5ista, kuidas seda konkreetselt monitoorida. Tal peab olema arusaam projekti arhitektuurist ja selle arengust ning tehnoloogiatest, mida arenduses kasutatakse. <\/li>\n<\/ul>\n<p>\nKujutame ette t\u00e4iesti tavalist juhtumit: osa teenuseid on php-s, osa teenuseid on Go-s, osa teenuseid on JS-is. Need toimivad omavahel mingil moel. Sealt tuleneb ka termin \"mikroteenus\": eraldi s\u00fcsteeme on nii palju, et arendajad ei suuda projekti tervikuna m\u00f5ista. \u00dcks meeskonna osa kirjutab JS teenuseid, mis t\u00f6\u00f6tavad iseseisvalt ja ei tea, kuidas \u00fclej\u00e4\u00e4nud s\u00fcsteem t\u00f6\u00f6tab. Teine osa kirjutab teenuseid Pythonis ja ei sekku teiste teenuste toimimisse, nad on isoleeritud oma valdkonnas. Kolmas kirjutab teenuseid php-s v\u00f5i m\u00f5nes muus keeles. <br \/>\nK\u00f5ik need 20 inimest on jagatud 15 teenuse vahel ja ainult \u00fcks admin, kes peab kogu seda m\u00f5istma. Peatus! Me just jagasime s\u00fcsteemi 15 mikroteenuseks, kuna 20 inimest ei suuda kogu s\u00fcsteemi m\u00f5ista. <\/p>\n<p>Kuid seda tuleb kuidagi monitoorida...<\/p>\n<p>Mis on tulemus? Tulemus on see, et on \u00fcks inimene, kelle p\u00e4he mahub k\u00f5ik see, mida terve arendajate tiim ei suuda m\u00f5ista, ja samas peab ta teadma ja oskama ka seda, mida me \u00fclal oleme maininud \u2014 riistvara infrastruktuuri, Kubernetes'e infrastruktuuri jne.<\/p>\n<p>Mida siin \u00f6elda... Houston, meil on probleem.<\/p>\n<h3>Kaasaegse tarkvaraprojekti monitoorimine on iseenesest tarkvaraprojekt.<\/h3>\n<p>\nValeusku, et monitoorimine on tarkvara, tekitab meis usu imelistesse asjadesse. Kahjuks imesid ei juhtu. Ei saa lihtsalt paigaldada zabbixi ja loota, et k\u00f5ik t\u00f6\u00f6tab. Pole m\u00f5tet paigaldada Grafanat ja loota, et k\u00f5ik l\u00e4heb h\u00e4sti. Suur osa ajast l\u00e4heb teenuste t\u00f6\u00f6 ja nende omavahelise tegevuse kontrollimise korraldamisele ning v\u00e4liste s\u00fcsteemide t\u00f6\u00f6 kontrollimisele. Tegelikult kulub 90% ajast mitte skriptide kirjutamisele, vaid tarkvaraarendusele. Sellega peaks tegelema meeskond, kes m\u00f5istab projekti toimimist. <br \/>\nKui selle olukorra juures panna \u00fcks inimene monitooringule, siis juhtub katastroof. Just see toimubki laialdaselt.<\/p>\n<p>N\u00e4iteks on mitmeid teenuseid, mis suhtlevad omavahel l\u00e4bi Kafka. Tuli tellimus, saatsime tellimusteate Kafka'sse. On teenus, mis kuulab tellimusteavet ja korraldab kauba kohaletoimetamise. On teenus, mis kuulab tellimusteavet ja saadab kasutajale kirja. Siis ilmub palju teisi teenuseid ja me hakkame segadusse minema.<\/p>\n<p>Ent kui annate selle administraatorile ja arendajatele etapis, kui avaldamiseni on j\u00e4\u00e4nud v\u00e4he aega, peab inimene kogu selle protokolli m\u00f5istma. See t\u00e4hendab, et sellise ulatusega projekti jaoks kulub m\u00e4rkimisv\u00e4\u00e4rselt aega ning s\u00fcsteemi arendamisel peab see olema ette n\u00e4htud. <br \/>\nKuid v\u00e4ga sageli, eriti tulekahjude korral, n\u00e4eme idufirmade puhul, et j\u00e4lgimine l\u00fckatakse edasi. \"Praegu teeme Proof of Concept'i, k\u00e4ivitame selle, lasta tal kukkuda - me oleme valmis ohverdama. Aja jooksul teeme k\u00f5ik selle j\u00e4lgimise.\" Kui (v\u00f5i kui) projekt hakkab raha teenima, soovib \u00e4ri rakendada veel rohkem funktsioone \u2014 sest see on hakanud toimima, seega tuleks edasi arendada! Ja olete hetkes, kus alguses tuleb j\u00e4lgida kogu eelnevat, mis ei v\u00f5ta 1% ajast, vaid m\u00e4rkimisv\u00e4\u00e4rselt rohkem. Ja muide, j\u00e4lgimiseks on vaja arendajaid, kuid neid on lihtsam suunata uutele funktsioonidele. L\u00f5puks kirjutatakse uued funktsioonid, k\u00f5ik arendatakse ja olete l\u00f5putus ummikus.<\/p>\n<p>Kuidas j\u00e4lgida projekti alates algusest ja mida teha, kui teile on antud projekt, mida tuleb j\u00e4lgida, ja te ei tea, kust alustada?<\/p>\n<p>Esiteks tuleb planeerida. <\/p>\n<p><i>L\u00fchi\u00fclevaade: v\u00e4ga sageli alustatakse infrastruktuuri j\u00e4lgimisest. N\u00e4iteks on meil Kubernetes. Alustame sellega, et paigaldame Prometheuse koos Grafanaga, paigaldame \"kubiku\" j\u00e4lgimise pluginaid. Mitte ainult arendajatel, vaid ka administraatoritel on kurb praktika: \"Me paigaldame selle plugina, ja plugin tegelikult teab, kuidas seda teha.\" Inimesed armastavad alustada lihtsatest ja arusaadavatest asjadest, mitte olulistest tegevustest. Ja infrastruktuuri j\u00e4lgimine on lihtsalt.<\/i><\/p>\n<p>Alustuseks otsustage, mida ja kuidas soovite j\u00e4lgida, ja seej\u00e4rel valige t\u00f6\u00f6riist, sest teised inimesed ei saa teie eest m\u00f5elda. Ja kas peaksidki? Teised inimesed m\u00f5tlesid enda peale, universaalsele s\u00fcsteemile \u2014 v\u00f5i ei m\u00f5elnud \u00fcldse, kui seda pistikut kirjutati. Ja et sellel pistikul on 5000 kasutajat, ei t\u00e4henda, et see toob mingit kasu. V\u00f5ib-olla saate te 5001-ks lihtsalt seet\u00f5ttu, et seal oli juba 5000 inimest. <\/p>\n<p>Kui olete hakanud j\u00e4lgima oma rakenduse infrastruktuuri ja backend enam ei t\u00f6\u00f6ta, kaotavad k\u00f5ik kasutajad \u00fchenduse mobiilirakendusega. Tuleb viga. Teie juurde tullakse ja \u00f6eldakse: \u201eRakendus ei t\u00f6\u00f6ta, mille kallal te t\u00f6\u00f6tate?\u201d \u2014 \u201eMe j\u00e4lgime.\u201d \u2014 \u201eKuidas te j\u00e4lgite, kui ei n\u00e4e, et rakendus ei t\u00f6\u00f6ta?!\u201c <\/p>\n<ol>\n<li>Minu arvates tuleks j\u00e4lgimisega alustada kasutaja sisenemispunktist. Kui kasutaja ei n\u00e4e, et rakendus t\u00f6\u00f6tab \u2014 on k\u00f5ik, see on eba\u00f5nnestumine. Ja j\u00e4lgimiss\u00fcsteem peaks sellest esimesena hoiatama. <\/li>\n<li>Ja alles siis saame infrastruktuuri j\u00e4lgida. V\u00f5i teha seda paralleelselt. Infrastruktuuriga on lihtsam \u2014 siin saame l\u00f5puks lihtsalt paigaldada Zabbixi. <\/li>\n<li>Ja n\u00fc\u00fcd tuleb minna rakenduse juurtel, et m\u00f5ista, kus miski ei toimi.<\/li>\n<\/ol>\n<p>\nMinu peamine m\u00f5te on, et j\u00e4lgimine peab k\u00e4ima paralleelselt arendusprotsessiga. Kui eemaldate j\u00e4lgimismeeskonna teistesse \u00fclesannetesse (CI\/CD loomine, liivakasti loomine, infrastruktuuri \u00fcmberkorraldamine), hakkab j\u00e4lgimine maha j\u00e4\u00e4ma ja v\u00f5ib-olla ei j\u00f5ua te enam kunagi arendustele j\u00e4rgi (v\u00f5i peate kas varakult arenduse peatama).<\/p>\n<h3>K\u00f5ik tasemete kaupa<\/h3>\n<p>\nNii n\u00e4en ma j\u00e4lgimiss\u00fcsteemi korraldamist.<\/p>\n<p>1) Rakenduse tase:<\/p>\n<ul>\n<li>j\u00e4lgimine rakenduse \u00e4riloo puhul;<\/li>\n<li>teenuste tervise meetrikate j\u00e4lgimine;<\/li>\n<li>integratsioonij\u00e4lgimine.<\/li>\n<\/ul>\n<p>\n2) Infrastruktuuri tase:<\/p>\n<ul>\n<li>orkestreerimise taseme j\u00e4lgimine;<\/li>\n<li>s\u00fcsteemi tarkvara j\u00e4lgimine;<\/li>\n<li>doonori taseme j\u00e4lgimine.<\/li>\n<\/ul>\n<p>\n3) J\u00e4lle rakenduse tase \u2014 aga juba inseneritootena:<\/p>\n<ul>\n<li>rakenduse logide kogumine ja j\u00e4lgimine;<\/li>\n<li>APM;<\/li>\n<li>tracing.<\/li>\n<\/ul>\n<p>\n4) Alerteerimine:<\/p>\n<ul>\n<li>hoiatamiss\u00fcsteemi korraldamine;<\/li>\n<li>vahtkonna korraldamine;<\/li>\n<li>\u201eteadmistebaasi\u201d ja intsidendi t\u00f6\u00f6tlemise t\u00f6\u00f6voo korraldamine.<\/li>\n<\/ul>\n<p>\n<b>Oluline<\/b>: me j\u00f5uame j\u00e4lgimise juurde mitte p\u00e4rast, vaid kohe! Ei ole vaja k\u00e4ivitada j\u00e4lgimist ja \u00abkuidas iganes hiljem\u00bb v\u00e4lja m\u00f5elda, kellele h\u00e4iret teated saadetakse. Sest j\u00e4lgimise \u00fclesanne on aru saada, kus s\u00fcsteemis midagi ei toimi, ja teavitada sellest \u00f5igeid inimesi. Kui see j\u00e4tta viimasele hetkele, saavad \u00f5iged inimesed teada, et midagi on valesti, alles siis, kui telefon heliseb: \u00abmeil ei t\u00f6\u00f6ta mitte miski\u00bb.<\/p>\n<h3>Rakenduse tase \u2014 \u00e4riloogika j\u00e4lgimine<\/h3>\n<p>\nSiin on jutt selle kohta, et kontrollitakse, kas rakendus t\u00f6\u00f6tab kasutaja jaoks.<\/p>\n<p>See tase peaks olema loodud arendamise etapis. N\u00e4iteks, meil on harilik Prometheus: ta l\u00e4heb serverisse, mis tegeleb kontrollidega, kutsub endpoint\u2019i, ja endpoint l\u00e4heb ja kontrollib API-d.<\/p>\n<p>Kui sageli palutakse j\u00e4lgida avalehte, et veenduda, et sait t\u00f6\u00f6tab, siis programmeerijad annavad nuppu, mida saab kutsuda igal korral, kui on vaja veenduda, et API t\u00f6\u00f6tab. Samal ajal kirjutavad programmeerijad ka \/api\/test\/helloworld. <br \/>\nKas ainus viis veenduda, et k\u00f5ik t\u00f6\u00f6tab? \u2014 Ei!<\/p>\n<ul>\n<li>Selliste kontrollide loomine on p\u00f5him\u00f5tteliselt arendajate \u00fclesanne. \u00dcksuskatseid peaksid kirjutama programmeerijad, kes kirjutavad koodi. Sest kui sa anname selle administraatorile: \u00abKutt, siin on sulle k\u00f5igi 25 funktsiooni API protokollide nimekiri, palun j\u00e4lgi k\u00f5ike!\u00bb \u2014 siis ei juhtu mitte midagi. <\/li>\n<li>Kui teete print \u201chello world\u201d, ei saa keegi kunagi teada, et API peaks ja t\u00f5esti t\u00f6\u00f6tab. Iga API muutus peaks endaga kaasa tooma muutuse kontrollides. <\/li>\n<li>Kui teil on juba selline probleem \u2013 peatage funktsioonid ja eraldage arendajad, kes need kontrollid kirjutavad, v\u00f5i leppige kaotustega, leppige, et mitte midagi ei kontrollita ja see hakkab alla kukkuma.<\/li>\n<\/ul>\n<p>\nTehnilised n\u00f5uanded:<\/p>\n<ul>\n<li>Kohustuslik on korraldada v\u00e4line server kontrollide korraldamiseks \u2014 peate olema kindel, et teie projekt on v\u00e4lismaailmale ligip\u00e4\u00e4setav.<\/li>\n<li>Korraldage kontroll kogu API protokolli ulatuses, mitte ainult \u00fcksikute endpoint'e osas.<\/li>\n<li>Looge prometheus-endpoint kontrollide tulemustega.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Rakenduse tase \u2014 tervise meetrikate j\u00e4lgimine<\/h3>\n<p>\nN\u00fc\u00fcd on jutt v\u00e4liste teenuste tervise meetrikatest. <\/p>\n<p>Me otsustasime, et igasuguseid rakenduse \u201enuppe\u201d j\u00e4lgime v\u00e4liste kontrollide abil, mida kutsume esile v\u00e4lisest j\u00e4lgimisse s\u00fcsteemist. Kuid need on just need \u201enupud\u201d, mida kasutaja n\u00e4eb. Me soovime olla kindlad, et meie teenused t\u00f6\u00f6tavad. Siin on lugu parem: K8s sisaldab tervisekontrolle, et v\u00e4hemalt \u201ekuubik\u201d veenduks, et teenus t\u00f6\u00f6tab. Kuid pooltest kontrollidest, mida olen n\u00e4inud, on sama print \u201ehello world\u201d. See t\u00e4hendab, et ta kutsub seda p\u00e4rast juurutamist kord, vastus on, et k\u00f5ik on korras \u2013 ja ongi k\u00f5ik. Kui teenus v\u00e4ljastab oma API-d REST-i kaudu, on tal tohutult sisenemiskohti selle API juurde, mida samuti tuleb j\u00e4lgida, sest me tahame teada, et see t\u00f6\u00f6tab. Ja me j\u00e4lgime seda juba seespidiselt. <\/p>\n<p>Kuidas seda \u00f5igesti tehniliselt rakendada: iga teenus esitleb oma t\u00f6\u00f6olekut endpointina ning Grafana (v\u00f5i m\u00f5ne muu rakenduse) graafikutes n\u00e4eme k\u00f5ikide teenuste staatust.<\/p>\n<ul>\n<li>Iga API muudatus peaks kaasa tooma kontrollide muutmise. <\/li>\n<li>Uuendage uusi teenuseid kohe tervise m\u00f5\u00f5dikute lisamisega.<\/li>\n<li>Administraator v\u00f5ib minna arendajate juurde ja paluda \"lisage paar funktsiooni, et ma saaksin k\u00f5ik aru ja oma j\u00e4lgimisse s\u00fcsteemi selle info lisada.\" Kuid arendajad vastavad tavaliselt: \"Kaks n\u00e4dalat enne v\u00e4ljundit me midagi lisama ei hakka.\"<br \/>\nLas arendajate juhid teavad, et selliseid kaotusi tuleb, las arendajate juhtkond samuti teab. Sest kui k\u00f5ik kokku kukub, helistab keegi kindlasti ja n\u00f5uab, et \u201e pidevalt kokku kukkuvat teenust\u201d j\u00e4lgitaks (c) <\/li>\n<li>Muide, eraldage arendajad Grafana pluginate kirjutamiseks - see on administreerijatele hea abi.<\/li>\n<\/ul>\n<p><\/p>\n<h3>Rakenduse tase - Integreerimise j\u00e4lgimine<\/h3>\n<p>\nIntegreerimise j\u00e4lgimine keskendub kriitiliste \u00e4ris\u00fcsteemide vahelise suhtluse j\u00e4lgimisele.<\/p>\n<p>N\u00e4iteks on 15 teenust, mis suhtlevad omavahel. Need ei ole enam eraldiseisvad veebisaidid. St me ei saa kummagi teenuse juurde minna, saada \/helloworld ja aru saada, et teenus t\u00f6\u00f6tab. Sest tellimuse vormistamise veebiteenus peab saatma tellimuste info bussile - bussist peab lao teenus saama selle s\u00f5numi ja seda edaspidiselt t\u00f6\u00f6tlema. E-kirjade saatmise teenus peab seda kuidagi edasi t\u00f6\u00f6tlema jne. <\/p>\n<p>Seega me ei saa aru, kl\u00f5psates iga eraldi teenuse peale, et see k\u00f5ik t\u00f6\u00f6tab. Sest meil on mingi bussi, mille kaudu k\u00f5ik suhtleb ja interakteerub.<br \/>\nSeet\u00f5ttu peab see etapp t\u00e4histama teenuste testimise etappi teiste teenustega suhtlemisel. Ei saa lihtsalt j\u00e4lgida s\u00f5numite vahendajat ja korraldada suhtluse j\u00e4lgimist. Kui on teenus, mis edastab andmeid, ja teenus, mis neid vastu v\u00f5tab, siis j\u00e4lgides vahendajat n\u00e4eme vaid andmeid, mis liiguvad edasi-tagasi. Isegi kui me kuidagi suudame j\u00e4lgida nende andmete interaktsiooni, \u2014 et mingi tootja postitab andmed, keegi loeb need, see voog j\u00e4tkab liiklemist Kafka'sse \u2014 ei anna see meile ikkagi teavet, kui \u00fcks teenus edastas s\u00f5numi \u00fches versioonis, aga teine teenus ei oodanud seda versiooni ja j\u00e4ttis selle vahele. Me ei saa sellest teada, kuna teenused \u00fctlevad meile, et k\u00f5ik t\u00f6\u00f6tab. <\/p>\n<p>Kuidas ma soovitan tegutseda:<\/p>\n<ul>\n<li>S\u00fcnkroonses suhtluses: l\u00f5pp-punkt esitab p\u00e4ringud seotud teenustele. Ehk v\u00f5tame selle l\u00f5pp-punkti, k\u00e4ivitame skripti teenuses, mis l\u00e4bib k\u00f5ik punktid ja \u00fctleb: \u201ema saan seal t\u00f5mmata ja seal t\u00f5mmata, saan seal t\u00f5mmata...\u201c<\/li>\n<li>As\u00fcnkroonses suhtluses: sissetulevad s\u00f5numid \u2014 l\u00f5pp-punkt kontrollib bussi, et leida test-s\u00f5numeid ja annab t\u00f6\u00f6tlemise staatuse. <\/li>\n<li>As\u00fcnkroonses suhtluses: v\u00e4ljaminevad s\u00f5numid \u2014 l\u00f5pp-punkt saadab bussile test-s\u00f5numid.<\/li>\n<\/ul>\n<p>\nKuidas tavaliselt toimub: meil on teenus, mis viskab andmeid bussi. Me tuleme sellesse teenusesse ja palume r\u00e4\u00e4kida tema integratsioonilisest tervisest. Ja kui teenus peab edastama mingi s\u00f5num edasi (WebApp), siis ta edastab selle test-s\u00f5numi. Ja kui me t\u00f5mbame teenust tellimuste t\u00f6\u00f6tlemise poole, siis ta k\u00f5igepealt postitab seda, mida ta saab postitada s\u00f5ltumatult, ja kui on mingeid s\u00f5ltuvaid asju \u2014 siis ta loeb bussist komplekti test-s\u00f5numeid, m\u00f5istab, mida ta saab t\u00f6\u00f6delda, teatab sellest ja kui vaja, postitab neid edasi ning \u00fctleb selle kohta \u2014 k\u00f5ik on korras, ma olen elus. <\/p>\n<p>Sageli kuuleme k\u00fcsimust \"kuidas me saame seda testida tootmisandmetega?\" N\u00e4iteks r\u00e4\u00e4gime samast tellimuste teenusest. Tellimus saadab s\u00f5numeid laosse, kus tooted kirjutatakse maha: me ei saa seda testida tootmisandmetega, sest \u201emul hakkavad tooted maha kandma!\" Lahendus: planeerige see test algfaasis. Teil on ju olemas unit-testid, mis teevad mock'e. Seega, tehke seda s\u00fcgavamal tasemel, kus teil on suhtluskanal, mis ei kahjusta \u00e4ri toimimist. <\/p>\n<h3>Infrastruktuuri tase<\/h3>\n<p>\nInfrastruktuuri j\u00e4lgimine on asi, mis on juba ammu m\u00e4\u00e4ratletud kui t\u00f5eline j\u00e4lgimine. <\/p>\n<ul>\n<li>Infrastruktuuri j\u00e4lgimist saab ja tuleb alustada kui eraldi protsessi.<\/li>\n<li>\u00c4rge alustage infrastruktuuri j\u00e4lgimist t\u00f6\u00f6taval projektil, isegi kui see on v\u00e4ga soovitud. See on probleem, millega k\u00f5ik DevOps'i spetsialistid silmitsi seisavad. \"Esiteks j\u00e4lgin klastrit, j\u00e4lgin infrastruktuuri\" \u2013 see t\u00e4hendab, et ta j\u00e4lgib k\u00f5ige madalamat taset, aga rakendusse ei tungi. Sest rakendus on DevOps'ile arusaamatu asi. Selle on talle edastatud, ja ta ei m\u00f5ista, kuidas see t\u00f6\u00f6tab. Kuid ta m\u00f5istab infrastruktuuri ja alustab sealt. Aga ei \u2014 alati tuleks k\u00f5igepealt j\u00e4lgida rakendust. <\/li>\n<li>\u00c4rge liialdage teavituste arvuga. Arvestades kaasaegsete s\u00fcsteemide keerukust, lendavad teavitused pidevalt ja selle hulga teavitustega tuleb kuidagi elada. Ja inimene, kes on valmis reageerima, vaatab sada j\u00e4rgmist teavitust ja otsustab, et \"ma ei taha selle \u00fcle m\u00f5elda\". Teavitused peaksid teavitama ainult kriitilistest asjadest. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Rakenduse tase kui \u00e4ri\u00fcksus<\/h3>\n<p>\nOlulised punktid:<\/p>\n<ul>\n<li>ELK. See on t\u00f6\u00f6stusstandardi m\u00e4\u00e4ratlemine. Kui mingil p\u00f5hjusel te ei kogu logisid, alustage selle tegemist kohe.<\/li>\n<li>APM. V\u00e4limised APM-id kiireks rakenduse j\u00e4lgimise katmiseks (NewRelic, BlackFire, Datadog). Saate selle asja ajutiselt paigaldada, et natuke aru saada, mis teil toimub. <\/li>\n<li>J\u00e4lgimine. K\u00fcmnetes mikroteenustes peate j\u00e4lgima k\u00f5ike, sest p\u00e4ring ei ela enam iseseisvalt. Hiljem juurde lisamine on v\u00e4ga keeruline, seega on parem kavandada j\u00e4lgimine arenduses kohe \u2014 see on arendajate t\u00f6\u00f6 ja t\u00f6\u00f6riist. Kui pole veel rakendanud - rakendage! Vaadake Jaeger\/Zipkin<\/li>\n<\/ul>\n<p><\/p>\n<h3>Teavitamine<\/h3>\n<p><\/p>\n<ul>\n<li>Teavituss\u00fcsteemi loomine: j\u00e4lgimise tingimustes peab olema \u00fchtne teavituss\u00fcsteem. Grafanas on see v\u00f5imalik. L\u00e4\u00e4nes kasutatakse k\u00f5ikjal PagerDuty'd. Teated peavad olema arusaadavad (n\u00e4iteks, kust nad tulid\u2026). Ja on soovitatav kontrollida, et teated t\u00f5epoolest kohale j\u00f5uavad. <\/li>\n<li>Vahetuste s\u00fcsteemi loomine: h\u00e4ired ei tohiks tulla k\u00f5igile (muud moodi reageerivad k\u00f5ik koos v\u00f5i ei reageeri keegi). Vahetuse ajal peavad olema ka arendajad: m\u00e4\u00e4rake kindlasti vastutusalad, koostage selged juhised ja kirjutage sellesse, kellele t\u00e4pselt esmasp\u00e4eval ja kolmap\u00e4eval helistada ning kellele teisip\u00e4eval ja reedel (muud moodi ei helistata aga suurte h\u00e4dade korral \u2014 kartuses, et v\u00f5etakse \u00fcles, segatakse: inimesed ei armasta helistada ja \u00e4ratada teisi, eriti \u00f6\u00f6sel). Ja selgitage, et abi k\u00fcsimine ei ole ebakompetentsuse n\u00e4itaja (\"ma k\u00fcsin abi \u2014 t\u00e4hendab, et ma olen halb t\u00f6\u00f6taja\"), julgustage abitootmisi.<\/li>\n<li>Teadmiste baasi ja juhtumite t\u00f6\u00f6tlemise t\u00f6\u00f6voo loomine: iga t\u00f5sise juhtumi korral peab olema kavandatud postmortem; ajutise abin\u00f5una peavad olema fikseeritud toimingud, mis lahendavad juhtumi. Ja looge praktika, et korduvad h\u00e4ired on patt; need tuleb fikseerida koodis v\u00f5i infrastruktuuri t\u00f6\u00f6des. <\/li>\n<\/ul>\n<p><\/p>\n<h3>Tehnoloogiakogum<\/h3>\n<p>\nKujutage ette, et meie tehnoloogia on j\u00e4rgmine: <\/p>\n<ul>\n<li>andmete kogumine \u2014 Prometheus + Grafana;<\/li>\n<li>logide anal\u00fc\u00fcs \u2014 ELK;<\/li>\n<li>APM-i v\u00f5i j\u00e4lgimise jaoks \u2014 Jaeger (Zipkin).<\/li>\n<\/ul>\n<p>\n<img decoding=\"async\" alt=\"H\u00e4vitav j\u00e4lgimine? \u2014 Elagu j\u00e4lgimine\" src=\"\/wp-content\/uploads\/2019\/04\/af26d3c0ba781cd856d220515788b5eb.jpeg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nValikuv\u00f5imalused ei ole kriitilised. Sest kui olete alguses aru saanud, kuidas s\u00fcsteemi j\u00e4lgida, ja koostanud plaani, hakkate hiljem valima t\u00f6\u00f6riistu vastavalt oma n\u00f5udmistele. K\u00fcsimus on, mida te alguses j\u00e4lgida valisite. Sest v\u00f5ib-olla ei sobi t\u00f6\u00f6riist, mille valisite alguses, teie n\u00f5udmistele \u00fcldse. <\/p>\n<p>M\u00f5ned tehnilised aspektid, mida ma viimasel ajal igal pool n\u00e4en:<\/p>\n<p><i>Prometheust surutakse Kubernetesesse \u2014 kes selle v\u00e4lja m\u00f5tles?!<\/i> Kui teie klaster kokku kukub, mida teete? Kui teil on keeruline klaster sees, peab t\u00f6\u00f6tama mingi j\u00e4lgimiss\u00fcsteem sees ja mingi \u2014 v\u00e4ljas, mis kogub andmeid klastrist. <\/p>\n<p><i>Klastri sees kogume logisid ja k\u00f5ike muud.<\/i> Kuid j\u00e4lgimiss\u00fcsteem peab olema v\u00e4ljas. V\u00e4ga sageli, kui klastris on Prometheus, mis on paigaldatud sisse, on seal ka s\u00fcsteeme, mis teevad v\u00e4liseid kontrollimisi veebisaidi t\u00f6\u00f6 kohta. Ja kui teie \u00fchendus v\u00e4lismaailmaga katkeb ja rakendus ei t\u00f6\u00f6ta? Tundub, et teie sees on k\u00f5ik korras, kuid kasutajatele ei ole sellest kasu.<\/p>\n<h3>J\u00e4reldused<\/h3>\n<p><\/p>\n<ul>\n<li>J\u00e4lgimise arendamine ei t\u00e4henda lihtsalt utiliitide installimist, vaid tarkvaratoote arendamist. 98% t\u00e4nap\u00e4evastest j\u00e4lgimistest on koodimine. Koodimine teenustes, koodimine v\u00e4liste kontrollide jaoks, v\u00e4liste teenuste testimine ja nii edasi. <\/li>\n<li>\u00c4rge kahetsege arendajate aega j\u00e4lgimiseks: see v\u00f5ib v\u00f5tta kuni 30% nende t\u00f6\u00f6st, kuid on seda v\u00e4\u00e4rt.<\/li>\n<li>DevOps'id, \u00e4rge muretsege, kui te ei saa midagi j\u00e4lgida, sest m\u00f5ned asjad on \u00fcldse teistsugune m\u00f5tteviis. Te ei olnud programmeerija, aga j\u00e4lgimise t\u00f6\u00f6 on just nende vastutus.<\/li>\n<li>Kui projekt juba t\u00f6\u00f6tab ja pole j\u00e4lgitud (ja te olete juht), eraldage ressursid j\u00e4lgimiseks.<\/li>\n<li>Kui toode on juba tootmises ja te olete DevOps, kellele \u00f6eldi \u00abseadistada j\u00e4lgimist\u00bb, proovige selgitada juhtkonnale seda, millest ma r\u00e4\u00e4kisin.<\/li>\n<\/ul>\n<p>\n<i>See on laiendatud versioon ettekandest konverentsil Saint Highload++.<\/i><\/p>\n<p>Kui teid huvitavad minu ideed ja m\u00f5tted IT-st ja selle \u00fcmber, siis siin on v\u00f5imalus <noindex><a rel=\"nofollow\" href=\"https:\/\/t.me\/eapotapov_channel\">lugeda kanalit <\/a><\/noindex>\ud83d\ude42<br \/>\n<br \/>Allikas: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/itsumma\/blog\/448602\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u0448\u0430 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u044f \u0441 2008 \u0433\u043e\u0434\u0430 \u0437\u0430\u043d\u0438\u043c\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0435\u0438\u043c\u0443\u0449\u0435\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c \u0438\u043d\u0444\u0440\u0430\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430\u043c\u0438 \u0438 \u043a\u0440\u0443\u0433\u043b\u043e\u0441\u0443\u0442\u043e\u0447\u043d\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u043e\u0439 \u0432\u0435\u0431-\u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432: \u0443 \u043d\u0430\u0441 \u0431\u043e\u043b\u0435\u0435 400 \u043a\u043b\u0438\u0435\u043d\u0442\u043e\u0432, \u044d\u0442\u043e \u043f\u043e\u0440\u044f\u0434\u043a\u0430 15% \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0439 \u043a\u043e\u043c\u043c\u0435\u0440\u0446\u0438\u0438 \u0420\u043e\u0441\u0441\u0438\u0438. \u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e, \u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0435 \u043e\u0447\u0435\u043d\u044c \u0440\u0430\u0437\u043d\u043e\u043e\u0431\u0440\u0430\u0437\u043d\u0430\u044f \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u0430. \u0415\u0441\u043b\u0438 \u0447\u0442\u043e-\u0442\u043e \u043f\u0430\u0434\u0430\u0435\u0442, \u043c\u044b \u043e\u0431\u044f\u0437\u0430\u043d\u044b \u0432 \u0442\u0435\u0447\u0435\u043d\u0438\u0435 15 \u043c\u0438\u043d\u0443\u0442 \u044d\u0442\u043e \u043f\u043e\u0447\u0438\u043d\u0438\u0442\u044c. \u041d\u043e \u0447\u0442\u043e\u0431\u044b \u043f\u043e\u043d\u044f\u0442\u044c, \u0447\u0442\u043e \u0430\u0432\u0430\u0440\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430, \u043d\u0443\u0436\u043d\u043e \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u0442\u044c \u043f\u0440\u043e\u0435\u043a\u0442 \u0438 \u0440\u0435\u0430\u0433\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043d\u0430 \u0438\u043d\u0446\u0438\u0434\u0435\u043d\u0442\u044b. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":23731,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-31864","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"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\/monitoring-myortv-da-zdravstvuet-monitoring\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\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\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043c\u0451\u0440\u0442\u0432? \u2014 \u0414\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring\" \/>\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:43:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T18:43:33+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\udd47J\u00e4lgimine on surnud? \u2014 Elagu j\u00e4lgimine | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","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\u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u043c\u0451\u0440\u0442\u0432? \u2014 \u0414\u0430 \u0437\u0434\u0440\u0430\u0432\u0441\u0442\u0432\u0443\u0435\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 | ProHoster","og:url":"https:\/\/prohoster.info\/et\/blog\/administrirovanie\/monitoring-myortv-da-zdravstvuet-monitoring","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:43:33+00:00","article:modified_time":"2019-10-31T18:43:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"31864","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-02-09 17:01:09","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 03:09:27","updated":"2026-02-09 17:01:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31864","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=31864"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31864\/revisions"}],"predecessor-version":[{"id":158558,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/31864\/revisions\/158558"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media\/23731"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=31864"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=31864"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=31864"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}