{"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\/et\/blog\/administrirovanie\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere","title":{"rendered":"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>J\u00e4rgmine HighLoad++ konverents toimub 6. ja 7. aprillil 2020 Peterburis. \u00dcksikasjad ja piletid. <noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/2sSxgBx\">lingi kaudu<\/a><\/noindex>. HighLoad++ Moskva 2018. Saal \u00abMoskva\u00bb. 9. november, 15:00. Teesid ja <noindex><a rel=\"nofollow\" href=\"http:\/\/www.highload.ru\/moscow\/2018\/abstracts\/4141\">esitlus<\/a><\/noindex>.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/5c3e11c8449de7375d30b2cd75b5927e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n* J\u00e4lgimine \u2014 online ja anal\u00fc\u00fcs.<br \/>\n* ZABBIX platvormi peamised piirangud.<br \/>\n* Lahendus anal\u00fc\u00fcsihoiustamise skaleerimiseks.<br \/>\n* ZABBIX serveri optimeerimine.<br \/>\n* UI optimeerimine.<br \/>\n* S\u00fcsteemi kasutamise kogemus \u00fcle 40k NVPS koormuste juures.<br \/>\n* L\u00fchidalt j\u00e4reldused.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Mihhail Makurov (edaspidi \u2013 MM):<\/b> \u2013 Tere k\u00f5igile!<\/p>\n<p><b>Maksim T\u0161ernecov (edaspidi \u2013 MT):<\/b> \u2013 Tere p\u00e4evast!<\/p>\n<p><b>MM:<\/b> \u2013 Lubage mul esitleda Maksi. Maks on andekas insener, parim v\u00f5rgutegija, keda ma tean. Maksim tegeleb v\u00f5rkude ja teenustega, nende arendamise ja kasutamisega.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/a7fc62a03c0aede46f4a4695845daa22.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MT:<\/b> \u2013 Ja mina sooviksin r\u00e4\u00e4kida Mihhailist. Mihhail on C programmeerija. Ta on kirjutanud mitmeid v\u00e4ga koormatud lahendusi meie ettev\u00f5tte liikluse t\u00f6\u00f6tlemiseks. Me elame ja t\u00f6\u00f6tame Uuralites, karmide meestega Chelyabinskis, ettev\u00f5ttes \u00abIntersvyaz\u00bb. Meie ettev\u00f5te on interneti- ja kaabeltelevisiooniteenuste pakkuja miljonile inimesele 16 linnas.<\/p>\n<p><b>MM:<\/b> \u2013 Ja tuleb \u00f6elda, et \u00abIntersvyaz\u00bb on palju enamat kui lihtsalt teenusepakkuja, see on IT-ettev\u00f5te. Enamik meie lahendustest on loodud meie IT-osakonna poolt.<\/p>\n<p><b>A:<\/b> serveritest, mis t\u00f6\u00f6tlevad liiklust, kuni k\u00f5nekeskkonna ja mobiilirakenduse. IT-osakonnas on praegu umbes 80 inimest, kellel on v\u00e4ga erinevad oskused.<\/p>\n<h3>Zabbixist ja selle arhitektuurist<\/h3>\n<p>\n<b>MT:<\/b> \u2013 Ja n\u00fc\u00fcd p\u00fc\u00fcan ma seada isiklikku rekordit ja \u00fche minutiga \u00f6elda, mis asi on Zabbix (edaspidi \u2013 \u00abZabbix\u00bb).<\/p>\n<p>\u00abZabbix\u00bb positsioneerib end ettev\u00f5tte tasemel monitoorimiss\u00fcsteemina \u201ekarbist v\u00e4lja\u201c. Sellel on palju elu lihtsustavaid funktsioone: arenenud eskaleerimisreeglid, API integratsiooniks, hostide ja m\u00f5\u00f5dikute r\u00fchmitamine ja automaatne avastamine. \u00abZabbixis\u00bb on nii \u00f6elda skaleerimisvahendid \u2013 proksi. \u00abZabbix\u00bb on avatud l\u00e4htekoodiga s\u00fcsteem.<\/p>\n<p>L\u00fchidalt arhitektuurist. V\u00f5ib \u00f6elda, et see koosneb kolmest komponendist:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/0d2ae3ee04d00885d65e17b8cf44182b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<ul>\n<li>Server. Kirjutatud C-s. Piisavalt keeruka andmet\u00f6\u00f6tluse ja edastamisega voogude vahel. Kogu t\u00f6\u00f6tlemine toimub seal: andmete vastuv\u00f5tmisest kuni andmebaasi salvestamiseni.<\/li>\n<li>K\u00f5ik andmed salvestatakse andmebaasi. \u00abZabbix\u00bb toetab MySQL, PostgreSQL ja Oracle.<\/li>\n<li>Veebiliides on kirjutatud PHP-s. Enamikus s\u00fcsteemides kaasneb Apache serveriga, kuid t\u00f6\u00f6tab t\u00f5husamalt koos nginx + php-ga.<\/li>\n<\/ul>\n<p>\nT\u00e4na soovime jagada \u00fche loo meie ettev\u00f5tte elust, mis seondub 'Zabbixiga'...<\/p>\n<h3>Lugu ettev\u00f5tte 'Intersvyaz' elust. Mida me omame ja mida on vaja?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/407c35b81995ddca6444fa418941063f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>5 v\u00f5i 6 kuud tagasi. \u00dchel \u00f5htul p\u00e4rast t\u00f6\u00f6d...<\/i><\/p>\n<p><b>MT:<\/b> \u2013 Misha, tere! Hea meel, et suutsin sind kinni p\u00fc\u00fcda \u2013 mul on jutt. Meil olid taas probleemid j\u00e4lgimisega. Suure \u00f5nnetuse ajal k\u00f5ik seisis ja ega mingit teavet v\u00f5rgu seisundi kohta polnud. Kahjuks kordub see juba mitte esmakordselt. Mul on sinu abi vaja. Teeme nii, et meie j\u00e4lgimine toimiks igas olukorras!<\/p>\n<p><b>MM:<\/b> \u2013 Aga alustame esmalt s\u00fcnkroonimist. Ma pole sinna juba paar aastat vaadanud. Kui ma \u00f5igesti m\u00e4letan, siis loobusime Nagiosest ja l\u00e4ksime 8 aastat tagasi 'Zabbixile'. Ja praegu tundub, et meil on 6 v\u00f5imsat serverit ja umbes tosin proksi. Ma ei aja asju segamini, eks?<\/p>\n<p><b>MT:<\/b> \u2013 Peaaegu. 15 serverit, millest osa on virtuaalmasinad. K\u00f5ige olulisem on see, et see ei p\u00e4\u00e4sta meid siis, kui seda k\u00f5ige rohkem vajame. Nagu avarii - serverid hakkavad aeglustuma ja mitte midagi ei ole n\u00e4ha. Proovisime konfiguratsiooni optimeerida, kuid see ei toonud soovitud j\u00f5udlust.<\/p>\n<p><b>MM:<\/b> \u2013 Selge. Kas midagi uurisite, midagi olete diagnostikast leidnud?<\/p>\n<p><b>MT:<\/b> \u2013 Esimene asi, millega tegelema peame, on just andmebaas. MySQL on niigi pidevalt koormatud, salvestades uusi m\u00f5\u00f5dikuid, ja kui \"Zabbix\" hakkab genereerima hulgaliselt s\u00fcndmusi, siis andmebaas kukub endasse s\u00f5na otseses m\u00f5ttes mitmeks tunniks. Konfiguratsiooni optimeerimise kohta olen sulle juba r\u00e4\u00e4kinud, aga just sel aastal uuendasime riistvara: serverites on \u00fcle saja giga m\u00e4lu ja SSD RAID-iga diskimassiivid - edaspidi ei ole m\u00f5tet seda lineaarselt kasvatada. Mida teeme?<\/p>\n<p><b>MM:<\/b> \u2013 Selge. \u00dcldiselt, MySQL on LTP-andmebaas. Tundub, et see ei sobi enam meie m\u00f5\u00f5dikute arhiivi salvestamiseks. Hakkame asja uurima.<\/p>\n<p><b>MT:<\/b> \u2013 Hakkame!<\/p>\n<h3>Zabbixi ja Clickhouse'i integreerimine hackathon'i tulemusena<\/h3>\n<p>\nM\u00f5ne aja p\u00e4rast saime huvitavaid andmeid:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/46899e843b1e89524c6d762c1c167a6c.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEnamik ruumi meie andmebaasis oli h\u00f5ivatud m\u00f5\u00f5dikute arhiiviga ja v\u00e4hem kui 1% kasutati konfiguratsiooni, mallide ja seadistuste jaoks. Sel hetkel olime juba \u00fcle aasta t\u00f6\u00f6tanud Big Data lahenduse kallal, mis p\u00f5hines Clickhouse'il. Meie tegevussuund oli selge. Meie kevadisel \"Hackathonil\" kirjutasin integratsiooni \"Zabbix\" ja \"Clickhouse\" vahel serveri ja esiosa jaoks. Toona toetati \"Zabbixis\" juba ElasticSearch'i, ja me otsustasime neid v\u00f5rrelda.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/92fa3da527de48102cbdcf6959d46814.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Clickhouse'i ja Elasticsearch'i v\u00f5rdlus<\/h3>\n<p>\n<b>MM:<\/b> \u2013 V\u00f5rdluseks genereerisime koormust, mis oli sama, mida tagas \"Zabbix\"-server, ja vaatasime, kuidas s\u00fcsteemid k\u00e4ituvad. Kirjutasime andmeid partiidesse 1000 rida, kasutasime CURL-i. Me oletame ette, et \"Clickhouse\" on selle koormusprofiili jaoks, mida \"Zabbix\" loob, t\u00f5husam. Tulemused \u00fcletasid isegi meie ootusi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/354be7147b23a0bcb9ada3af93f59fac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSamades tingimustes testides kirjutas \"Clickhouse\" kolm korda rohkem andmeid. Samas kasutasid m\u00f5lemad s\u00fcsteemid andmete lugemisel v\u00e4ga efektiivselt (v\u00e4hem ressursse). Kuid \"Elasticsearch\" vajab kirjutamisel suurt hulka protsessori ressursse:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/fea7f7f7801024cee0f9367c49d81d5b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKokkuv\u00f5ttes \u00fcletas ClickHouse oluliselt Elastixi protsessori ja kiirusn\u00f5udeid. Samuti, andmete kokkusurumise t\u00f5ttu kasutab ClickHouse k\u00f5vakettal 11 korda v\u00e4hem ruumi ja teostab umbes 30 korda v\u00e4hem k\u00f5vakettatehteid.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/50c24c4615ed350d7d78ec8655423409.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MT:<\/b> \u2013 Jah, ClickHouse'i t\u00f6\u00f6korraldus k\u00f5vakettas\u00fcsteemiga on v\u00e4ga efektiivne. Selle alla saab kasutada suuri SATA-kettasid ja saavutada kirjutamiskiirus sadu tuhandeid ridu sekundis. S\u00fcsteem toetab \"kastist v\u00e4lja\" jagamist, replikatsiooni ja on seadistamisel v\u00e4ga lihtne. Oleme oma aasta jooksul selle kasutamisega rohkem kui rahul.<\/p>\n<p>Resursside optimeerimiseks on v\u00f5imalik paigaldada ClickHouse olemasoleva peamise andmebaasi k\u00f5rvale, s\u00e4ilitades sellega tohutult protsessoriv\u00f5imet ja k\u00f5vakettatehteid. Oleme arhiiveeritud m\u00f5\u00f5dikud olemasolevatesse ClickHouse klastritesse.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/4cf44eae47a13f2fc50377fec884ecc8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nOleme peamise MySQL-andmebaasi nii palju koormanud, et saime selle \u00fchendada \u00fchel masinal Zabbix-serveriga ja loobuda eraldatud serverist MySQL jaoks.<\/p>\n<h3>Kuidas polling Zabbix'is t\u00f6\u00f6tab?<\/h3>\n<p>\n<i>4 kuud tagasi<\/i><\/p>\n<p><b>MM:<\/b> \u2013 Noh, kas andmebaasi probleemidest v\u00f5ib juba unustada?<\/p>\n<p><b>MT:<\/b> \u2013 See, that's right! Another issue we need to tackle is the slow data collection. Now all our 15 proxy servers are overloaded with SNMP and polling processes. And there's no choice but to keep adding new servers.<\/p>\n<p><b>MM:<\/b> \u2013 Great. But first, tell me how polling works in 'Zabbix'?<\/p>\n<p><b>MT:<\/b> \u2013 To put it briefly, there are 20 types of metrics and a dozen ways to gather them. 'Zabbix' can collect data either in a 'request-response' mode or wait for new data via the 'Trapper Interface'.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/cb2d974ee113b4147a4a588c1f35c730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nIt's worth noting that in the original 'Zabbix', this method (Trapper) is the fastest. <\/p>\n<p>There are proxy servers for load distribution:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/7b5c94a82b7e06aff6df6ea5549babdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProxies can perform the same collection functions as the 'Zabbix' server, receiving tasks from it and sending collected metrics through the Trapper interface. This is the officially recommended method for load distribution. Proxies are also useful for monitoring remote infrastructure operating through NAT or a slow connection:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/dbfb2777f9dd9b4adb81f1fa89f3bdd5.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 The architecture is clear. We need to look at the source code\u2026<\/p>\n<p><i>A couple of days later<\/i><\/p>\n<h3>The tale of how nmap fping triumphed<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Looks like I've dug something up.<\/p>\n<p><b>MT:<\/b> \u2013 Spill the beans!<\/p>\n<p><b>MM:<\/b> \u2013 Olen avastanud, et \u00abZabbix\u00bb kontrollib kergesti juurdep\u00e4\u00e4setavust korraga maksimaalselt 128 hosti. Proovisin seda arvu t\u00f5sta 500-ni ja eemaldasin nende pingist vahepkgendi, mis kahekordistas j\u00f5udlust. Aga tahaksin veelgi suuremaid numbreid.<\/p>\n<p><b>MT:<\/b> \u2013 Oma praktikas pean vahel kontrollima tuhandete hostide juurdep\u00e4\u00e4setavust ning ma pole leidnud midagi kiiremat kui nmap. Olen kindel, et see on k\u00f5ige kiirem viis. Proovime seda! Peame oluliselt suurendama hostide arvu \u00fche iteratsiooni jooksul.<\/p>\n<p><b>MM:<\/b> \u2013 Kontrollida \u00fcle viiesaja? 600?<\/p>\n<p><b>MT:<\/b> \u2013 V\u00e4hemalt paar tuhat.<\/p>\n<p><b>MM:<\/b> \u2013 Okei. K\u00f5ige olulisem, mida tahtsin \u00f6elda: olen leidnud, et enamus pollingust \u00abZabbixis\u00bb on tehtud s\u00fcnkroonselt. Peame kindlasti selle as\u00fcnkroonsesse re\u017eiimi \u00fcmber tegema. Siis suudame oluliselt suurendada j\u00e4lgijate kogutud m\u00f5\u00f5dikute arvu, eriti kui me kasume m\u00f5\u00f5dikute arvu \u00fche iteratsiooni jooksul.<\/p>\n<p><b>MT:<\/b> \u2013 Lahe! Ja millal?<\/p>\n<p><b>MM:<\/b> \u2013 Nagu tavaliselt, eile.<\/p>\n<p><b>MT:<\/b> \u2013 V\u00f5rdlesime m\u00f5lemaid versioone fping ja nmap:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/4be4cfe019b6b318ae2fbdbf82577111.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPaljude hostide puhul oli nmap oodatult kuni viis korda efektiivsem. Kuna nmap kontrollib ainult ligip\u00e4\u00e4setavust ja reageerimisaega, oleme kaotuste arvestuse lisanud k\u00e4ivitustele ning oluliselt l\u00fchendanud ligip\u00e4\u00e4setavuse kontrollimise vahemaid. Nmapi optimaalseks hostide arvuks \u00fches iteratsioonis leidsime umbes 4000. Nmap v\u00f5imaldas meil kolm korda v\u00e4hendada CPU kulu ligip\u00e4\u00e4setavuse testimisele ning l\u00fchendada intervalli 120 sekundilt 10 sekundile.<\/p>\n<h3>Pollimise optimeerimine<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Seej\u00e4rel tegelesime pollijatega. Eelk\u00f5ige oli meid huvitanud SNMP ja agentide kaaperdamine. \"Zabbixis\" on pollimine tehtud s\u00fcnkroonselt ja on v\u00f5etud erilisi meetmeid, et suurendada s\u00fcsteemi efektiivsust. S\u00fcnkroonses re\u017eiimis p\u00f5hjustab hostide puudumine oluliseks pollimise halvenemise. On olemas terve hulk olekute s\u00fcsteeme ja spetsiaalsed protsessid - nn unreachable-pollijad, mis t\u00f6\u00f6tavad ainult puuduvate hostidega:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/6a001eff121f2392fffda69d719ebad6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee on kommentaar, mis demonstreerib olekute maatriksit, kogu s\u00fcsteemi \u00fcleminekute keerukust, mis on vajalik efektiivsuse s\u00e4ilitamiseks. Lisaks on s\u00fcnkroonne pollimine iseenesest piisavalt aeglane:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/3579a4a3de85c37f812ba2ca71cf4b3d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeet\u00f5ttu ei suutnud tuhanded pollerite vood k\u00fcmne proxiga meile vajalikku andmemahu kogumist sooritada. As\u00fcnkroonne teostus lahendas mitte ainult voogude arvu probleemid, vaid lihtsustas oluliselt ka mitteolemasolevate hostide olekus\u00fcsteemi, kuna \u00fches polling'i iteratsioonis kontrollitavate elementide arvust hoolimata oli maksimaalne ooteaeg 1 timeout:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/c5f2d9bb3e558f8bba6bd8a96d8ed6a6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLisaks modifitseerisime ja t\u00e4iendame SNMP-pollingu s\u00fcsteemi. Asi on selles, et enamus ei saa korraga mitmele SNMP-p\u00e4ringule vastata. Seet\u00f5ttu tegime h\u00fcbriidre\u017eiimi, kus sama hosti SNMP-polling toimub as\u00fcnkroonselt:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/eb61766e8afce9bf72d6e9757492559e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee toimub kogu hostide r\u00fchma jaoks. Selline re\u017eiim ei ole l\u00f5puks aeglasem kui t\u00e4iesti as\u00fcnkroonne, kuna poolesaja SNMP-v\u00e4\u00e4rtuse k\u00fcsimine on ikkagi palju kiirem kui 1 timeout.<\/p>\n<p>Meie katsed n\u00e4itasid, et optimaalne p\u00e4ringute arv \u00fches iteratsioonis on umbes 8000 SNMP-pollingu puhul. Kokkuv\u00f5ttes v\u00f5imaldas \u00fcleminek as\u00fcnkroonsesse re\u017eiimi kiirusel enerji 200 korda, m\u00f5nesaja korra v\u00f5rra.<\/p>\n<p><b>MT:<\/b> \u2013 Saadud optimeerimised pingetulemused n\u00e4itavad, et me saame mitte ainult k\u00f5rvaldada k\u00f5ik proksid, vaid ka v\u00e4hendada paljude kontrollide intervalle, ning proksid ei ole enam vajalikud koormuse jaotamiseks.<\/p>\n<p><i>Umbes kolm kuud tagasi<\/i><\/p>\n<h3>Muuda arhitektuuri \u2013 suurenda koormust!<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Niisiis, Max, kas oleme valmistunud tootmisse minema? Mul on vaja v\u00f5imsat serverit ja head inseneri.<\/p>\n<p><b>MT:<\/b> \u2013 H\u00e4sti, plaanime. On aeg liikuda edasi 5000 m\u00f5\u00f5tmise sekundisse.<\/p>\n<p><i>Hommik p\u00e4rast uuendust<\/i><\/p>\n<p><b>MT:<\/b> \u2013 Misha, me v\u00e4rskendasime, kuid hommikuks oli k\u00f5ik tagasi... Arva, millise kiiruseni me j\u00f5udsime?<\/p>\n<p><b>MM:<\/b> \u2013 Umbes 20 tuhat maksimaalselt.<\/p>\n<p><b>MT:<\/b> \u2013 Aha, 25! Kahjuks oleme seal, kus alustasime.<\/p>\n<p><b>MM:<\/b> \u2013 Miks see nii on? Kas tehti mingi diagnostika?<\/p>\n<p><b>MT:<\/b> \u2013 Jah, loomulikult! Vaata, n\u00e4iteks huvitav top:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/09ac3336a820977b643ee5328ad2a851.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Vaata, kui palju proovitud pingevooge on:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/346e8047f1f6f2bb1b1dd91a728e437b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKuid me ei suutnud isegi s\u00fcsteemi poolestki kasutada:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/be1843dbec0fb10d8da59e8c570adc5b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa kogutootlikkus on \u00fcsna madal, umbes 4000 m\u00f5\u00f5tmist sekundis:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/02eaf0b56629ebc6d3d5c132374a91b8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKas on veel midagi?<\/p>\n<p><b>MT:<\/b> \u2013 Jah, \u00fche polleri strace:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/73fc58bd2925859f6fbbcd118a0483c0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Siit on selgelt n\u00e4ha, et pinget\u00f6\u00f6tlus ootab 'semaforeid'. Need on blokeeringud:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/d0bec44a9677ec111066dccc1dd8c5dc.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MT:<\/b> \u2013 Ei saa aru.<\/p>\n<p><b>MM:<\/b> \u2013 Vaata, see tundub nagu olukord, kus hulk l\u00f5ime p\u00fc\u00fcab t\u00f6\u00f6tada ressursiga, millega saab samal ajal t\u00f6\u00f6tada ainult \u00fcks. Niisiis, k\u00f5ik, mida nad saavad teha, on jagada seda ressursi ajaliselt:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/7dbb9e8941b01b666dd48f6301151ec9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa sellise ressursi kogutootlikkus on piiratud \u00fche tuuma kiirusena:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/e00b197577f4ea7350fe56665dbae299.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee probleem on v\u00f5imalik lahendada kahel viisil.<\/p>\n<p>Uuendage masina riistvara, liikudes kiirematele tuumadele:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/296d84b434ed7277fb558a8a4dd5ac47.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5i muutke arhitektuuri ja samal ajal \u2013 koormust:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/efea73106440db4e5eda5aa475dd088b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MT:<\/b> \u2013 Muide, testmasinas kasutame v\u00e4hem tuumasid kui tootmismasinas, kuid need on tuumade sageduses 1,5 korda kiirem!<\/p>\n<p><b>MM:<\/b> \u2013 Selge? Peame vaatama serveri koodi.<\/p>\n<h3>Andmete teekond Zabbix-serveris<\/h3>\n<p>\n<b>MT:<\/b> \u2013 Arusaamiseks hakkasime anal\u00fc\u00fcsima, kuidas andmed edastatakse \u00abZabbix\u00bb-serveris:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/b3d84e3fcb12e7afe3c974bdeacc357a.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nLahe pilt, eks? K\u00e4ime selle \u00fcle samm-sammult, et enam-v\u00e4hem selgeks saada. On l\u00f5ime ja teenuseid, mis on vastutavad andmete kogumise eest:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/966db6fa84723d4d3bde8a23736294d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKogutud m\u00f5\u00f5dikud edastatakse nad soketi kaudu Preprocessor managerisse, kus need salvestatakse j\u00e4rjekorda:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/1e34fe2c4194f7bd71ec409d6169fb94.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPreprotsessorihaldur edastab andmed oma t\u00f6\u00f6tlejatele, kes t\u00e4idavad eelt\u00f6\u00f6tlusjuhiseid ja saadavad need tagasi l\u00e4bi sama pesa:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/d647caf3886f0c9378a32314e812edc1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nP\u00e4rast seda salvestab preprotsessorihaldur need ajaloo vahem\u00e4llu:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/ff0e29b0d974d76bd3a3b71d36a1cc68.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSealt v\u00f5tavad need andmed ajaloo s\u00fcnkroniseerijad, mis t\u00e4idavad \u00fcsna palju funktsioone: n\u00e4iteks triggerite arvutamine, v\u00e4\u00e4rtuste vahem\u00e4lu t\u00e4itmine ja mis k\u00f5ige t\u00e4htsam, m\u00f5\u00f5dikute salvestamine ajaloo hoidlas. \u00dches\u00f5naga, protsess on keeruline ja \u00fcsna segane.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/c418a17edeb9153a03dff233aa8f715e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Esimene asi, mida me n\u00e4gime, oli, et enamik vooge konkureerib nn \"konfiguratsiooni vahem\u00e4lu\" p\u00e4rast (m\u00e4lutsoon, kus s\u00e4ilitatakse k\u00f5ik serveri konfiguratsioonid). Eriti palju lukustusi teevad vood, mis vastutavad andmete lugemise eest:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/589d8f564ece6e63457450e9c5081b80.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n\u2026sest konfiguratsioonis s\u00e4ilitatakse mitte ainult m\u00f5\u00f5dikud nende parameetritega, vaid ka j\u00e4rjekorrad, millest pollerid v\u00f5tavad teavet selle kohta, mida nad peavad edasi tegema. Kui pollereid on palju ja \u00fcks lukustab konfiguratsiooni, peavad teised ootama p\u00e4ringute saama:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/8026cdfcd7def84cb3708b7255b08c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Pollerid ei tohi konfliktida<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/d436cd3415a6f58e1db5a609689c12b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeet\u00f5ttu jagasime j\u00e4rjekorra neljaks osaks ja lubasime polleritel samaaegselt need osad turvalistes tingimustes blokeerida:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/9466e5f0053dff583e76713f10e30a89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee k\u00f5rvaldas konkurentsi konfiguratsioonikese eest ning pollerite t\u00f6\u00f6kiirus kasvas m\u00e4rgatavalt. Kuid siis seisis meil silmitsi olukord, kus eelt\u00f6\u00f6tleja haldur hakkas j\u00e4rjekorde \u00fcles kuhjama:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/dd58e625823310fb0a818ed81abdceac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Eelt\u00f6\u00f6tleja haldur peab suutma seada prioriteete.<\/h3>\n<p>\nSee juhtus siis, kui tal oli j\u00f5udlusest puudu. Siis oli ainus, mida ta suudab teha, koguda andmekogumisprotsessidelt p\u00e4ringuid ja koguda neid puhvrit, kuni ta kasutas kogu m\u00e4luruumi ning kukkus kokku:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/b215d880863d470ea6ca960c6338b8ae.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle probleemi lahendamiseks lisasime teise pesa, mis oli eraldatud spetsiaalselt t\u00f6\u00f6protsesside jaoks:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/09d1bb92a009f9d29ba68d966de54210.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNii sai eelt\u00f6\u00f6tleja haldur v\u00f5imaluse seada oma t\u00f6\u00f6 prioriteedid ning puhvri kasvamisel v\u00e4hendada \u00fclesandeid, andes workeritele v\u00f5imaluse see puhver \u00e4ra v\u00f5tta:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/8f4db3661c428e6e6dcfe4cc0c44c016.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeej\u00e4rel avastasime, et \u00fcheks pidurdavaks teguriks olid t\u00f6\u00f6tajad ise, kuna nad konkureerisid t\u00e4iesti ebaolulise ressursi p\u00e4rast. Me lahendasime selle probleemi veaparandusega, ning uutes \"Zabbixi\" versioonides on see juba lahendatud:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/eedb359823dd23d369339e3735e341fb.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Suurendame pistikute arvu \u2013 saame tulemuse<\/h3>\n<p>\nJ\u00e4rgmine kitsaskoht oli eelprotsessori haldur, kuna see on \u00fcheks keeruline. See takerdus tuuma kiirusse, pakkudes maksimaalset kiirus umbes 70 tuhat m\u00f5\u00f5tmist sekundis:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/f93ccbc656c0f9e103873d99a9397495.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeega tegime nelja rakendusega nelja pistikut, t\u00f6\u00f6tajat:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/81a3dea3aa0f8807add8d045cf64a609.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa see v\u00f5imaldas kiirus suurendada umbes 130 tuhande m\u00f5\u00f5tmiseni:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/016ff07cd021a7221caef19e6ce36a9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMitte-lineaarne kasv on seletatav asjaoluga, et ajaloost tekkis konkurents. Selle nimel konkureeris neli eelprotsessori haldurit ja ajaloos\u00fcntilised. Selleks ajaks saime testmasinas umbes 130 tuhat m\u00f5\u00f5tmist sekundis, kasutades seda umbes 95% v\u00f5rra protsessorist:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/62162254cd8bc66c1cef697158691588.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>Umbes 2,5 kuud tagasi<\/i><\/p>\n<h3>SNMP-kogukonnast loobumine suurendas NVPsid pooleteise korra v\u00f5rra<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Max, mul on vaja uut testmasinat! Me ei mahu enam praegusesse.<\/p>\n<p><b>MT:<\/b> \u2013 Mis seal praegu on?<\/p>\n<p><b>MM:<\/b> \u2013 Praegu on \u2013 130k NVPs ja protsessor \"riiulil\".<\/p>\n<p><b>MT:<\/b> \u2013 Vau! Lahe! Oota, mul on kaks k\u00fcsimust. Minu arvutuste kohaselt on meie vajadus umbes 15-20 tuhat m\u00f5\u00f5tmist sekundis. Miks me vajame rohkem?<\/p>\n<p><b>MM:<\/b> \u2013 Tahaks asja l\u00f5puni viia. Tahaks teada, kui palju me suudame sellest s\u00fcsteemist v\u00e4lja pigistada.<\/p>\n<p><b>MT:<\/b> \u2013 Aga\u2026<\/p>\n<p><b>MM:<\/b> \u2013 Aga see on \u00e4ri jaoks kasutu.<\/p>\n<p><b>MT:<\/b> \u2013 Selge. Ja teine k\u00fcsimus: kas me saame selle, mis meil praegu on, iseseisvalt toetada, ilma arendaja abita?<\/p>\n<p><b>MM:<\/b> \u2013 Ma ei arva nii. Konfiguratsioonide vahem\u00e4luga t\u00f6\u00f6tamise muutmine on probleem. See puudutab enamikku vooge ja on piisavalt keeruline hooldada. T\u00f5en\u00e4oliselt on selle toetamine v\u00e4ga raske.<\/p>\n<p><b>MT:<\/b> \u2013 Siis vajame mingit alternatiivi.<\/p>\n<p><b>MM:<\/b> \u2013 On selline variant. Me saame \u00fcle minna kiiretele tuumadele, loobudes selle uue lukustuss\u00fcsteemi kasutamisest. Me saavutame ikkagi 60-80 tuhat m\u00f5\u00f5tmist. Samuti saame j\u00e4tta kogu \u00fclej\u00e4\u00e4nud koodi. 'ClickHouse', as\u00fcnkroonne polling t\u00f6\u00f6tavad. Ja seda on lihtne hooldada.<\/p>\n<p><b>MT:<\/b> \u2013 Suurep\u00e4rane! Pakun, et l\u00f5petame sellega.<\/p>\n<p>P\u00e4rast serverioptimeerimist saime l\u00f5puks k\u00e4ivitada uue koodi tootmises. Me loobusime osast muudatustest, et liikuda kiirete tuumadega masinale ja v\u00e4hendada koodimuudatuste arvu. Samuti lihtsustasime konfiguratsiooni ja v\u00f5imaluse korral loobusime makrodest andmeelementides, kuna need toovad kaasa t\u00e4iendavaid blokeeringuid.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/2b1ed396b09bd815fba973ebb5f73d76.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nN\u00e4iteks loobumine dokumentatsioonis ja n\u00e4idetes sageli esinevast makrost snmp-community kiirendas meie NVP-sid ligikaudu 1,5 korda.<\/p>\n<p><i>P\u00e4rast kahte p\u00e4eva tootmises<\/i><\/p>\n<h3>K\u00fcljest eemaldame s\u00fcndmuste ajaloovihked<\/h3>\n<p>\n<b>MT:<\/b> \u2013 Misha, me oleme kaks p\u00e4eva s\u00fcsteemi kasutanud ja k\u00f5ik t\u00f6\u00f6tab. Kuid ainult siis, kui k\u00f5ik t\u00f6\u00f6tab! Meil olid plaanilised t\u00f6\u00f6d, kus kandisime \u00fcle piisavalt suure v\u00f5rgu segmendi, ja me kontrollisime j\u00e4lle k\u00e4sitsi, mis on \u00fcles ja mis mitte.<\/p>\n<p><b>MM:<\/b> \u2013 See ei saa olla t\u00f5si! Me kontrollisime k\u00f5ik 10 korda. Server t\u00f6\u00f6tleb isegi t\u00e4ielikku v\u00f5rgu puudumist hetkega.<\/p>\n<p><b>MT:<\/b> \u2013 Jah, ma saan aru: server, andmebaas, top, austat, logid \u2013 k\u00f5ik on kiire... Kuid meie vaatame veebiliidest, ja seal on serveri protsessor \u201eriivas\u201c ja see:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/828a44d71f67ac585055bffcc01ab46e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Selge. Vaatame veebilehte. Oleme avastanud, et olukordades, kus oli palju aktiivseid s\u00fcndmusi, hakkasid enamik operatiivseid vidinaid v\u00e4ga aeglaselt t\u00f6\u00f6tama:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/22fdb735aa6136cd9967b40341d2a5cf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSelle p\u00f5hjuseks oli h\u00fcpikakende genereerimine s\u00fcndmuste ajalooga, mis genereeritakse iga loendi elemendi jaoks. Seet\u00f5ttu loobusime nende akende genereerimisest (kommenteerisime 5 rida koodist v\u00e4lja) ja see lahendas meie probleemid.<\/p>\n<p>Vidinate laadimisaeg isegi t\u00e4ieliku k\u00e4ttesaamatuse korral v\u00e4henes mitmest minutist meie jaoks vastuv\u00f5etavate 10\u201315 sekundi piirini, ja ajalugu on endiselt vaadatav aja klikkimisega:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/d15341ce76578880a23651a7a68dd802.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<i>P\u00e4rast t\u00f6\u00f6d. 2 kuud tagasi<\/i><\/p>\n<p><b>MT:<\/b> \u2013 Misha, lahkud? On juttu.<\/p>\n<p><b>MM:<\/b> \u2013 Ei plaaninud. Kas j\u00e4lle midagi \u00abZabbixiga\u00bb?<\/p>\n<p><b>MT:<\/b> \u2013 Ei, rahune! Ma tahtsin lihtsalt \u00f6elda: k\u00f5ik t\u00f6\u00f6tab, ait\u00e4h! Minu arvelt \u00f5lu.<\/p>\n<h3>Zabbix on efektiivne<\/h3>\n<p>\n\u00abZabbix\u00bb on piisavalt universaalne ja rikkaliku s\u00fcsteemiga ning funktsiooniga. Seda saab h\u00e4sti kasutada v\u00e4ikeste installatsioonide jaoks \"karbist v\u00e4lja\", kuid vajaduste suurenedes tuleb seda optimeerida. Suure arhiivi m\u00f5\u00f5dikute salvestamiseks kasutage sobivat salvestusruumi:<\/p>\n<ul>\n<li>v\u00f5ite kasutada sisseehitatud vahendeid, nagu integreerimine 'Elasticsearch'iga v\u00f5i ajaloo eksportimine tekstifailidesse (saadaval alates neljandast versioonist);<\/li>\n<li>v\u00f5ite kasutada meie kogemust ja integreerimist 'ClickHouse'iga.<\/li>\n<\/ul>\n<p>\nMetrika kogumise kiiruset\u00f5stmiseks koguge neid as\u00fcnkroonselt ja edastage need trapperi liidese kaudu 'Zabbix' serverisse; v\u00f5i v\u00f5ite kasutada 'Zabbixi' enda pollerite as\u00fcnkroonsuse plaastrit.<\/p>\n<p>'Zabbix' on kirjutatud C keeles ja on piisavalt efektiivne. Siiski, m\u00f5ned kitsad arhitektuurilised kohad v\u00f5imaldavad veelgi suurendada selle j\u00f5udlust ja meie kogemuse kohaselt saab \u00fcheprotsessori masinal saada \u00fcle 100 000 m\u00f5\u00f5tme.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/46559b481b5e53dc3cc3d2562a94531d.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>See Zabbixi plaastriteema<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Ma tahan lisada paar punkti. Kogu praegune ettekande, k\u00f5ik testid ja numbrid on esitatud selle konfiguratsiooni jaoks, mida meie kasutame. Selle pealt v\u00f5tame praegu umbes 20 000 m\u00f5\u00f5tme sekundis. Kui te \u00fcritate m\u00f5ista, kas see t\u00f6\u00f6tab teil \u2013 v\u00f5ite v\u00f5rrelda. See, millest t\u00e4na r\u00e4\u00e4kisime, on saadaval GitHubis plaastreina: <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/miklert\/zabbix\">github.com\/miklert\/zabbix<\/a><\/noindex><\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/e5880b2f01cb03809057db08306b23c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPlaaster sisaldab:<\/p>\n<ul>\n<li>t\u00e4ielik integreeritus \u00abClickHouse'iga\u00bb (nii \u00abZabbix\u00bb serverite kui ka frontendiga);<\/li>\n<li>probleemide lahendamine eelt\u00f6\u00f6tluse halduriga;<\/li>\n<li>as\u00fcnkroonne polling.<\/li>\n<\/ul>\n<p>\nP\u00e4is on \u00fchilduv k\u00f5igi 4. versiooniga, sealhulgas lts. T\u00f5en\u00e4oliselt t\u00f6\u00f6tab see minimaalsete muudatustega ka 3.4 versioonis.<\/p>\n<p>Ait\u00e4h t\u00e4helepanu eest.<\/p>\n<h3>K\u00fcsimused<\/h3>\n<p>\nK\u00fcsimus publikust (edasi \u2013 A): \u2013 Tere! Palun \u00fctle, kas teil on plaane aktiivseks koost\u00f6\u00f6ks Zabbixi meeskonnaga v\u00f5i neil teie omaga, et see ei oleks lihtsalt p\u00e4is, vaid Zabbixi normaalse k\u00e4itumise kujundamine?<\/p>\n<p><b>MM:<\/b> \u2013 Jah, osa muudatusi me kindlasti kinnitame. Midagi j\u00e4\u00e4b ellu, midagi j\u00e4\u00e4b p\u00e4isesse.<\/p>\n<p><b>A:<\/b> \u2013 Ait\u00e4h palju suurep\u00e4rase ettekande eest! Palun \u00f6elge, kas p\u00e4rast p\u00e4ise rakendamist j\u00e4\u00e4b Zabbixi toetus alles ja kuidas edasi k\u00f5rgemate versioonide peale uuendada? Kas on v\u00f5imalus uuendada Zabbixi teie p\u00e4ise j\u00e4rel versioonidele 4.2, 5.0?<\/p>\n<p><b>MM:<\/b> \u2013 Toetuse kohta ei oska ma \u00f6elda. Kui ma oleksin \u00abZabbixi\u00bb tehniline tugi, siis ilmselt \u00fctleksin ei, sest see on kellegi teise kood. Mis puudutab koodibaasi 4.2, siis meie seisukoht on selline: \u00abMe l\u00e4hme ajaga kaasas ja uuendame ise j\u00e4rgmisele versioonile\u00bb. Seega m\u00f5nda aega avaldame me pat\u0161i uuendatud versioonide jaoks. Olen juba oma ettekandes \u00f6elnud: muudatuste hulk versioonide vahel on praegu piisavalt v\u00e4ike. Arvan, et \u00fcleminek versioonilt 3.4 versioonile 4 v\u00f5ttis meil umbes 15 minutit. Seal midagi muutus, kuid mitte v\u00e4ga olulist.<\/p>\n<p><b>A:<\/b> \u2013 Kas te kavatsete oma pat\u0161i toetada ja kas seda v\u00f5ib julgelt tootmises kasutada, saades tulevikus v\u00e4rskendusi mingil moel?<\/p>\n<p><b>MM:<\/b> \u2013 Me soovitame seda kategooriliselt. See lahendab meile v\u00e4ga palju probleeme.<\/p>\n<p><b>MT:<\/b> \u2013 Tahtsin veel kord r\u00f5hutada, et muudatused, mis ei puuduta arhitektuuri ega blokeeringuid, j\u00e4rjekordi \u2013 need on moodulilised, need on eraldi moodulites. Isegi v\u00e4ikeste muudatuste korral on neid piisavalt lihtne toetada.<\/p>\n<p><b>MM:<\/b> \u2013 Kui \u00fcksikasjad huvitavad, siis \u00abClickHouse\u00bb kasutab nn ajalugu raamatukogu. See on lahtiseotud \u2013 see on \u00abElasticsearchi\u00bb toe koopia, mis t\u00e4hendab, et see on konfiguratsiooniliselt muudetav. Polling muudab ainult pollereid. Me arvame, et see t\u00f6\u00f6tab kaua.<\/p>\n<p><b>A:<\/b> \u2013 Suur ait\u00e4h. Ja kas on olemas mingit dokumentatsiooni tehtud muudatuste kohta?<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihhail Makurov, Maksim T\u0161ernecov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/f3842ba578f736721c96794941b8f071.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\n<b>MM:<\/b> \u2013 Dokumentatsioon on patch. Ilmselt seoses \u00abClickHouse\u2019i\u00bb kasutuselev\u00f5tuga, uute pollert\u00fc\u00fcpide tekke t\u00f5ttu tekivad uued konfiguratsiooniv\u00f5imalused. Viimase slaidi lingilt leiate l\u00fchikese kirjelduse, kuidas sellega t\u00f6\u00f6tada.<\/p>\n<h3>fping asendamisest nmap'iga<\/h3>\n<p>\n<b>A:<\/b> \u2013 Kuidas te seda l\u00f5puks realiseerisite? V\u00f5ite tuua konkreetsed n\u00e4ited: kas teil on strappereid ja v\u00e4line skript? Mis l\u00f5puks kontrollib nii kiiresti nii suure hulga hoste? Kuidas te neid hoste hankite? Peab nmap'ile need kuidagi sisestama, millestki saama, panema, midagi k\u00e4ivitama?<\/p>\n<p><b>MM:<\/b> \u2013 Lahe. V\u00e4ga \u00f5ige k\u00fcsimus! Asi on selles, et me kohandasime raamatukogu (ICMP-ping, osa \"Zabbixist\") ICMP-kontrollide jaoks, mille puhul on pakettide arv - \u00fcks (1), ja kood p\u00fc\u00fcab kasutada nmap'i. See t\u00e4hendab, et see on \"Zabbixi\" sisemine t\u00f6\u00f6, mis on muutunud pingeriikimiseks. Seega ei ole vajalik s\u00fcnkroneerimist v\u00f5i trapperi kasutamist. See tehti teadlikult, et s\u00fcsteemi terviklikkust s\u00e4ilitada ning mitte s\u00fcveneda kahe s\u00fcsteemi andmebaaside s\u00fcnkroneerimisele: mida kontrollida, andmete \u00fcleslaadimine polleri kaudu, ja kas meie \u00fcleslaadimine on katki?.. See on palju lihtsam.<\/p>\n<p><b>A:<\/b> \u2013 Kas see t\u00f6\u00f6tab ka proksi jaoks?<\/p>\n<p><b>MM:<\/b> \u2013 Jah, aga me ei ole testinud. Pollimise kood nii \"Zabbixis\" kui ka serveris on \u00fchtne. Peaks t\u00f6\u00f6tama. T\u00f5estan veel kord: s\u00fcsteemi j\u00f5udlus on selline, et me ei vaja proksi.<\/p>\n<p><b>MT:<\/b> \u2013 \u00d5ige vastus k\u00fcsimusele on: \"Miks teil on sellise s\u00fcsteemi puhul proksi?\" Ainult NAT'i p\u00e4rast v\u00f5i kui monitorida l\u00e4bi aeglase kanali\u2026<\/p>\n<p><b>A:<\/b> \u2013 Te kasutate \"Zabbixit\" nagu alarmis\u00fcsteemi, kui ma \u00f5igesti aru sain. Kas v\u00f5i graafikud (kus on arhiivi kiht) on \u00fcle viidud teise s\u00fcsteemi, nagu Grafana? V\u00f5i te ei kasuta seda funktsionaalsust?<\/p>\n<p><b>MM:<\/b> \u2013 Kordaks r\u00f5hutan: oleme teinud t\u00e4ieliku integreerimise. Me voolame ajaloo \u00abClickhouse'i\u00bb, kuid samal ajal muutsime php-frontend'i. Php-frontend p\u00e4\u00e4seb \u00abClickhouse'i\u00bb juurde ja k\u00f5ik diagrammid tehakse sealt. Ausalt \u00f6eldes on meil osa, mis loob samast \u00abClickhouse'ist\u00bb, samadest \u00abZabbixi\u00bb andmetest teistes graafikute s\u00fcsteemides.<\/p>\n<p><b>MT:<\/b> \u2013 Sealhulgas \u00abGrafanas\u00bb.<\/p>\n<h3>Kuidas langetati otsus ja ressursi eraldamine?<\/h3>\n<p>\n<b>A:<\/b> \u2013 Jagage natuke oma ideed. Kuidas langetati otsus, et on vaja eraldada ressursid toote t\u00f5siselt \u00fcmber t\u00f6\u00f6tamiseks? See on t\u00f5epoolest teatud risk. Ja palun \u00f6elge kontekstis, et te kavatsete toetada uusi versioone: kuidas seda otsust haldamise seisukohalt \u00f5igustatakse?<\/p>\n<p><b>MM:<\/b> \u2013 Tundub, et ajalugu ei ole me v\u00e4ga h\u00e4sti jutustanud. Olime olukorras, kus midagi pidi tegema, ja l\u00e4ksime p\u00f5him\u00f5tteliselt kaht paralleelset teed pidi:<\/p>\n<ul>\n<li>\u00dcks oli h\u00f5ivatud monitoors\u00fcsteemi k\u00e4ivitamisega uutel meetoditel: monitooring teenusena, standardsete avatud lahenduste komplekt, mida me kombineerime ja seej\u00e4rel p\u00fc\u00fcame \u00e4riprotsessi muuta, et t\u00f6\u00f6tada uue monitooringus\u00fcsteemiga.<\/li>\n<li>Samas oli meil entusiast-programmeerija, kes sellega tegelema hakkas (enda kohta). Nii juhtus, et ta v\u00f5itis.<\/li>\n<\/ul>\n<p>\n<b>A:<\/b> \u2013 Mis on meeskonna suurus?<\/p>\n<p><b>MT:<\/b> \u2013 See on teie ees.<\/p>\n<p><b>A:<\/b> \u2013 Kas nagu ikka on vajalik kirglik inimene?<\/p>\n<p><b>MM:<\/b> \u2013 Ma ei tea, mis asi on kirglik inimene.<\/p>\n<p><b>A:<\/b> \u2013 Antud juhul olete see ilmselt teie. Suur ait\u00e4h, te olete \u00e4gedad.<\/p>\n<p><b>MM:<\/b> \u2013 Ait\u00e4h.<\/p>\n<h3>Patchide kohta Zabbixis<\/h3>\n<p>\n<b>A:<\/b> \u2013 Kas lahendust, mis kasutab proksi (n\u00e4iteks m\u00f5nedes jaotatud s\u00fcsteemides), on v\u00f5imalik kohandada ja patcheerida, \u00fctleme, pollereid, proksi ja osaliselt Zabbixi eelprotsessorit; ja nende omavahelist suhtlust? Kas olemasolevaid lahendusi on v\u00f5imalik optimeerida mitme proksi s\u00fcsteemi jaoks?<\/p>\n<p><b>MM:<\/b> \u2013 Tean, et 'Zabbix' server koostatakse kaudu proksi (koostatakse ja saadakse kood). Me ei ole seda tootmises kontrollinud. Ma ei ole sellest kindel, kuid mulle tundub, et etteprotsessorihaldurit ei kasutata proksi puhul. Proksi \u00fclesanne on v\u00f5tta Zabbixist meetrikate kogum, neid t\u00f6\u00f6delda (ta salvestab ka konfigureerimise, kohalikku andmebaasi) ja anda tagasi Zabbix serverile. Edasi t\u00f6\u00f6tleb server, kui see saab.<\/p>\n<p>Proksiga seotud huvi on arusaadav. Me kontrollime seda. See on huvitav teema.<\/p>\n<p><b>A:<\/b> \u2013 Idee oli selline: kui on v\u00f5imalik pat\u0161ida pollereid, saab neid pat\u0161ida ka proksis ja pat\u0161ida serveriga suhtlemist, ning etteprotsessorit nende eesm\u00e4rkide jaoks kohandada ainult serveris.<\/p>\n<p><b>MM:<\/b> \u2013 Ma arvan, et k\u00f5ik on isegi lihtsam. Te v\u00f5tate koodi, rakendate pat\u0161i, konfigureerite siis nii, nagu vajate \u2013 kogute proksi servereid (n\u00e4iteks ODBC kaudu) ja pat\u0161itud koodi jagate s\u00fcsteemide vahel. Kus vaja \u2013 kogute proksi, kus vaja \u2013 server.<\/p>\n<p><b>A:<\/b> \u2013 T\u00e4iendavalt ei pea proksi ja serveri vaheline edastus ilmselt pat\u0161ima?<\/p>\n<p><b>MT:<\/b> \u2013 Ei, see on standardne.<\/p>\n<p><b>MM:<\/b> \u2013 \u00dcks idee j\u00e4i tegelikult k\u00f5lama. Oleme alati hoidnud tasakaalu ideede voo ja muudatuste arvu ning hoolduse lihtsuse vahel.<\/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=\"Vaata videot\" 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>Veidi reklaami \ud83d\ude42<\/h3>\n<p>\nAit\u00e4h, et olete meiega. Kas teile meeldivad meie artiklid? Kas soovite n\u00e4ha rohkem huvitavaid materjale? Toetage meid, tehes tellimuse v\u00f5i soovitades meid tuttavatele. <noindex><a rel=\"nofollow\" href=\"https:\/\/ua-hosting.company\/cloudvps\/nl\">pilve VPS arendajatele alates $4,99<\/a><\/noindex>, <b>ainulaadne sisenemise taseme serverite analoog, mille oleme teie jaoks v\u00e4lja m\u00f5elnud:<\/b> <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/347386\/\">Kogu t\u00f5de VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps alates $19 v\u00f5i kuidas \u00f5ieti serverit jagada?<\/a><\/noindex> (saadaval on RAID1 ja RAID10 variandid, kuni 24 s\u00fcdamikku ja kuni 40GB DDR4).<\/p>\n<p><b>Kas Dell R730xd on kaks korda odavam Equinixi Tier IV andmete keskuses Amsterdamis?<\/b> Ainult meie juures <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 100 TB alates $199<\/a><\/noindex> Hollandi turul! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 alates $99!<\/b><\/b> Lugege, kuidas <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Luua ettev\u00f5tte tasemel infrastruktuur Dell R730xd E5-2650 v4 serveritega, mille hind on 9000 eurot, madala hinnaga?<\/a><\/noindex><br \/>\n<br \/>Allikas: <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 4.9.10 - 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. 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\" \/>\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\/highload-mihail-makurov-maksim-chernetsov-intersvyaz-zabbix-100knvps-na-odnom-servere\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\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. 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\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/et\/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++, Mihhail Makurov, Maksim T\u0161ernetsov (Interv \u0441\u0432\u044f\u0437\u0438): Zabbix, 100kNVPS \u00fchel serveril | ProHoster","description":"J\u00e4rgmine konverents HighLoad++ toimub 6. ja 7. aprillil 2020 Peterburis. \u00dcksikasjad ja piletid lingil. HighLoad++ Moskva 2018. Saal \u201eMoskva\u201c. 9. novembril, 15:00. Teesid ja esitlused. * J\u00e4lgimine \u2014 reaalajas ja anal\u00fc\u00fcs. * ZABBIX platvormi peamised piirangud. * Lahendus anal\u00fc\u00fctika ladustamise skaleerimiseks. * ZABBIX serveri optimeerimine. * UI optimeerimine. * Kasutuskogemus.","canonical_url":"https:\/\/prohoster.info\/et\/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":"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\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. 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","og:url":"https:\/\/prohoster.info\/et\/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"},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/56049","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=56049"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/56049\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/media?parent=56049"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/categories?post=56049"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/tags?post=56049"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}