{"id":56049,"date":"2020-02-04T00:00:00","date_gmt":"2020-02-03T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere"},"modified":"2020-02-18T14:04:13","modified_gmt":"2020-02-18T11:04:13","slug":"highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere","title":{"rendered":"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Najnja konferenca HighLoad++ bo potekala 6. in 7. aprila 2020 v Sankt Peterburgu. Podrobnosti in vstopnice <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/2sSxgBx\">na povezavi<\/a><\/noindex>. HighLoad++ Moskva 2018. Dvorana \u201eMoskva\u201c. 9. novembra, ob 15:00. Povzetki in <noindex><a rel=\"nofollow\" href=\"http:\/\/www.highload.ru\/moscow\/2018\/abstracts\/4141\">predstavitev<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/5c3e11c8449de7375d30b2cd75b5927e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n* Spremljanje \u2013 na spletu in analiza.<br \/>\n* Glavne omejitve platforme ZABBIX.<br \/>\n* Re\u0161itev za skaliranje skladi\u0161\u010da analitike.<br \/>\n* Optimizacija stre\u017enika ZABBIX.<br \/>\n* Optimizacija uporabni\u0161kega vmesnika.<br \/>\n* Izku\u0161nje z uporabo sistema pri obremenitvah nad 40k NVPS.<br \/>\n* Na kratko ugotovitve.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Mikhail Makurov (nadalje \u2013 MM):<\/b> \u2013 Vsem pozdrav!<\/p>\n<p><b>Maxim Chernetsov (nadalje \u2013 M\u010c):<\/b> \u2013 Dober dan!<\/p>\n<p><b>MM:<\/b> \u2013 Dovolite mi, da predstavim Maxima. Max je nadarjen in\u017eenir, najbolj\u0161i omre\u017eni strokovnjak, ki ga poznam. Maxim se ukvarja z omre\u017eji in storitvami, njihovim razvojem in uporabo.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/a7fc62a03c0aede46f4a4695845daa22.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>M\u010c:<\/b> \u2013 Rad bi predstavil Mihaila. Mihail je razvijalec v programskem jeziku C. Napisal je ve\u010d re\u0161itev za obdelavo prometa z visoko obremenitvijo za na\u0161e podjetje. \u017divimo in delamo na Uralu, v mestu trdnih mo\u0161kih \u010celjabinsku, v podjetju \u201eIntersvyaz\u201c. Na\u0161e podjetje je ponudnik internetnih in kabelskih televizijskih storitev za milijon ljudi v 16 mestih.<\/p>\n<p><b>MM:<\/b> \u2013 In treba je omeniti, da je \u201eIntersvyaz\u201c mnogo ve\u010d kot le ponudnik, to je IT-podjetje. Ve\u010dina na\u0161ega dela je rezultat truda na\u0161ega IT oddelka.<\/p>\n<p><b>O:<\/b> od stre\u017enikov, ki obdelujejo promet, do klicnega centra in mobilne aplikacije. V IT oddelku je trenutno okoli 80 ljudi z zelo raznoliko znanjem.<\/p>\n<h3>O Zabbixu in njegovi arhitekturi<\/h3>\n<p>\n<b>M\u010c:<\/b> \u2013 Zdaj bom poskusil postaviti osebni rekord in v eni minuti povedati, kaj je Zabbix (nadalje \u2013 \u201eZabbix\u201c).<\/p>\n<p>\u201eZabbix\u201c se pozicionira kot sistem za spremljanje \u201eiz \u0161katle\u201c na ravni podjetja. Ima veliko funkcij, ki olaj\u0161ajo \u017eivljenje: napredna pravila eskalacije, API za integracijo, grupiranje in samodejno odkrivanje gostiteljev in metrik. V \u201eZabbixu\u201c so tako imenovana sredstva za skaliranje \u2013 proxy. \u201eZabbix\u201c je sistem z odprtokodnim izvorom.<\/p>\n<p>Na kratko o arhitekturi. Lahko re\u010demo, da se sestavi iz treh komponent:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/0d2ae3ee04d00885d65e17b8cf44182b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ul>\n<li>Stre\u017enik. Napisan je v jeziku C. Z dovolj zapleteno obdelavo in prenosom informacij med nitmi. Vsa obdelava poteka tam: od prejemanja do shranjevanja v podatkovno bazo.<\/li>\n<li>Vsi podatki se shranjujejo v bazi. \u201eZabbix\u201c podpira MySQL, PostgreSQL in Oracle.<\/li>\n<li>Web vmesnik je napisan v PHP. Ve\u010dina sistemov se dobavlja s stre\u017enikom Apache, vendar deluje bolj u\u010dinkovito v kombinaciji nginx + php.<\/li>\n<\/ul>\n<p>\nDanes bi \u017eeleli deliti eno zgodbo iz \u017eivljenja na\u0161e podjetja, povezano z 'Zabbix'...<\/p>\n<h3>Zgodba iz \u017eivljenja podjetja 'Intersvyaz'. Kaj imamo in kaj potrebujemo?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/407c35b81995ddca6444fa418941063f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Pred 5 ali 6 meseci. Enkrat po slu\u017ebi...<\/i><\/p>\n<p><b>M\u010c:<\/b> \u2013 Mi\u0161a, \u017eivjo! Vesel sem, da te lahko ujame, imamo pogovor. Spet smo imeli te\u017eave z nadzorom. Med ve\u010djo okvaro je vse zastalo, informacije o stanju omre\u017eja pa ni bilo. Na sre\u010do se to ne dogaja prvi\u010d. Potrebujem tvojo pomo\u010d. Poglejva, kako lahko na\u0161 nadzor deluje v vseh okoli\u0161\u010dinah!<\/p>\n<p><b>MM:<\/b> \u2013 Ampak najprej se uskladiva. Tja \u017ee nekaj let nisem pogledal. Kolikor se spomnim, smo pred pribli\u017eno 8 leti opustili Nagios in pre\u0161li na 'Zabbix'. In zdaj imamo, zdi se, 6 mo\u010dnih stre\u017enikov in pribli\u017eno deset proxyjev. Ni\u010d ne zme\u0161am?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Skoraj. 15 stre\u017enikov, od katerih je del virtualnih strojev. Najpomembneje je, da nas to ne re\u0161i v trenutku, ko to najbolj potrebujemo. Ob okvari \u2013 stre\u017eniki upo\u010dasnijo, vse je nevidno. Poskusili smo optimizirati konfiguracijo, a optimalnega pove\u010danja u\u010dinkovitosti to ne prina\u0161a.<\/p>\n<p><b>MM:<\/b> \u2013 Razumem. Ali ste \u017ee kaj pogledali, kaj ste odkrili s diagnostiko?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Prvo, s \u010dimer se moramo ukvarjati, je ravno DB. MySQL je \u017ee tako nenehno obremenjen, ker shranjuje nove metrik, in ko 'Zabbix' za\u010dne ustvarjati kup dogodkov \u2013 baza se dobesedno zadu\u0161i za nekaj ur. O optimizaciji konfiguracije sem ti \u017ee povedal, letos pa smo dobesedno posodobili strojno opremo: stre\u017eniki imajo ve\u010d kot sto gigabajtov pomnilnika in diskovne enote na SSD RAID-ih - nadaljnje linearno pove\u010danje nima smisla. Kaj bomo naredili?<\/p>\n<p><b>MM:<\/b> \u2013 Razumem. Na splo\u0161no je MySQL LTP-baza. O\u010ditno ta ve\u010d ne ustreza shranjevanju arhiva metrik na\u0161e velikosti. Oglejva se.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Poglejva!<\/p>\n<h3>Integracija Zabbix in Clickhouse kot rezultat hackathona<\/h3>\n<p>\nPo nekaj \u010dasa smo dobili zanimive podatke:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/46899e843b1e89524c6d762c1c167a6c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVe\u010dina mesta v na\u0161i bazi je bila zasedena s arhivom meritev, manj kot 1 % pa je bilo porabljenega za konfiguracije, predloge in nastavitve. Takrat smo \u017ee ve\u010d kot leto dni uporabljali re\u0161itev Big Data na osnovi Clickhouse. Usmeritev razvoja nam je bila jasna. Na na\u0161em pomladnem \u2018Hackathonu\u2019 sem napisal integracijo Zabbixa s Clickhouse za stre\u017enik in frontend. Takrat je Zabbix \u017ee podpiral ElasticSearch in odlo\u010dili smo se, da ju primerjamo.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/92fa3da527de48102cbdcf6959d46814.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Primerjava Clickhouse in Elasticsearch<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Za primerjavo smo generirali obremenitev, ki jo zagotavlja Zabbix stre\u017enik, in opazovali, kako se bosta sistemi obnesla. Podatke smo zapisovali po serijah po 1000 vrstic in uporabljali CURL. Vnaprej smo predpostavljali, da bo Clickhouse bolj u\u010dinkovit za tisto vrsto obremenitve, ki jo ustvarja Zabbix. Rezultati so celo presegli na\u0161a pri\u010dakovanja:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/354be7147b23a0bcb9ada3af93f59fac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV enakih pogojih je Clickhouse zapisal trikrat ve\u010d podatkov. Obe sistemi sta pri branju podatkov zelo u\u010dinkovito porabili malo virov. A za ElasticSearch je pri zapisovanju potrebovala veliko procesorske mo\u010di:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/fea7f7f7801024cee0f9367c49d81d5b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSkupaj je Clickhouse znatno presegel ElasticSearch po porabi procesorja in hitrosti. Hkrati zaradi stiskanja podatkov Clickhouse uporablja 11-krat manj prostora na trdem disku in izvaja pribli\u017eno 30-krat manj diskovnih operacij:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/50c24c4615ed350d7d78ec8655423409.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>M\u010c:<\/b> \u2013 Da, delo z diskovnim sistemom pri Clickhouse je zelo u\u010dinkovito. Za baze lahko uporabite ogromne SATA diske in dose\u017eete hitrosti zapisovanja v stotinah tiso\u010d vrstic na sekundo. Sistem \u2018iz \u0161katle\u2019 podpira sharding, replikacijo in je zelo enostaven za nastavitev. Z njegovo uporabo smo ve\u010d kot zadovoljni \u017ee eno leto.<\/p>\n<p>Za optimizacijo virov lahko Clickhouse namestite poleg obstojne glavne baze in tako prihranite ogromno procesorskega \u010dasa in diskovnih operacij. Arhiv meritev smo premestili na obstoje\u010de Clickhouse grozde:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/4cf44eae47a13f2fc50377fec884ecc8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDovolj smo razbremenili glavno MySQL bazo, da smo jo lahko zdru\u017eili na enem ra\u010dunalniku z Zabbix stre\u017enikom in se odpovedali namenskemu stre\u017eniku za MySQL.<\/p>\n<h3>Kako deluje polling v Zabbixu?<\/h3>\n<p>\n<i>Pred 4 meseci<\/i><\/p>\n<p><b>MM:<\/b> \u2013 No, o te\u017eavah z bazo lahko pozabimo?<\/p>\n<p><b>M\u010c:<\/b> \u2013 To je to\u010dno! Naloga, ki jo moramo re\u0161iti, je po\u010dasno zbiranje podatkov. Zdaj je vseh na\u0161ih 15 proxy stre\u017enikov obremenjenih s procesi SNMP in polnjenja. In ni druge izbire kot dodati nove in nove stre\u017enike.<\/p>\n<p><b>MM:<\/b> \u2013 Odli\u010dno. Ampak povej mi najprej, kako deluje polnjenje v 'Zabbixu'?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Na kratko, obstaja 20 vrst metrike in ducat na\u010dinov njihovega pridobivanja. 'Zabbix' lahko zbira podatke bodisi v na\u010dinu 'vpra\u0161anje \u2013 odgovor', bodisi pri\u010dakuje nove podatke preko 'Trap interface'.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/cb2d974ee113b4147a4a588c1f35c730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOmeniti velja, da je v izvirnem 'Zabbixu' ta na\u010din (Trapper) \u2013 najhitrej\u0161i. <\/p>\n<p>Obstajajo proxy stre\u017eniki za razdelitev obremenitve:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/7b5c94a82b7e06aff6df6ea5549babdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProxy lahko opravljajo enake funkcije zbiranja kot 'Zabbix' stre\u017enik, saj prejmejo naloge od njega in po\u0161ljejo zbrane metrike prav skozi Trap-interfejs. To je uradno priporo\u010dena metoda za razdelitev obremenitve. Prav tako so proxy koristni za spremljanje oddaljene infrastrukture, ki deluje preko NAT ali po\u010dasnega kanala:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/dbfb2777f9dd9b4adb81f1fa89f3bdd5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Z arhitekturo je vse jasno. Moramo pogledati izvorne kode...<\/p>\n<p><i>Par dni kasneje<\/i><\/p>\n<h3>Pripoved o tem, kako je nmap fping zmagal<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Zdi se, da sem nekaj izkopal.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Povej!<\/p>\n<p><b>MM:<\/b> \u2013 Odkrijem, da pri preverjanju dostopnosti 'Zabbix' preveri najve\u010d 128 gostiteljev hkrati. Poskusil sem pove\u010dati to \u0161tevilko na 500 in odstranil interval med paketi v njihovem ping (ping) \u2013 to je pove\u010dalo u\u010dinkovitost za dvakrat. Ampak \u017eelel bi \u0161e ve\u010dje \u0161tevilke.<\/p>\n<p><b>M\u010c:<\/b> \u2013 V svoji praksi v\u010dasih preverjam dostopnost tiso\u010d gostiteljev, in ni\u010d hitrej\u0161ega od nmapa do zdaj nisem sre\u010dal. Prepri\u010dan sem, da je to najhitrej\u0161i na\u010din. Poskusimo to! Moramo znatno pove\u010dati \u0161tevilo gostiteljev na eno iteracijo.<\/p>\n<p><b>MM:<\/b> \u2013 Preveriti ve\u010d kot petsto? 600?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Vsaj nekaj tiso\u010d.<\/p>\n<p><b>MM:<\/b> \u2013 Okej. Najpomembnej\u0161e, kar sem hotel re\u010di: odkril sem, da je ve\u010dina polnjenja v 'Zabbixu' izvedena sinhrono. Obvezno ga moramo prenoviti v asinhroni na\u010din. Takrat bomo lahko radikalno pove\u010dali \u0161tevilo metrik, ki jih zbirajo zbiralci, \u0161e posebej, \u010de pove\u010damo \u0161tevilo metrik na eno iteracijo.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Super! In kdaj?<\/p>\n<p><b>MM:<\/b> \u2013 Kot obi\u010dajno, v\u010deraj.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Primerjali smo obe razli\u010dici fping in nmap:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/4be4cfe019b6b318ae2fbdbf82577111.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa \u0161tevilnih gostiteljih je bil nmap pri\u010dakovano do petkrat u\u010dinkovitej\u0161i. Ker nmap preverja le dostopnost in \u010das odziva, smo \u0161tetje izgub prenesli na spro\u017eilce in mo\u010dno skraj\u0161ali intervale preverjanja dostopnosti. Optimalno \u0161tevilo gostiteljev za nmap je bilo uvr\u0161\u010deno okoli 4000 v eni iteraciji. Nmap nam je omogo\u010dil, da smo stro\u0161ke CPU za preverjanje dostopnosti zni\u017eali trikrat in skraj\u0161ali interval s 120 sekund na 10.<\/p>\n<h3>Optimizacija poliranja<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Nato smo se lotili polirnikov. V glavnem nas je zanimala snemanja SNMP in agenti. V \"Zabbixu\" je poliranje izvedeno sinhrono, sprejeti so bili posebni ukrepi za pove\u010danje u\u010dinkovitosti sistema. V sinhronem na\u010dinu nedostopnost gostiteljev povzro\u010da znatno degradacijo poliranja. Obstaja cela sistem stanj, obstajajo posebni procesi \u2013 t.i. unreachable-polirniki, ki delujejo le z nedostopnimi gostitelji:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/6a001eff121f2392fffda69d719ebad6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo je komentar, ki prikazuje matriko stanj, vso kompleksnost sistemskih prehodov, ki so potrebni, da sistem ostane u\u010dinkovit. Poleg tega je samo sinhrono poliranje dovolj po\u010dasi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/3579a4a3de85c37f812ba2ca71cf4b3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZato tiso\u010di tokov polirnikov na desetih proxy-jih niso mogli zbrati potrebne koli\u010dine podatkov. Asinhrona realizacija ni re\u0161ila le te\u017eav s \u0161tevilom tokov, ampak je tudi znatno poenostavila sistem stanj nedostopnih gostiteljev, saj je pri katerem koli \u0161tevilu, preverjenem v eni iteraciji poliranja, najve\u010dje \u010dasovno \u010dakanje zna\u0161alo 1 \u010dasovno omejitev:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/c5f2d9bb3e558f8bba6bd8a96d8ed6a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDodatno smo modificirali, izbolj\u0161ali sistem poliranja za SNMP-izpra\u0161evanja. Dejstvo je, da ve\u010dina ne more hkrati odgovarjati na ve\u010d SNMP-izpra\u0161evanj. Zato smo uvedli hibridni na\u010din, kjer SNMP-poliranje istega gostitelja poteka asinhrono:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/eb61766e8afce9bf72d6e9757492559e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo se izvaja za celotno serijo gostiteljev. Tak na\u010din v kon\u010dni fazi ni po\u010dasnej\u0161i od popolnoma asinhronega, saj je vpra\u0161anje polt stoletja SNMP-vrednosti \u0161e vedno precej hitrej\u0161e od 1 \u010dasovne omejitve.<\/p>\n<p>Na\u0161i eksperimenti so pokazali, da je optimalno \u0161tevilo izpra\u0161evanj v eni iteraciji \u2013 pribli\u017eno 8000 pri SNMP-poliranju. Prehod na asinhroni na\u010din je skupno omogo\u010dil 200-kratno pove\u010danje u\u010dinkovitosti poliranja, ve\u010d sto krat.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Prejete optimizacije polling-a so pokazale, da se lahko znebimo vseh proxy-jev in skraj\u0161amo intervale za mnoge preverbe, proxy-ji pa ne bodo ve\u010d potrebni kot na\u010din razporejanja obremenitve.<\/p>\n<p><i>Pred pribli\u017eno tremi meseci<\/i><\/p>\n<h3>Spremeni arhitekturo \u2013 pove\u010daj obremenitev!<\/h3>\n<p>\n<b>MM:<\/b> \u2013 No, Max, \u010das je za produktivno delo? Potrebujem zmogljiv stre\u017enik in dobrega in\u017eenirja.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Dobro, na\u010drtujmo. \u017de dolgo je \u010das, da premaknemo tisto mrtvo to\u010dko pri 5000 metrikah na sekundo.<\/p>\n<p><i>Jutro po nadgradnji<\/i><\/p>\n<p><b>M\u010c:<\/b> \u2013 Mi\u0161a, posodobili smo se, a se smo do jutra vrnili nazaj\u2026 Ugani, kak\u0161ne hitrosti smo dosegli?<\/p>\n<p><b>MM:<\/b> \u2013 Maksimalno 20 tiso\u010d.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Aha, 25! Na \u017ealost smo tam, kjer smo za\u010deli.<\/p>\n<p><b>MM:<\/b> \u2013 Zakaj tako? Ste naredili kak\u0161no diagnostiko?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Da, seveda! Tukaj, na primer, zanimiv top:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/09ac3336a820977b643ee5328ad2a851.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Poglejmo. Vidim, da smo poskusili z ogromno \u0161tevilo tokov polninga:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/346e8047f1f6f2bb1b1dd91a728e437b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nA kljub temu nismo mogli niti polovice izkoristiti sistema:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/be1843dbec0fb10d8da59e8c570adc5b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn skupna zmogljivost je kar majhna, okoli 4000 metrik na sekundo:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/02eaf0b56629ebc6d3d5c132374a91b8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe \u0161e kaj drugega?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Da, strace enega od pollerjev:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/73fc58bd2925859f6fbbcd118a0483c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Tukaj je jasno vidno, da proces polninga \u010daka na 'semaforje'. To so zaklepi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/d0bec44a9677ec111066dccc1dd8c5dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>M\u010c:<\/b> \u2013 Ne razumem.<\/p>\n<p><b>MM:<\/b> \u2013 Poglej, to je podobno situaciji, ko sku\u0161a veliko tokov delati z virom, s katerim lahko hkrati deluje le en. Takrat lahko vse, kar lahko po\u010dnejo, je deljenje tega vira po \u010dasovnih obdobjih:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/7dbb9e8941b01b666dd48f6301151ec9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn skupna zmogljivost dela s takim virom je omejena s hitrostjo enega jedra:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/e00b197577f4ea7350fe56665dbae299.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTak\u0161no te\u017eavo lahko re\u0161imo na dva na\u010dina.<\/p>\n<p>Nadgraditi opremo naprave, preiti na hitrej\u0161a jedra:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/296d84b434ed7277fb558a8a4dd5ac47.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAli pa spremeniti arhitekturo in isto\u010dasno \u2013 obremenitev:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/efea73106440db4e5eda5aa475dd088b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>M\u010c:<\/b> \u2013 Mimogrede, na testni napravi bomo uporabili manj\u0161e \u0161tevilo jeder kot na produkcijski, vendar so zato 1,5-krat hitrej\u0161a po frekvenci na jedro!<\/p>\n<p><b>MM:<\/b> \u2013 Jasno? Moramo pogledati kodo stre\u017enika.<\/p>\n<h3>Pot podatkov v stre\u017eniku Zabbix<\/h3>\n<p>\n<b>M\u010c:<\/b> \u2013 Da bi to razumeli, smo za\u010deli analizirati, kako se podatki prena\u0161ajo znotraj stre\u017enika 'Zabbix':<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/b3d84e3fcb12e7afe3c974bdeacc357a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSuper slika, kajne? Pojdimo \u010dez to korak za korakom, da bo bolje jasno. Obstajajo tokovi in storitve, odgovorne za zbiranje podatkov:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/966db6fa84723d4d3bde8a23736294d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZbrane metrike posredujejo prek socket-a v Preprocessor manager, kjer so shranjene v \u010dakalni vrsti:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/1e34fe2c4194f7bd71ec409d6169fb94.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPreprocesor-u\u010ditelj' posreduje podatke svojim delavcem, ki izvr\u0161ujejo navodila za predobdelavo in jih vra\u010dajo nazaj prek istega socket-a:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/d647caf3886f0c9378a32314e812edc1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNato preprocesor mened\u017eer je sa\u010duvao u ke\u0161u istorije:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/ff0e29b0d974d76bd3a3b71d36a1cc68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOdande ih uzimaju istorijski sinhronizatori, koji obavljaju mno\u0161tvo funkcija: na primer, prora\u010dun okida\u010da, popunjavanje ke\u0161a vrednosti i, \u0161to je najva\u017enije, \u010duvanje metrika u skladi\u0161tu istorije. Ukupno, proces je slo\u017een i prili\u010dno zamr\u0161en.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/c418a17edeb9153a03dff233aa8f715e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Prvo \u0161to smo primetili je da se ve\u0107ina tokova takmi\u010di za takozvani 'konfiguracijski ke\u0161' (oblast memorije u kojoj se \u010duvaju sve server konfiguracije). Posebno mnogo blokada prave tokovi odgovorni za prikupljanje podataka:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/589d8f564ece6e63457450e9c5081b80.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026jer se u konfiguraciji \u010duvaju ne samo metrike sa njihovim parametrima, ve\u0107 i redovi iz kojih polleri uzimaju informacije o tome \u0161ta im dalje raditi. Kada je pollera puno, a jedan blokira konfiguraciju, ostali \u010dekaju upite:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/8026cdfcd7def84cb3708b7255b08c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Polleri ne bi trebali sukobljavati<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/d436cd3415a6f58e1db5a609689c12b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZato smo prvo \u0161to smo uradili podelili red na 4 dela i dozvolili pollerima, u sigurnim uslovima, da blokiraju te redove, te delove istovremeno:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/9466e5f0053dff583e76713f10e30a89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo je uklonilo konkurenciju za konfiguracijski ke\u0161, a brzina rada pollera se zna\u010dajno pove\u0107ala. Ali tada smo se suo\u010dili sa problemom da je preprocesor mened\u017eer po\u010deo da gomila red zadataka:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/dd58e625823310fb0a818ed81abdceac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Preprocesor mened\u017eer treba da zna kako da postavi prioritete<\/h3>\n<p>\nTo se de\u0161avalo u slu\u010dajevima kada mu je nedostajalo performansi. Tada je sve \u0161to je mogao da radi \u2013 da gomila zahteve od procesa prikupljanja podataka i sme\u0161ta ih u bafer dok ne pojede svu memoriju i padne:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/b215d880863d470ea6ca960c6338b8ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDa bismo re\u0161ili ovaj problem, dodali smo drugi soket, koji je bio posebno dodeljen radnicima:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/09d1bb92a009f9d29ba68d966de54210.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa taj na\u010din, preprocesor mened\u017eer dobio je mogu\u0107nost da prioritizuje svoj rad i u slu\u010daju \u0161irenja bafera da uspori prikupljanje, daju\u0107i radnicima mogu\u0107nost da uzmu taj bafer:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/8f4db3661c428e6e6dcfe4cc0c44c016.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZatim smo otkrili da je jedan od uzroka usporavanja bio sam radnici, po\u0161to su se takmi\u010dili za potpuno neva\u017ean resurs za njihov rad. Ovaj problem smo re\u0161ili bug-fix-om, i u novim verzijama 'Zabbix-a' je ve\u0107 re\u0161en:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/eedb359823dd23d369339e3735e341fb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Pove\u0107anjem broja soketa \u2013 dobijamo rezultat<\/h3>\n<p>\nNakon toga, sam preprocesor mened\u017eer je postao usko grlo, po\u0161to je to \u2013 jedan tok. Nailazio je na brzinu jezgra, daju\u0107i maksimalnu brzinu od otprilike 70 hiljada metrika u sekundi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/f93ccbc656c0f9e103873d99a9397495.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZato smo ustvarili \u0161tiri, s \u0161tirimi kompleti socketov, delavcev:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/81a3dea3aa0f8807add8d045cf64a609.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIn to je omogo\u010dilo pove\u010danje hitrosti na pribli\u017eno 130 tiso\u010d metrik:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/016ff07cd021a7221caef19e6ce36a9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNelinearnost rasti je mogo\u010de razlo\u017eiti s tem, da je pri\u0161la konkurenca za predpomnilnik zgodovine. Za to so se borili \u0161tirje predprocesorji in sinhronizatorji zgodovine. Do tega trenutka smo na testnem stroju dobili pribli\u017eno 130 tiso\u010d metrik na sekundo, pri \u010demer smo ga obremenjevali pribli\u017eno 95 % po procesorju:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/62162254cd8bc66c1cef697158691588.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Pred pribli\u017eno 2,5 meseca<\/i><\/p>\n<h3>Odziv od snmp-community je pove\u010dal NVP-je za 1,5-krat<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Max, potrebujem nov testni stroj! Na trenutnem ne moremo ve\u010d stisniti.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Kaj imamo trenutno?<\/p>\n<p><b>MM:<\/b> \u2013 Trenutno imamo 130 k NVP-jev in procesor 'v polici'.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Uau! Super! Po\u010dakaj, imam dve vpra\u0161anji. Po mojih izra\u010dunih je na\u0161a potreba okoli 15-20 tiso\u010d metrik na sekundo. Zakaj potrebujemo ve\u010d?<\/p>\n<p><b>MM:<\/b> \u2013 \u017delim dokon\u010dati delo do konca. \u017delim videti, koliko lahko iztisnemo iz tega sistema.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Ampak\u2026<\/p>\n<p><b>MM:<\/b> \u2013 Ampak zanj ni nobene koristi.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Jasno. In drugo vpra\u0161anje: to, kar imamo zdaj, bomo lahko vzdr\u017eevali sami, brez pomo\u010di razvijalca?<\/p>\n<p><b>MM:<\/b> \u2013 Ne mislim. Sprememba delovanja s konfiguracijskim predpomnilnikom \u2013 to je te\u017eava. Nana\u0161a se na spremembe v ve\u010dini tokov in je dovolj zapletena za vzdr\u017eevanje. Verjetno bo zelo te\u017eko to vzdr\u017eevati.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Potem potrebujemo kak\u0161no alternativo.<\/p>\n<p><b>MM:<\/b> \u2013 Obstaja taka mo\u017enost. Lahko preidemo na hitra jedra, pri tem pa se odpovedujemo novemu sistemu zaklepanja. Kljub temu bomo dosegli zmogljivost 60-80 tiso\u010d metrik. Pri tem pa bomo lahko obdr\u017eali celotno drugo kodo. 'ClickHouse', asinhrono polnjenje bo delovalo. In to bo enostavno vzdr\u017eevati.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Odli\u010dno! Predlagam, da tukaj zaklju\u010dimo.<\/p>\n<p>Po optimizaciji stre\u017eni\u0161kega dela smo kon\u010dno uspeli zagnati novo kodo v produkcijo. Odpovedali smo se delu sprememb v korist prehoda na stroj s hitrimi jedri in minimalizacije \u0161tevila sprememb v kodi. Prav tako smo poenostavili konfiguracijo in po mo\u017enosti opustili makre v podatkovnih elementih, saj so ti vir dodatnih zaklepanj.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/2b1ed396b09bd815fba973ebb5f73d76.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa primer, odpoved pogostemu makru snmp-community v na\u0161i dokumentaciji in primerih je v na\u0161em primeru omogo\u010dila dodatno pospe\u0161itev NVP-jev za pribli\u017eno 1,5-krat.<\/p>\n<p><i>Po dveh dneh v produkciji<\/i><\/p>\n<h3>Odstranjujemo pojavna okna zgodovine incidentov<\/h3>\n<p>\n<b>M\u010c:<\/b> \u2013 Mi\u0161a, uporabljava sistem \u017ee dva dni in vse deluje. Ampak samo, ko vse deluje! Imeli smo na\u010drtovana dela z selitvijo precej velikega segmenta omre\u017eja in spet smo s sodelavci preverjali, kaj je delovalo in kaj ne.<\/p>\n<p><b>MM:<\/b> \u2013 To ni mogo\u010de! Vse smo preverili \u017ee 10-krat. Stre\u017enik obdeluje celo popolno nedostopnost omre\u017eja takoj.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Vse razumem: stre\u017enik, baza, top, austat, dnevniki \u2013 vse hitro\u2026 Ampak mi gledamo spletni vmesnik, tam pa \u2013 procesor je v slabem stanju na stre\u017eniku in tole:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/828a44d71f67ac585055bffcc01ab46e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Jasno. Poglejva spletno stran. Ugotovili smo, da v situacijah z veliko aktivnimi incidenti ve\u010dina operativnih pripomo\u010dkov za\u010dne delovati zelo po\u010dasi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/22fdb735aa6136cd9967b40341d2a5cf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nVzrok za to je bila generacija sko\u010dnih oken z zgodovino incidentov, ki se generirajo za vsak element na seznamu. Zato smo prenehali z generacijo teh oken (zakomentirali smo 5 vrstic v kodi) in to je re\u0161ilo na\u0161e te\u017eave.<\/p>\n<p>\u010cas nalaganja pripomo\u010dkov se je celo ob popolni nedostopnosti skraj\u0161al z ve\u010d minut na za nas sprejemljivih 10-15 sekund, zgodovino pa je \u0161e vedno mogo\u010de ogledati s klikom na \u010das:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/d15341ce76578880a23651a7a68dd802.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Po delu. Pred 2 meseci<\/i><\/p>\n<p><b>M\u010c:<\/b> \u2013 Mi\u0161a, odhaja\u0161? Imava pogovor.<\/p>\n<p><b>MM:<\/b> \u2013 Nisem imel namena. Spet kaj s \"Zabbixom\"?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Ne, sprosti se! Hotel sem samo re\u010di: vse deluje, hvala! Jaz pla\u010dam pivo.<\/p>\n<h3>Zabbix je u\u010dinkovit<\/h3>\n<p>\n\"Zabbix\" je dovolj univerzalen in bogat sistem in funkcija. Lahko ga uporabljamo za manj\u0161e namestitve \"iz \u0161katle\", toda s pove\u010danjem potreb ga je treba optimizirati. Za shranjevanje velikega arhiva metrik uporabite ustrezno shrambo:<\/p>\n<ul>\n<li>lahko se poslu\u017eite vgrajenih sredstev, kot je integracija z \"Elasticsearch\" ali izvo\u017eenje zgodovine v besedilne datoteke (dostopno od \u010detrte razli\u010dice);<\/li>\n<li>lahko se poslu\u017eite na\u0161ih izku\u0161enj in integracije s \"ClickHouse\".<\/li>\n<\/ul>\n<p>\nZa radikalno pove\u010danje hitrosti zbiranja metrik jih zbirajte z asinkronimi metodami in jih prena\u0161ajte preko traper-interface v \"Zabbix\" stre\u017enik; ali pa se lahko poslu\u017eite popravka za asinkronost polledov samega \"Zabbixa\".<\/p>\n<p>Zabbix je napisan u C-u i dovoljno je u\u010dinkovit. Rje\u0161enje nekoliko uskih arhitektonskih mjesta dodatno pove\u0107ava njegovu u\u010dinkovitost i, prema na\u0161em iskustvu, omogu\u0107ava prikupljanje vi\u0161e od 100 tisu\u0107a metrika na jednoj procesorskoj ma\u0161ini.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/46559b481b5e53dc3cc3d2562a94531d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Ovaj tzv. Zabbix patch<\/h3>\n<p>\n<b>MM:<\/b> \u2013 \u017delim dodati nekoliko stvari. Sav trenutni izvje\u0161taj, svi testovi, brojke navedene su za onu konfiguraciju koja se koristi kod nas. Sa nje trenutno prikupljamo otprilike 20 tisu\u0107a metrika u sekundi. Ako poku\u0161avate shvatiti ho\u0107e li to raditi kod vas \u2013 mo\u017eete napraviti usporedbu. Ono o \u010demu smo danas govorili, dostupno je na GitHubu u obliku patcha: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/miklert\/zabbix\">github.com\/miklert\/zabbix<\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/e5880b2f01cb03809057db08306b23c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPatch uklju\u010duje:<\/p>\n<ul>\n<li>potpunu integraciju s ClickHouse-om (uklju\u010duju\u0107i Zabbix server i frontend);<\/li>\n<li>rje\u0161avanje problema s preprocesor menad\u017eerom;<\/li>\n<li>asinkrono poliranje.<\/li>\n<\/ul>\n<p>\nPatch je kompatibilan sa svim verzijama 4, uklju\u010duju\u0107i LTS. Vjerovatno \u0107e raditi s minimalnim izmjenama na verziji 3.4.<\/p>\n<p>Hvala na pa\u017enji.<\/p>\n<h3>Vpra\u0161anja<\/h3>\n<p>\nPitanje iz publike (dalje \u2013 P): \u2013 Dobar dan! Recite mi, molim vas, imate li planove za intenzivno sura\u0111ivanje s timom Zabbix ili oni s vama, kako bi to bio normalan na\u010din rada Zabbixa, a ne samo patch?<\/p>\n<p><b>MM:<\/b> \u2013 Da, dio promjena obavezno \u0107emo uklju\u010diti. Neki detalji \u0107e ostati u patchu.<\/p>\n<p><b>O:<\/b> \u2013 Hvala vam puno na odli\u010dnom izlaganju! Recite mi, molim vas, nakon primjene patcha, ho\u0107e li podr\u0161ka Zabbixa ostati i kako \u0107e se dalje nadograditi na vi\u0161e verzije? Ho\u0107e li biti mogu\u0107nosti nadogradnje Zabbixa nakon va\u0161eg patcha na 4.2, 5.0?<\/p>\n<p><b>MM:<\/b> \u2013 O podr\u0161ci ne mogu ni\u0161ta re\u0107i. Da sam ja tehni\u010dka podr\u0161ka Zabbixa, vjerojatno bih rekao ne, jer je to tu\u0111i kod. \u0160to se ti\u010de kodne baze 4.2, na\u0161 stav je ovakav: \"Krenut \u0107emo s vremenom i sami \u0107emo se nadogra\u0111ivati na sljede\u0107u verziju\". Stoga \u0107emo neko vrijeme objavljivati patch za nove verzije. Ve\u0107 sam rekao u izlaganju: broj promjena izme\u0111u verzija za sada je dovoljno mali. Mislim da je prelazak s 3.4 na 4 kod nas trajao, \u010dinilo se, 15 minuta. Tamo se ne\u0161to promijenilo, ali nije tako bitno.<\/p>\n<p><b>O:<\/b> \u2013 Dakle, planirate podr\u017eavati svoj patch i mo\u017ee se sigurno uvesti u produkciju, a kasnije primati a\u017euriranja na neki na\u010din?<\/p>\n<p><b>MM:<\/b> \u2013 Mi to kategori\u010dki preporu\u010dujemo. To nam rje\u0161ava mnogo problema.<\/p>\n<p><b>M\u010c:<\/b> \u2013 \u0160e enkrat bi \u017eelel poudariti, da so spremembe, ki se ne nana\u0161ajo na arhitekturo in se ne dotikajo blokad, \u010dakalnih vrst \u2013 modularne, te so v lo\u010denih modulih. Tudi ob manj\u0161ih spremembah jih je mogo\u010de vzdr\u017eevati dovolj enostavno.<\/p>\n<p><b>MM:<\/b> \u2013 \u010ce vas zanima, \u00bbClickhouse\u00ab uporablja tako imenovano knji\u017enico zgodovine. Ta je lo\u010dena \u2013 gre za kopijo podpore \u00bbElastiksa\u00ab, torej je konfiguracijsko prilagodljiva. Polling spremeni samo pollerje. Menimo, da bo to dolgo delovalo.<\/p>\n<p><b>O:<\/b> \u2013 Hvala lepa. Lahko poveste, ali obstaja kak\u0161na dokumentacija o vnesenih spremembah?<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maksim \u010cernecov (Interes\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS na enem stre\u017eniku\" src=\"\/wp-content\/uploads\/2020\/02\/f3842ba578f736721c96794941b8f071.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Dokumentacija je patch. O\u010ditno, z uvedbo \u00bbClickhouse\u00ab, z uvedbo novih vrst pollerjev nastajajo nove konfiguracijske mo\u017enosti. Na povezavi iz zadnjega diapozitiva je kratka razlaga, kako to uporabljati.<\/p>\n<h3>O zamenjavi fping z nmap<\/h3>\n<p>\n<b>O:<\/b> \u2013 Kako ste to uresni\u010dili? Lahko podate konkretne primere: imate strapperje in zunanji skript? Kaj na koncu tako hitro preverja tako ogromno \u0161tevilo gostiteljev? Kako pridobivate te gostitelje? Treba je nmapu nekako podati, pridobiti od nekod, shraniti, nekaj zagnati?..<\/p>\n<p><b>MM:<\/b> \u2013 Super. Zelo pravi\u010dno vpra\u0161anje! Osnovna ideja je taka. Spremembili smo knji\u017enico (ICMP ping, del \u00bbZabbix\u00ab) za ICMP preverjanja, kjer je \u0161tevilo paketov \u2013 enota (1), koda pa posku\u0161a uporabiti nmap. To pomeni notranje delovanje \u00bbZabbix\u00ab, postalo je notranje delo pingerja. Tako ni potrebna nobena sinhronizacija ali uporaba trapperja. To je bilo narejeno namenoma, da obdr\u017eimo sistem celovit in se ne ukvarjamo s sinhronizacijo dveh sistemov baz: kaj preverjati, nalivati preko pollerja, ali se nam je nalivanje pokvarilo?.. To je veliko preprosteje.<\/p>\n<p><b>O:<\/b> \u2013 Ali to deluje tudi za proxy?<\/p>\n<p><b>MM:<\/b> \u2013 Da, a nismo tega preverjali. Koda pollinga je enotna v \u00bbZabbix\u00ab in na stre\u017eniku. Mora delovati. \u0160e enkrat poudarjam: zmogljivost sistema je taka, da proxy ni potreben.<\/p>\n<p><b>M\u010c:<\/b> \u2013 Pravi odgovor na vpra\u0161anje je: \u00bbZakaj potrebujete proxy pri tak\u0161nem sistemu?\u00ab Le zaradi NAT-a ali za spremljanje preko po\u010dasne povezave...<\/p>\n<p><b>O:<\/b> \u2013 Ali vi uporabljate \u00bbZabbix\u00ab kot alarm, \u010de sem prav razumel. Ali so grafi (kjer je arhivska plast) od\u0161li v drug sistem, kot je Grafana? Ali ne uporabljate te funkcionalnosti?<\/p>\n<p><b>MM:<\/b> \u2013 Ponovno nagla\u0161avam: napravili smo potpunu integraciju. Prebacujemo history u \u201eClickHouse\u201c, ali smo promenili php frontend. Php frontend se povezuje s \u201eClickHouse\u201c i sve grafikone pravi odatle. Istovremeno, ako budem iskren, imamo deo koji gradi s istog \u201eClickHouse\u201c, iz istih podataka \u201eZabbixa\u201c podatke u drugim sistemima za grafi\u010dko prikazivanje.<\/p>\n<p><b>M\u010c:<\/b> \u2013 U \u201eGrafani\u201c tako\u0111e.<\/p>\n<h3>Kako je doneta odluka o dodeli resursa?<\/h3>\n<p>\n<b>O:<\/b> \u2013 Podelite malo unutra\u0161nju kuhinju. Kako je doneta odluka da se izdvoje resursi za ozbiljnu preradu proizvoda? Ovo su, u su\u0161tini, odre\u0111eni rizici. I recite, molim vas, u kontekstu toga da nameravate da podr\u017eavate nove verzije: kako se ova odluka opravdava sa stanovi\u0161ta upravljanja?<\/p>\n<p><b>MM:<\/b> \u2013 O\u010digledno, dramu pri\u010de nismo dobro ispri\u010dali. Na\u0161li smo se u situaciji kada je ne\u0161to trebalo da se uradi, i krenuli smo su\u0161tinski sa dve paralelne ekipe:<\/p>\n<ul>\n<li>Jedna se bavila pokretanjem sistema pra\u0107enja na novim metodama: pra\u0107enje kao usluga, standardni set otvorenih re\u0161enja, koje kombinujemo i zatim poku\u0161avamo da promenimo poslovni proces kako bismo radili s novim sistemom pra\u0107enja.<\/li>\n<li>Paralelno je postojala entuzijasta-programer koji se time bavio (o sebi). Tako se dogodilo da je pobedio.<\/li>\n<\/ul>\n<p>\n<b>O:<\/b> \u2013 Kolika je veli\u010dina tima?<\/p>\n<p><b>M\u010c:<\/b> \u2013 On je pred vama.<\/p>\n<p><b>O:<\/b> \u2013 Zna\u010di, kao uvek je potreban pasionar?<\/p>\n<p><b>MM:<\/b> \u2013 Ne znam \u0161ta je pasionar.<\/p>\n<p><b>O:<\/b> \u2013 U ovom slu\u010daju, o\u010digledno, vi. Hvala vam puno, vi ste sjajni.<\/p>\n<p><b>MM:<\/b> \u2013 Hvala.<\/p>\n<h3>O patc\u030cevima za Zabbix<\/h3>\n<p>\n<b>O:<\/b> \u2013 Za sistem koji koristi proksi (na primer, u nekim distribuiranim sistemima), da li je va\u0161e re\u0161enje mogu\u0107e prilagoditi i patchovati, recimo, pollere, proksi i delimi\u010dno preprocesor samog \u201eZabbixa\u201c; i njihovu interakciju? Da li je mogu\u0107e optimizovati postoje\u0107e radove za sistem sa vi\u0161e proksija?<\/p>\n<p><b>MM:<\/b> \u2013 Znam da se \u201eZabbix\u201c server sastavlja pomo\u0107u proksija (kompajlira se i dobija kod). Nismo to testirali u produkciji. Nisam siguran u to, ali mislim da se preprocesor-menad\u017eer ne koristi u proksiju. Zadatak proksija je da uzme skup metrika iz \u201eZabbixa\u201c, spoli ih (on tako\u0111e bele\u017ei konfiguraciju, lokalnu bazu) i vrati nazad \u201eZabbix\u201c serveru. Preprocesiranje \u0107e kasnije uraditi sam server kada ga dobije.<\/p>\n<p>Zanimivost do proxijev je razumljiva. To bomo preverili. To je zanimiva tema.<\/p>\n<p><b>O:<\/b> \u2013 Ideja je bila taka: \u010de je mogo\u010de popravljati pollerje, jih je mogo\u010de popravljati za proxije in prilagoditi interakcijo s stre\u017enikom, predprocesor pa naj se za te namene prilagodi le na stre\u017eniku.<\/p>\n<p><b>MM:<\/b> \u2013 Mislim, da je vse \u0161e bolj preprosto. Vzamete kode, nanesete popravke, nato konfigurirate, kot vam ustreza \u2013 zgradite proxije (na primer z ODBC) in popravljen kodo raz\u0161irite po sistemih. Kjer je potrebno, zgradite proxije, kjer je potrebno \u2013 stre\u017enik.<\/p>\n<p><b>O:<\/b> \u2013 Dodatno verjetno ne bo potrebno popravljati prenosa proxijev na stre\u017enik?<\/p>\n<p><b>M\u010c:<\/b> \u2013 Ne, ta je standardna.<\/p>\n<p><b>MM:<\/b> \u2013 V resnici ni bila izre\u010dena ena izmed idej. Vedno smo ohranjali ravnote\u017eje med mno\u017eico idej in \u0161tevilom sprememb ter enostavno vzdr\u017eevanje.<\/p>\n<p><center><div class=\"youtube-placeholder\" data-id=\"3yRt9jSwrlg\" onclick=\"loadVideo(this)\">\r\n        <img decoding=\"async\" src=\"https:\/\/img.youtube.com\/vi\/3yRt9jSwrlg\/hqdefault.jpg\" alt=\"Predvajaj video\" loading=\"lazy\" width=\"480\" height=\"360\" style=\"width:100%;height:auto;\">\r\n        <div class=\"play-button\"><\/div>\r\n    <\/div><\/center><\/p>\n<h3>Malo reklame \ud83d\ude42<\/h3>\n<p>\nHvala \u0161to ostajete s nama. Da li vam se svi\u0111aju na\u0161i \u010dlanci? \u017delite li videti vi\u0161e zanimljivih materijala? Podr\u017eite nas tako \u0161to \u0107ete naru\u010diti ili preporu\u010diti prijateljima, <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">obla\u010dni VPS za programere od $4.99<\/a><\/noindex>, <b>jedinstveni ekvivalent entry-level servera koji smo stvorili za vas:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Sve \u0161to treba da znate o VPS (KVM) E5-2697 v3 (6 jezgara) 10GB DDR4 480GB SSD 1Gbps od $19 ili kako pravilno deliti server?<\/a><\/noindex> (options available with RAID1 and RAID10, up to 24 cores and up to 40GB DDR4).<\/p>\n<p><b>Dell R730xd je dvostruko jeftiniji u Equinix Tier IV data centru u Amsterdamu?<\/b> Only with us <b><noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/serversnl\">2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100TB from $199<\/a><\/noindex> in the Netherlands! <b>Dell R420 \u2014 2x E5-2430 2.2GHz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 from $99!<\/b><\/b> Read about how <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">to build a corporate-class infrastructure using Dell R730xd E5-2650 v4 servers costing 9000 euros for pennies?<\/a><\/noindex><br \/>\n<br \/>Izvor: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ua-hosting\/blog\/486540\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f HighLoad++ \u043f\u0440\u043e\u0439\u0434\u0435\u0442 6 \u0438 7 \u0430\u043f\u0440\u0435\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0438\u043b\u0435\u0442\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435. HighLoad++ Moscow 2018. \u0417\u0430\u043b \u00ab\u041c\u043e\u0441\u043a\u0432\u0430\u00bb. 9 \u043d\u043e\u044f\u0431\u0440\u044f, 15:00. \u0422\u0435\u0437\u0438\u0441\u044b \u0438 \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u044f. * \u041c\u043e\u043d\u0438\u0442\u043e\u0440\u0438\u043d\u0433 \u2014 \u043e\u043d\u043b\u0430\u0439\u043d \u0438 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0430. * \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u0438\u044f \u043f\u043b\u0430\u0442\u0444\u043e\u0440\u043c\u044b ZABBIX. * \u0420\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u043c\u0430\u0441\u0448\u0442\u0430\u0431\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0445\u0440\u0430\u043d\u0438\u043b\u0438\u0449\u0430 \u0430\u043d\u0430\u043b\u0438\u0442\u0438\u043a\u0438. * \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u0435\u0440\u0432\u0435\u0440\u0430 ZABBIX. * \u041e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f UI. * \u041e\u043f\u044b\u0442 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-56049","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f HighLoad++ \u043f\u0440\u043e\u0439\u0434\u0435\u0442 6 \u0438 7 \u0430\u043f\u0440\u0435\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0438\u043b\u0435\u0442\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.\" \/>\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\/sl\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sl_SI\" \/>\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\udd47HighLoad++, \u041c\u0438\u0445\u0430\u0438\u043b \u041c\u0430\u043a\u0443\u0440\u043e\u0432, \u041c\u0430\u043a\u0441\u0438\u043c \u0427\u0435\u0440\u043d\u0435\u0446\u043e\u0432 (\u0418\u043d\u0442\u0435\u0440\u0441\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f HighLoad++ \u043f\u0440\u043e\u0439\u0434\u0435\u0442 6 \u0438 7 \u0430\u043f\u0440\u0435\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0438\u043b\u0435\u0442\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-03T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:04:13+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\udd47HighLoad++, Miha Makurov, Maksim \u010cernecov (Intersvyaz): Zabbix, 100kNVPS na enem stre\u017eniku | ProHoster","description":"Naslednja konferenca HighLoad++ bo potekala 6. in 7. aprila 2020 v Sankt Peterburgu. Podrobnosti in vstopnice na povezavi.","canonical_url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sl_SI","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\udd47HighLoad++, \u041c\u0438\u0445\u0430\u0438\u043b \u041c\u0430\u043a\u0443\u0440\u043e\u0432, \u041c\u0430\u043a\u0441\u0438\u043c \u0427\u0435\u0440\u043d\u0435\u0446\u043e\u0432 (\u0418\u043d\u0442\u0435\u0440\u0441\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS \u043d\u0430 \u043e\u0434\u043d\u043e\u043c \u0441\u0435\u0440\u0432\u0435\u0440\u0435 | ProHoster","og:description":"\u0421\u043b\u0435\u0434\u0443\u044e\u0449\u0430\u044f \u043a\u043e\u043d\u0444\u0435\u0440\u0435\u043d\u0446\u0438\u044f HighLoad++ \u043f\u0440\u043e\u0439\u0434\u0435\u0442 6 \u0438 7 \u0430\u043f\u0440\u0435\u043b\u044f 2020 \u0433\u043e\u0434\u0430 \u0432 \u0421\u0430\u043d\u043a\u0442-\u041f\u0435\u0442\u0435\u0440\u0431\u0443\u0440\u0433\u0435 \u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438 \u0438 \u0431\u0438\u043b\u0435\u0442\u044b \u043f\u043e \u0441\u0441\u044b\u043b\u043a\u0435.","og:url":"https:\/\/prohoster.info\/sl\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-03T21:00:00+00:00","article:modified_time":"2020-02-18T11:04:13+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"56049","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:31:44","updated":"2022-09-30 17:33:39","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/56049","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/comments?post=56049"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/posts\/56049\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/media?parent=56049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/categories?post=56049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sl\/wp-json\/wp\/v2\/tags?post=56049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}