{"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++, Mihail Makurov, Maxim \u010cernetsov (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\">linki pidi<\/a><\/noindex>. HighLoad++ Moskvas 2018. Saal \"Moskva\". 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++, Mihail Makurov, Maxim \u010cernetsov (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 - reaalajas ja anal\u00fc\u00fctika.<br \/>\n* ZABBIXi platvormi p\u00f5hipiirangud.<br \/>\n* Lahendus anal\u00fc\u00fctilise salvestamise skaleerimiseks.<br \/>\n* ZABBIXi serveri optimeerimine.<br \/>\n* UI optimeerimine.<br \/>\n* Kogemus s\u00fcsteemi kasutamisest \u00fcle 40k NVPS koormuse korral.<br \/>\n* L\u00fchidalt j\u00e4reldused.<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<p><b>Mikhail Makurov (edasi \u2013 MM):<\/b> \u2013 K\u00f5igile tere!<\/p>\n<p><b>Maksim T\u0161ernecov (edasi \u2013 MT):<\/b> \u2013 Tere p\u00e4evast!<\/p>\n<p><b>MM:<\/b> \u2013 Lubage mul tutvustada Maksimit. Maksim on andekas insener, parim v\u00f5rguspetsialist, keda ma tunnen. Maksim tegeleb v\u00f5rkude ja teenuste arendamise ja haldamisega.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 ma sooviksin r\u00e4\u00e4kida Mihhailist. Mihhail on C keele arendaja. Ta on meie ettev\u00f5tte jaoks kirjutanud mitmeid k\u00f5rgkoormusega lahendusi liikluse t\u00f6\u00f6tlemiseks. Me elame ja t\u00f6\u00f6tame Uuralites, karmide meeste linnas T\u0161eljabinski, firmas \"Intersvyaz\". Meie ettev\u00f5te on interneti- ja kaabeltelevisiooniteenuste pakkuja miljonile inimesele 16 linnas.<\/p>\n<p><b>MM:<\/b> \u2013 Ja tuleks mainida, et \"Intersvyaz\" on palju enamat kui lihtsalt teenusepakkuja, see on IT-ettev\u00f5te. Enamik meie lahendustest on loodud meie IT-osakonna j\u00f5ududega.<\/p>\n<p><b>A:<\/b> serveritest, mis t\u00f6\u00f6tlevad liiklust, kuni k\u00f5nekeskuse ja mobiilirakenduseni. IT-osakonnas on hetkel umbes 80 inimest, kellel on v\u00e4ga ja v\u00e4ga erinevad oskused.<\/p>\n<h3>Zabbixist ja selle arhitektuurist<\/h3>\n<p>\n<b>MT:<\/b> \u2013 N\u00fc\u00fcd proovin ma seada isiklikku rekordit ja minutiga seletada, mis on Zabbix (edasi \u2013 \"Zabbix\").<\/p>\n<p>\"Zabbix\" positsioneerib end ettev\u00f5tte tasandi \"lahtiselt\" j\u00e4lgimiss\u00fcsteemina. Sellest leiate palju elu lihtsustavaid funktsioone: arenenud eskalatsiooni reeglid, API integreerimiseks, hostide ja m\u00f5\u00f5dikute r\u00fchmitamine ning automaatne avastamine. \"Zabbix\"is on nn skaleerimise t\u00f6\u00f6riistad - proksid. \"Zabbix\" on avatud l\u00e4htekoodiga s\u00fcsteem.<\/p>\n<p>L\u00fchidalt arhitektuurist. Selle v\u00f5ib jagada kolmeks komponendiks:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 keeles. Piisavalt keeruka infovoogude t\u00f6\u00f6tlemise ja edastamisega. K\u00f5ik t\u00f6\u00f6tlemine toimub seal: andmete vastuv\u00f5tmisest andmebaasi salvestamiseni.<\/li>\n<li>K\u00f5ik andmed salvestatakse andmebaasis. \"Zabbix\" toetab MySQL, PostgreSQL ja Oracle.<\/li>\n<li>Veebiliides on kirjutatud PHP-s. Suuremas osas s\u00fcsteemidest tuleb see koos Apache serveriga, kuid t\u00f6\u00f6tab efektiivsemalt koos nginx + php-iga.<\/li>\n<\/ul>\n<p>\nT\u00e4na tahaksime jagada \u00fchte meie ettev\u00f5tte elu lugu, mis on seotud \"Zabbixiga\"...<\/p>\n<h3>Lugu ettev\u00f5ttest \"Intersside\". Mida meil on ja mida on vaja?<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 Mi\u0161a, tere! Tore, et suutsin sind kinni p\u00fc\u00fcda \u2013 mul on juttu. Meil olid j\u00e4lle probleemid j\u00e4lgimisega. Suure avarii ajal k\u00f5ik seisis ja ei olnud mingit teavet v\u00f5rgu seisundi kohta. Kahjuks on see juba mitte esmakordselt. Mul on vaja sinu abi. Teeme nii, et meie j\u00e4lgimine t\u00f6\u00f6taks igasugustes oludes!<\/p>\n<p><b>MM:<\/b> \u2013 Aga k\u00f5igepealt s\u00fcnkroniseerime end. Ma pole sinna paar aastat vaatamas k\u00e4inud. Kui ma \u00f5igesti m\u00e4letan, loobusime Nagiosest ja l\u00e4ksime \"Zabbixile\" umbes 8 aastat tagasi. Ja praegu on meil n\u00e4iliselt 6 v\u00f5imsat serverit ja paar tosinat proksi. Kas ma segan midagi?<\/p>\n<p><b>MT:<\/b> \u2013 Peaaegu. 15 serverit, millest osa on virtuaalmasinad. Peamine probleem on see, et see ei aita meid siis, kui meil seda k\u00f5ige rohkem vaja on. Iga avarii korral serverid seisavad ja midagi ei paista. Oleme proovinud konfiguratsiooni optimeerida, kuid see ei anna optimaalset j\u00f5udluse kasvu.<\/p>\n<p><b>MM:<\/b> \u2013 Selge. Kas oled midagi vaadanud, kas on midagi diagnoosimise k\u00e4igus v\u00e4lja kaevatud?<\/p>\n<p><b>MT:<\/b> \u2013 Esimene probleem, millega kokku puutume, on just andmebaas. MySQL on pidevalt koormatud uute metrikate salvestamisega, ja kui \"Zabbix\" hakkab genereerima hulgaliselt s\u00fcndmusi, l\u00e4heb andmebaas t\u00e4iesti kinni tavaliselt paariks tunniks. Konfiguratsiooni optimeerimisest r\u00e4\u00e4kisin juba, kuid just sel aastal v\u00e4rskendasime riistvara: serverites on \u00fcle saja gigabaidi m\u00e4lust ja SSD RAID-ide ketasmassiivid \u2013 ei ole m\u00f5tet seda edasi lineaarselt kasvatada. Mida teeme?<\/p>\n<p><b>MM:<\/b> \u2013 Selge. \u00dcldiselt on MySQL LTP-andmebaas. Tundub, et see ei sobi enam meie suurte metrikate arhiivi hoidmiseks. Hakka uurima.<\/p>\n<p><b>MT:<\/b> \u2013 Hakkame!<\/p>\n<h3>Zabbixi ja Clickhouse'i integreerimine hackathoni l\u00f5pptulemusena<\/h3>\n<p>\nM\u00f5ne aja p\u00e4rast saime huvitavaid andmeid:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 metrikate arhiiviga ning v\u00e4hem kui 1% kasutati konfiguratsiooni, malli ja seadistuste jaoks. Sel ajal olime juba \u00fcle aasta kasutanud Big Data lahendust Clickhouse'i baasil. Meie suund oli ilmne. Meie kevadisest \u201eHakatonist\u201d kirjutasin integraatsiooni \u201eZabbixi\u201d ja \u201eClickhouse'i\u201d jaoks serverile ja frontendile. Tol ajal oli \u201eZabbixis\u201d juba toetatud ElasticSearch ja otsustasime neid v\u00f5rrelda.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 Elasticsearchi v\u00f5rdlus<\/h3>\n<p>\n<b>MM:<\/b> \u2013 V\u00f5rdlemiseks genereerisime koormust, mis oli sama, nagu tagab \u201eZabbixi\u201d server, ja vaatasime, kuidas s\u00fcsteemid k\u00e4ituvad. Kirjutasime andmeid partiidena 1000 rida, kasutasime CURLi. Oletasime eelnevalt, et \u201eClickhouse\u201d on selle koormusprofiili jaoks efektiivsem. Tulemused \u00fcletasid isegi meie ootusi:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/354be7147b23a0bcb9ada3af93f59fac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKatses samaalustes tingimustes kirjutas \u201eClickhouse\u201d kolm korda rohkem andmeid. Samas kasutasid m\u00f5lemad s\u00fcsteemid andmete lugemisel v\u00e4ga efektiivselt (v\u00e4henenud ressursside hulga). Kuid kirjutamise ajal vajas \u201eElasticsearch\u201d suures koguses protsessorit:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 \u201eClickhouse\u201d m\u00e4rkimisv\u00e4\u00e4rselt \u201eElasticsearchi\u201d protsessorite kasutuse ja kiirusest. Samuti kasutab \u201eClickhouse\u201d andmete tihendamise abil 11 korda v\u00e4hem ruumi k\u00f5vakettal ning teeb umbes 30 korda v\u00e4hem kettatehinguid:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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, \u201eClickhouse'i\u201d kettaseadmega t\u00f6\u00f6tamine on v\u00e4ga efektiivselt realiseeritud. Andmebaaside jaoks saab kasutada suuri SATA-ketasid ja saavutada kirjutamiskiirus sadu tuhandeid ridu sekundis. S\u00fcsteem toetab \u201ekarbist v\u00e4ljas\u201d \u0161ardimist, replikatsiooni ja on v\u00e4ga lihtsalt seadistatav. Oleme rohkem kui rahul selle kasutamisega aasta jooksul.<\/p>\n<p>Ressursside optimeerimiseks saab \u201eClickhouse'i\u201d paigaldada olemasoleva p\u00f5hiandmebaasi vahetusse l\u00e4hedusse ja sellega s\u00e4\u00e4sta palju protsessorite aega ja kettatehinguid. Oleme viinud metrikate arhiivi juba olemasolevatele \u201eClickhouse'i\u201d klastritele:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 kergelt koormust v\u00e4hendanud, et saime selle \u00fchendada \u00fchel masinal \u201eZabbixi\u201d serveriga ja loobuda eraldi serverist MySQL jaoks.<\/p>\n<h3>Kuidas toimib polling Zabbixis?<\/h3>\n<p>\n<i>4 kuud tagasi<\/i><\/p>\n<p><b>MM:<\/b> \u2013 Noh, kas andmebaasi probleemidest v\u00f5ib n\u00fc\u00fcd unustada?<\/p>\n<p><b>MT:<\/b> \u2013 See on kindel! Teine \u00fclesanne, mille peame lahendama, on aeglane andmete kogumine. N\u00fc\u00fcd on k\u00f5ik meie 15 proksiserverit \u00fcle koormatud SNMP protsesside ja polling'uga. Ja ei ole muud v\u00f5imalust, kui lihtsalt uute serverite seadistamine.<\/p>\n<p><b>MM:<\/b> \u2013 Suurep\u00e4rane. Aga r\u00e4\u00e4gi esmalt, kuidas toimub polling 'Zabbix'is?<\/p>\n<p><b>MT:<\/b> \u2013 L\u00fchidalt \u00f6eldes on olemas 20 t\u00fc\u00fcpi m\u00f5\u00f5dikuid ja k\u00fcmme erinevat viisi nende hankimiseks. 'Zabbix' saab koguda andmeid kas \"p\u00e4ring - vastus\" re\u017eiimis v\u00f5i oodata uusi andmeid \"Trapperi liidese\" kaudu.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/cb2d974ee113b4147a4a588c1f35c730.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTasub m\u00e4rkida, et originaalses 'Zabbix'is on see meetod (Trapper) k\u00f5ige kiirem. <\/p>\n<p>On olemas proksiserverid koormuse jagamiseks:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/7b5c94a82b7e06aff6df6ea5549babdf.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nProksid saavad t\u00e4ita samu andmete kogumise funktsioone nagu 'Zabbix' server, saades sellest \u00fclesandeid ja saadetedes kogutud m\u00f5\u00f5dikud just l\u00e4bi Trapperi liidese. See on ametlikult soovitatud koormuse jaotamise meetod. Samuti on proksid kasulikud kaug-infrastruktuuri j\u00e4lgimiseks, mis t\u00f6\u00f6tab l\u00e4bi NAT v\u00f5i aeglase kanali:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 Arhitektuur on arusaadav. Tuleb vaadata l\u00e4htekoodi...<\/p>\n<p><i>M\u00f5ni p\u00e4ev hiljem<\/i><\/p>\n<h3>Lugu sellest, kuidas nmap ja fping v\u00f5itsid<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Tundub, et ma leidsin midagi.<\/p>\n<p><b>MT:<\/b> \u2013 R\u00e4\u00e4gi!<\/p>\n<p><b>MM:<\/b> \u2013 Otsides k\u00e4ttesaadavust avastasin, et 'Zabbix' kontrollib korraga maksimaalselt 128 hosti. Proovisin seda arvu suurendada 500-le ja eemaldasin nende pingeni (ping) vahe - see kahekordistas j\u00f5udlust. Aga tahaksin suuremaid numbreid.<\/p>\n<p><b>MT:<\/b> \u2013 Oma praktikas pean m\u00f5nikord kontrollima tuhandeid hoste ning ma ei ole leidnud midagi kiiremat kui nmap. Olen kindel, et see on k\u00f5ige kiirem meetod. Proovime seda! Peame m\u00e4rkimisv\u00e4\u00e4rselt suurendama hostide arvu \u00fche iteratsiooni jooksul.<\/p>\n<p><b>MM:<\/b> \u2013 Kontrollida rohkem kui viissada? 600?<\/p>\n<p><b>MT:<\/b> \u2013 V\u00e4hemalt paar tuhat.<\/p>\n<p><b>MM:<\/b> \u2013 Okei. K\u00f5ige t\u00e4htsam, mida tahtsin \u00f6elda: leidsin, et enamik polling'ust 'Zabbix'is on tehtud s\u00fcnkroonselt. Peame selle kindlasti \u00fcmber t\u00f6\u00f6tama as\u00fcnkroonseks. Siis saame dramaatiliselt suurendada m\u00f5\u00f5dikute arvu, mida pollingud koguvad, eriti kui suurendame m\u00f5\u00f5dikute arvu \u00fche iteratsiooni kohta.<\/p>\n<p><b>MT:<\/b> \u2013 Suurep\u00e4rane! 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++, Mihail Makurov, Maxim \u010cernetsov (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 ootusp\u00e4raselt kuni viis korda t\u00f5husam. Kuna nmap kontrollib ainult ligip\u00e4\u00e4setavust ja reaktsiooniaega, viisin kaotuste arvestamise triggereisse ja l\u00fchendasin m\u00e4rgatavalt ligip\u00e4\u00e4setavuse kontrollimise intervalli. Optimaalseks hostide arvuks nmap'i jaoks leidsime umbes 4000 \u00fche iteratsiooni kohta. Nmap v\u00f5imaldas meil kolm korda v\u00e4hendada CPU koormust ligip\u00e4\u00e4setavuse kontrollimiseks ja l\u00fchendada intervalli 120 sekundilt 10 sekundile.<\/p>\n<h3>Pollimise optimeerimine<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Siis tegelesime polleritega. Peamiselt huvitavad meid SNMP kogumid ja agendid. \u201eZabbix\u2019is\u201d on pollimine tehtud s\u00fcnkroonselt ning on rakendatud erilisi meetmeid s\u00fcsteemi efektiivsuse suurendamiseks. S\u00fcnkroonses re\u017eiimis p\u00f5hjustab hostide ligip\u00e4\u00e4setamatuse oluliselt pollimise halvenemist. Eksisteerib terviklik olekute s\u00fcsteem, seal on erilised protsessid \u2013 nn unreachable-pollereid, mis t\u00f6\u00f6tavad ainult ligip\u00e4\u00e4smatute hostidega:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 ja kogu s\u00fcsteemi \u00fcleminekute keerukust, mis on vajalik s\u00fcsteemi efektiivsena hoidmiseks. Lisaks on s\u00fcnkroonne pollimine piisavalt aeglane:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 l\u00f5imed k\u00fcmnel p\u00f6\u00f6rdumisel koguda meile vajalikku andmemassi. As\u00fcnkroonne realiseerimine lahendas mitte ainult l\u00f5imede arvu probleemid, vaid lihtsustas oluliselt ligip\u00e4\u00e4sematute hostide olekute s\u00fcsteemi, kuna \u00fches pollimise iteratsioonis kontrollitava arvu juures oli maksimaalne ootamise aeg 1 aegumine:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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\u00e4iustasime SNMP p\u00e4ringute pollimise s\u00fcsteemi. Asi on selles, et enamus ei suuda vastata mitmele SNMP p\u00e4ringule korraga. Seet\u00f5ttu tegime h\u00fcbriidre\u017eiimi, kus \u00fche ja sama hosti SNMP pollimine toimub as\u00fcnkroonselt:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/eb61766e8afce9bf72d6e9757492559e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee kehtib kogu hostide partii kohta. Selline re\u017eiim ei ole l\u00f5puks aeglasem kui t\u00e4ielikult as\u00fcnkroonne, kuna poolteist sadat SNMP v\u00e4\u00e4rtuse k\u00fcsitlemine on ikkagi oluliselt kiirem kui 1 aegumine.<\/p>\n<p>Meie eksperimendid n\u00e4itasid, et optimaalseks p\u00e4ringute arvuks \u00fches iteratsioonis on umbes 8000 SNMP pollimise puhul. Kokkuv\u00f5ttes v\u00f5imaldas \u00fcleminek as\u00fcnkroonsesse re\u017eiimi kiirendada pollimise j\u00f5udlust 200 korda, mitusada korda.<\/p>\n<p><b>MT:<\/b> \u2013 Saadud pollingu optimeerimised n\u00e4itasid, et saame mitte ainult loobuda k\u00f5igist proksidest, vaid ka v\u00e4hendada paljude kontrollide intervallide pikkust, ning proksid ei ole enam vajalikud koormuse jaotamise meetodina.<\/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 Noh, Max, kas on aeg tootmisse minna? Mul on vaja v\u00f5imsat serverit ja head inseneri.<\/p>\n<p><b>MT:<\/b> \u2013 H\u00e4sti, plaanime. On aeg liikuda edasi 5000 meetrika sekundis.<\/p>\n<p><i>Hommik p\u00e4rast uuendust<\/i><\/p>\n<p><b>MT:<\/b> \u2013 Misha, me uuendasime, kuid hommikuks said tagasi tagasi\u2026 Arva, millise kiiruseni me j\u00f5udsime?<\/p>\n<p><b>MM:<\/b> \u2013 Tuhat 20 maksimaalselt.<\/p>\n<p><b>MT:<\/b> \u2013 Aha, 25! Kahjuks oleme seal, kus alustasime.<\/p>\n<p><b>MM:<\/b> \u2013 Miks nii? Kas tehti mingi diagnostika?<\/p>\n<p><b>MT:<\/b> \u2013 Jah, loomulikult! Vaata, siin on n\u00e4iteks huvitav top:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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, ma n\u00e4en, et oleme proovinud tohutult palju pollingu teemasid:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/346e8047f1f6f2bb1b1dd91a728e437b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nAga samas ei suutnud me s\u00fcsteemi isegi poole v\u00f5rra \u00e4ra kasutada:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/be1843dbec0fb10d8da59e8c570adc5b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa kogu tootlikkus on piisavalt v\u00e4ike, umbes 4000 meetrika sekundis:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/02eaf0b56629ebc6d3d5c132374a91b8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKas on midagi veel?<\/p>\n<p><b>MT:<\/b> \u2013 Jah, \u00fche polleri strace:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 pollingu protsess ootab \"semaforeid\". Need on lukud:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 Ebaselge.<\/p>\n<p><b>MM:<\/b> \u2013 Vaata, see n\u00e4eb v\u00e4lja nagu olukord, kus hulk teemasid \u00fcritab t\u00f6\u00f6tada ressursiga, millega saab samal ajal t\u00f6\u00f6tada vaid \u00fcks inimene. Siis saavad nad seda ressurssi ainult ajaliselt jagada:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/7dbb9e8941b01b666dd48f6301151ec9.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJa sellise ressursiga t\u00f6\u00f6tamise kogutootlikkus on piiratud \u00fche tuuma kiiruseta:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/e00b197577f4ea7350fe56665dbae299.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nT\u00f5sta selline probleem on v\u00f5imalik kahte moodi.<\/p>\n<p>Uuendada masina riistvara, minna kiirematele tuumadele:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/296d84b434ed7277fb558a8a4dd5ac47.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nV\u00f5i muuta arhitektuuri ja samal ajal \u2013 koormust:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 tootmises, kuid need on tuumade sageduse j\u00e4rgi 1,5 korda kiiremad!<\/p>\n<p><b>MM:<\/b> \u2013 Selge? Peame vaatama serveri koodi.<\/p>\n<h3>Andmete tee Zabbix serveris<\/h3>\n<p>\n<b>MT:<\/b> \u2013 Probleemi m\u00f5istmiseks hakkasime anal\u00fc\u00fcsima, kuidas andmed Zabbix serveris edastatakse:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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? L\u00e4heme seda samm-sammult uurima, et veidi selgemaks saada. Andmete kogumise eest vastutavad voolud ja teenused:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/966db6fa84723d4d3bde8a23736294d6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nKogutud meetrikad edastatakse socketi kaudu ettevalmistajate haldurile, kus need salvestatakse j\u00e4rjekorda:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/1e34fe2c4194f7bd71ec409d6169fb94.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nEttevalmistajate haldur edastab andmed oma t\u00f6\u00f6tajatele, kes t\u00e4idavad ettevalmistamisjuhised ja edastavad need tagasi sama socketi kaudu:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 eelprotsessorihaldur need ajaloosirde vahem\u00e4lu.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 andmes\u00fcnkroniseerijad, kes t\u00e4idavad mitmeid \u00fclesandeid: n\u00e4iteks trigerite arvutamine, v\u00e4\u00e4rtuste vahem\u00e4lu t\u00e4itmine ja, mis k\u00f5ige t\u00e4htsam, meetrite salvestamine ajaloos. \u00dcldiselt on protsess keeruline ja \u00fcsna segane.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 see, et enamus vooge konkureerib nn \"konfiguratsiooni vahem\u00e4lu\" p\u00e4rast (m\u00e4luala, kus hoitakse k\u00f5ik serveri konfiguratsioonid). Eriti palju lukustusi teevad vood, mis vastutavad andmete v\u00e4ljav\u00f5tmise eest:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 hoitakse mitte ainult meetmeid koos nende parameetritega, vaid ka j\u00e4rjekordi, millest pollijad v\u00f5tavad teavet selle kohta, mida nad edasi tegema peavad. Kui pollijaid on palju ja \u00fcks lukustab konfiguratsiooni, peavad teised ootama p\u00e4ringute tegemist:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/8026cdfcd7def84cb3708b7255b08c66.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Pollijad ei tohiks konfliktida<\/h3>\n<p>\n<img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/d436cd3415a6f58e1db5a609689c12b6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeet\u00f5ttu esimene asi, mida me tegime, oli jagada j\u00e4rjekord neljaks osaks ja lubada pollijatel ohututes tingimustes neid j\u00e4rjekordi, neid osi samal ajal lukustada:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/9466e5f0053dff583e76713f10e30a89.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSee kaotas konkurentsi konfiguratsiooni vahem\u00e4lu p\u00e4rast ja pollijate t\u00f6\u00f6kiirus suurenes m\u00e4rkimisv\u00e4\u00e4rselt. Kuid seej\u00e4rel seisime silmitsi probleemiga, et eelprotsessorihaldur hakkas \u00fclesandej\u00e4rjekorda koguma:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/dd58e625823310fb0a818ed81abdceac.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h3>Eelprotsessorihaldur peab olema suuteline prioriteete seadma<\/h3>\n<p>\nSee juhtus juhtudel, kui tal puudus j\u00f5udlus. Siis sai ta ainult koguda p\u00e4ringuid andmete kogumise protsessidelt ja hoida neid vahemikus, kuni see v\u00f5ttis kogu m\u00e4lu ja kukkus kokku:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 pistiku, mis oli spetsiaalselt eraldatud t\u00f6\u00f6tajatele:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/09d1bb92a009f9d29ba68d966de54210.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNii sai eelprotsessorihaldur v\u00f5imaluse oma t\u00f6\u00f6d prioriseerida ja juhul, kui puhversalv suurenes, suudab ta peatada andmete v\u00e4ljav\u00f5tmise, andes t\u00f6\u00f6tajatele v\u00f5imaluse see puhversalv \u00e4ra v\u00f5tta:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 \u00fcks aeglustumise p\u00f5hjuseid olid t\u00f6\u00f6tajad ise, kuna nad konkureerisid t\u00e4iesti nende t\u00f6\u00f6 jaoks ebaolulise ressursiga. Selle probleemi lahendasime bogi-parandusega, ja uutes \"Zabbixi\" versioonides on see juba lahendatud:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 saavutame tulemuse<\/h3>\n<p>\nSeej\u00e4rel sai eelprotsessorihaldur kitsaskohaks, kuna see on \u00fche vooga. Ta piirab s\u00fcdamiku kiirus, andes maksimaalse kiirus umbes 70 tuhat meetrit sekundis:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/f93ccbc656c0f9e103873d99a9397495.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSeet\u00f5ttu tegime neli erinevat t\u00f6\u00f6tlusseadet nelja pistikuga,<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 kiirusel t\u00f5usta umbes 130 000 metrikani:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/016ff07cd021a7221caef19e6ce36a9b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nMittejooneline kasv on tingitud konkurentsist ajaloo vahem\u00e4lu p\u00e4rast. Selle eest v\u00f5itlesid neli eelt\u00f6\u00f6tlus-juhti ja ajaloos\u00fcnkroniseerijad. Selleks ajaks saime testmasinas umbes 130 000 metrikat sekundis, kasutades umbes 95% protsessorist:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 t\u00f5stis NVP-sid pooleteise korra v\u00f5rra<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Max, mul on vaja uut testmasinat! Praegu ei mahu me enam sisse.<\/p>\n<p><b>MT:<\/b> \u2013 Mis seal praegu on?<\/p>\n<p><b>MM:<\/b> \u2013 Praegu \u2013 130k NVP-d ja protsessor \"seisab\".<\/p>\n<p><b>MT:<\/b> \u2013 Vau! Kift! Oota, mul on kaks k\u00fcsimust. Minu arvutuste kohaselt on meie vajadus umbes 15-20 tuhat metrikat sekundis. Miks me vajame rohkem?<\/p>\n<p><b>MM:<\/b> \u2013 Tahaksime asja l\u00f5puni viia. Tahaks teada, kui palju me suudame sellest s\u00fcsteemist v\u00e4lja pigistada.<\/p>\n<p><b>MT:<\/b> \u2013 Aga...<\/p>\n<p><b>MM:<\/b> \u2013 Aga see on ettev\u00f5tte jaoks kasutusk\u00f5lbmatu.<\/p>\n<p><b>MT:<\/b> \u2013 Selge. Ja teine k\u00fcsimus: kas seda, mis meil praegu on, saame me iseseisvalt toetada, ilma arendaja abita?<\/p>\n<p><b>MM:<\/b> \u2013 Ma ei arva. Konfiguratsioonivahendi t\u00f6\u00f6 muutmine on probleem. See puudutab enamikke vooge ja on piisavalt keeruline hooldada. T\u00f5en\u00e4oliselt on selle hooldamine v\u00e4ga keeruline.<\/p>\n<p><b>MT:<\/b> \u2013 Siis on vaja m\u00f5nda alternatiivi.<\/p>\n<p><b>MM:<\/b> \u2013 On selline variant. Saame minna kiiremate tuumade peale ja loobuda uue lukustuss\u00fcsteemi kasutamisest. Saame ikkagi 60-80 tuhat metrikat. Samuti saame hoida kogu muu koodi. \"ClickHouse\", as\u00fcnkroonne pollimine j\u00e4\u00e4b t\u00f6\u00f6le. Ja seda on kerge hooldada.<\/p>\n<p><b>MT:<\/b> \u2013 Suurep\u00e4rane! Pakun, et peame siin peatuma.<\/p>\n<p>P\u00e4rast serveripoolse optimiseerimist suutsime l\u00f5puks uut koodi tootmisse viia. Me loobusime osast muudatustest kiiremate tuumade masinale \u00fclemineku ja koodimuudatuste arvu minimoimise kasuks. Lihtsustasime ka konfiguratsiooni ning l\u00f5ime v\u00f5imalusel makrosid andmeelementides, kuna need on t\u00e4iendavate lukustuste allikaks.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 sageli esinevast SNMP-kogukonna makrost meie dokumentatsioonis ja n\u00e4idetes v\u00f5imaldas NVP-sid kiirusel veel 1,5 korda kiirendada.<\/p>\n<p><i>P\u00e4rast kahte p\u00e4eva tootmises<\/i><\/p>\n<h3>Eemaldame h\u00e4daolukordade ajaloo h\u00fcpikaknad<\/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 planeeritud t\u00f6\u00f6d, kus viidi \u00fcle piisavalt suur v\u00f5rgu segment, ja me kontrollisime k\u00e4sitsi, mis t\u00f6\u00f6tab ja mis mitte.<\/p>\n<p><b>MM:<\/b> \u2013 Ei saa olla! Me kontrollisime k\u00f5ike 10 korda. Server t\u00f6\u00f6tleb isegi t\u00e4ieliku v\u00f5rgu mittesaatvust hetkega.<\/p>\n<p><b>MT:<\/b> \u2013 Ma saan aru: server, andmebaas, top, austat, logid \u2013 k\u00f5ik on kiire\u2026 Aga me vaatame veebiliidest, ja seal on serveri protsessor 'puhkusel' ning see:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 Arusaadav. Vaatame veebiliidest. Me avastasime, et olukordades, kus oli suur hulk aktiivseid intsidente, hakkas enamik operatiivseid vidinaid t\u00f6\u00f6tama v\u00e4ga aeglaselt:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 intsidentide ajalooga, mis genereeritakse iga nimekirjas oleva elemendi jaoks. Seet\u00f5ttu loobusime nende akende genereerimisest (kommenteerisime 5 rida koodi) ja see lahendas meie probleemid.<\/p>\n<p>Vidinate laadimisaeg isegi t\u00e4ieliku mittesaatvuse korral v\u00e4henes m\u00f5nest minutist meie jaoks vastuv\u00f5etavatesse 10-15 sekundisse, ja ajalugu on endiselt v\u00f5imalik vaadata aja peale klikkides:<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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. J\u00e4lle midagi 'Zabbixi' k\u00e4es?<\/p>\n<p><b>MT:<\/b> \u2013 Ei, rahune maha! Tahtsin lihtsalt \u00f6elda: k\u00f5ik t\u00f6\u00f6tab, ait\u00e4h! Minu arvelt \u00f5lu.<\/p>\n<h3>Zabbix on efektiivne<\/h3>\n<p>\n'Zabbix' on piisavalt mitmek\u00fclgne ja rikkaliku s\u00fcsteemi ning funktsiooniga. Seda v\u00f5ib t\u00e4iesti kasutada v\u00e4ikeste installeerimiste jaoks 'kastist v\u00e4lja', kuid vajaduste kasvades on seda vaja optimeerida. Suure arhiivi metrikate hoidmiseks kasutage sobivat salvestust:<\/p>\n<ul>\n<li>v\u00f5ite kasutada sisseehitatud vahendeid nagu 'Elasticsearch' integratsioon v\u00f5i ajaloo eksportimine tekstifailidesse (saadaval neljandast versioonist);<\/li>\n<li>v\u00f5ite kasutada meie kogemusi ja integratsiooni 'ClickHouse'iga.<\/li>\n<\/ul>\n<p>\nMetrikate kogumise kiirusel radikaalseks suurenemiseks koguge neid as\u00fcnkroonsete meetodite abil ja edastage need trapperi liidese kaudu 'Zabbixi' serverisse; v\u00f5i v\u00f5ite kasutada pat\u0161i 'Zabbix'i pollerite as\u00fcnkroonsuse jaoks.<\/p>\n<p>\u00abZabbix\u00bb on kirjutatud C keeles ja on \u00fcsna efektiivne. Teatud kitsaskohtade arhitektuur v\u00f5imaldab selle j\u00f5udlust veelgi suurendada ja meie kogemuse kohaselt saab \u00fche protsessoriga masinal \u00fcle 100 000 m\u00f5\u00f5diku.<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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 on Zabbixi pat\u0161.<\/h3>\n<p>\n<b>MM:<\/b> \u2013 Soovin lisada paar punkti. K\u00f5ik praegused ettekanded, testid ja numbrid on esitatud selle konfiguratsiooni kohta, mida meie kasutame. Meie s\u00fcsteem suudab praegu koguda umbes 20 000 m\u00f5\u00f5dikut sekundis. Kui \u00fcritate m\u00f5ista, kas see toimib teie jaoks \u2013 saate v\u00f5rrelda. Seda, millest t\u00e4na r\u00e4\u00e4kisime, on saadaval GitHubis pat\u0161ina: <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, Maxim \u010cernetsov (Intersvyaz): Zabbix, 100kNVPS \u00fchel serveril\" src=\"\/wp-content\/uploads\/2020\/02\/e5880b2f01cb03809057db08306b23c7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPat\u0161 sisaldab:<\/p>\n<ul>\n<li>t\u00e4ielikku integreerimist \u00abClickHouse'iga\u00bb (nii \u00abZabbixi\u00bb serverite kui ka frontendi jaoks);<\/li>\n<li>probleemide lahendamine eelprotsessorihalduriga;<\/li>\n<li>as\u00fcnkroonne polling.<\/li>\n<\/ul>\n<p>\nPat\u0161 on \u00fchilduv kogu 4.0 versiooniga, sealhulgas lts-iga. T\u00f5en\u00e4oliselt toimib see v\u00e4ikeste muudatustega ka versioonis 3.4.<\/p>\n<p>Ait\u00e4h t\u00e4helepanu eest.<\/p>\n<h3>K\u00fcsimused<\/h3>\n<p>\nK\u00fcsimus publikust (edaspidi \u2013 K): \u2013 Tere p\u00e4evast! Palun \u00f6elge, kas teil on plaanis tihe koost\u00f6\u00f6 Zabbixi meeskonnaga v\u00f5i ka nende poolt teiega, et see ei oleks lihtsalt pat\u0161, vaid Zabbixi normaalne k\u00e4itumine?<\/p>\n<p><b>MM:<\/b> \u2013 Jah, me kindlasti salvestame osa muudatusi. Midagi j\u00e4\u00e4b siiski pat\u0161i sisse.<\/p>\n<p><b>A:<\/b> \u2013 Suur t\u00e4nu suurep\u00e4rase ettekande eest! Palun \u00f6elge, kas p\u00e4rast pat\u0161i rakendamist j\u00e4\u00e4b Zabbixi tugi alles ja kuidas edasi uute versioonide peale uuendada? Kas on v\u00f5imalik uuendada Zabbixi teie pat\u0161i j\u00e4rel versioonidele 4.2, 5.0?<\/p>\n<p><b>MM:<\/b> \u2013 Toetuse kohta ei oska ma \u00f6elda. Kui ma oleksin Zabbixi tehniline tugi, siis ilmselt \u00fctleksin ei, sest tegemist on v\u00f5\u00f5ra koodiga. Mis puudutab koodibaasi 4.2, siis meie seisukoht on selline: \u201eMe kavatseme ajaga kaasas k\u00e4ia ja uuendada j\u00e4rgmisele versioonile\u201d. Seega avaldame m\u00f5ne aja jooksul pat\u0161i uuendatud versioonidele. Olen juba ettekandes \u00f6elnud: muudatuste arv versioonide vahel on k\u00fcllaltki v\u00e4ike. Arvan, et \u00fcleminek 3.4-lt 4.0-le v\u00f5ttis aega umbes 15 minutit. Seal on midagi muutunud, aga see ei ole oluliselt t\u00e4htis.<\/p>\n<p><b>A:<\/b> \u2013 Ehk kavatsete toetada oma pat\u0161i ja seda on ohutu rakendada tootmisse, saades hiljem uuendusi?<\/p>\n<p><b>MM:<\/b> \u2013 Me soovitame seda kategooriliselt. See lahendab meie jaoks v\u00e4ga palju probleeme.<\/p>\n<p><b>MT:<\/b> \u2013 Veel tahan uuesti r\u00f5hutada, et muudatused, mis ei puuduta arhitektuuri ega blokeeringut ega j\u00e4rjekordi \u2013 need on moodulised, need on eraldi moodulites. Isegi iseseisvalt, isegi v\u00e4ikeste muudatuste korral, on neid suhteliselt lihtne hallata.<\/p>\n<p><b>MM:<\/b> \u2013 Kui huvi pakuvad detailid, siis \"ClickHouse\" kasutab nn ajaloo raamatukogu. See on lahtiseotatud \u2013 see on \"Elasticsearchi\" toe koopia, st seda saab konfigureerida. Pollimine muudab ainult pollereid. Usume, et see t\u00f6\u00f6tab kaua.<\/p>\n<p><b>A:<\/b> \u2013 Ait\u00e4h palju. Kas oskate \u00f6elda, kas on olemas mingit dokumentatsiooni tehtud muudatuste kohta?<\/p>\n<p><img decoding=\"async\" alt=\"HighLoad++, Mihail Makurov, Maxim \u010cernetsov (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. Ilmselgelt, koos \"ClickHouse'i\" kasutuselev\u00f5tuga, uute pollerite t\u00fc\u00fcpide kasutuselev\u00f5tuga ilmnevad uued konfigureerimisv\u00f5imalused. Viimase slaidi lingil on l\u00fchike kirjeldus, kuidas sellega t\u00f6\u00f6tada.<\/p>\n<h3>Fpingi asendamine nmapiga<\/h3>\n<p>\n<b>A:<\/b> \u2013 Kuidas te selle l\u00f5ppkokkuv\u00f5ttes ellu viisite? V\u00f5ite anda konkreetsed n\u00e4ited: kas teil on strapid ja v\u00e4line skript? Mis kontrollib nii kiiresti nii suurt hulka hoste? Kuidas te need hostid hankite? Kas nmap peab neid kuidagi toitma, saama kuskilt, panema, midagi k\u00e4ivitama?<\/p>\n<p><b>MM:<\/b> \u2013 Lahe. V\u00e4ga hea k\u00fcsimus! Sisu on selline. Muutsime raamatukogu (ICMP-ping, osa \"Zabbixi\" s\u00fcsteemist) ICMP-kontrollide jaoks, kus on m\u00e4\u00e4ratud pakettide arv \u2013 \u00fcks (1), ja kood proovib kasutada nmapi. See t\u00e4hendab, et see on \"Zabbixi\" sisemine t\u00f6\u00f6, see on saanud pingija sisemiseks t\u00f6\u00f6ks. Seega ei ole mingit s\u00fcnkroonimist ega trapperi kasutamist vajalik. See tehti teadlikult, et s\u00fcsteem j\u00e4\u00e4ks terviklikuks ja ei peaks tegelema kahe baas-s\u00fcsteemi s\u00fcnkroonimisega: mida kontrollida, laadida polleri kaudu, ja kas our laadimine ei ole rikki l\u00e4inud? 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 seda kontrollinud. Pollimise kood on nii \"Zabbixis\" kui ka serveris \u00fchesugune. Peaks t\u00f6\u00f6tama. Veel kord r\u00f5hutan: 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 sellise s\u00fcsteemi juures proksi on?\" Ainult NAT'i t\u00f5ttu v\u00f5i j\u00e4lgida m\u00f5ne aeglase kanali kaudu?<\/p>\n<p><b>A:<\/b> \u2013 Kas te kasutate \"Zabbixit\" \u00e4revusn\u00e4itaja (alert) rollis, kui ma \u00f5igesti aru sain. V\u00f5i on teie graafikud (kus on arhiivikiht) l\u00e4inud teise s\u00fcsteemi, nagu Grafana? V\u00f5i te ei kasuta seda funktsiooni?<\/p>\n<p><b>MM:<\/b> \u2013 Ma r\u00f5hutan veel kord: me oleme teinud t\u00e4ieliku integreerimise. Me edastame ajaloo \"ClickHouse'i\", kuid samal ajal muutsime php-frontendi. Php-frontend j\u00f5uab \"ClickHouse'i\" ja k\u00f5iki diagramme tehakse sealt. Peale selle, kui aus olla, meil on osa, mis koostab samast \"ClickHouse'ist\", samadest Zabbixi andmetest andmeid teiste graafiliste kuvamiste s\u00fcsteemide jaoks.<\/p>\n<p><b>MT:<\/b> \u2013 Sealhulgas \"Grafana's\".<\/p>\n<h3>Kuidas tehti otsus ja ressursside eraldamine?<\/h3>\n<p>\n<b>A:<\/b> \u2013 Jagage natuke sisemist k\u00f6\u00f6ki. Kuidas tehti otsus, et tuleb eraldada ressursse toote t\u00f5siseks \u00fcmberkujundamiseks? See on \u00fcldiselt teatud riskid. Ja palun \u00f6elge kontekstis, et kavatsete toetada uusi versioone: kuidas see otsus juhimise seisukohalt \u00f5igustatakse?<\/p>\n<p><b>MM:<\/b> \u2013 Tundub, et ajaloost ei ole me v\u00e4ga h\u00e4sti r\u00e4\u00e4kinud. Me sattusime olukorda, kus midagi tuli teha, ja l\u00e4ksime tegelikult kahe paralleelse meeskonnaga:<\/p>\n<ul>\n<li>\u00dcks tegeles uute meetodite p\u00f5hjal j\u00e4lgimise s\u00fcsteemi k\u00e4ivitamisega: j\u00e4lgimine kui teenus, standardne komplekt avatud l\u00e4htekoodiga lahendusi, mida me kombineerime ja p\u00fc\u00fcame siis muuta \u00e4ri protsessi, et t\u00f6\u00f6tada uue j\u00e4lgimiss\u00fcsteemiga.<\/li>\n<li>Samas oli meil entusiast-programmeerija, kes sellega tegeles (iseendast). Nii juhtus, et tema v\u00f5itis.<\/li>\n<\/ul>\n<p>\n<b>A:<\/b> \u2013 Ja kui suur on meeskond?<\/p>\n<p><b>MT:<\/b> \u2013 Ta on teie ees.<\/p>\n<p><b>A:<\/b> \u2013 Kas nagu alati on vajalik kirglik inimene?<\/p>\n<p><b>MM:<\/b> \u2013 Ma ei tea, mis on kirglik inimene.<\/p>\n<p><b>A:<\/b> \u2013 Antud juhul ilmselt te. Suur t\u00e4nu, te olete toredad.<\/p>\n<p><b>MM:<\/b> \u2013 Ait\u00e4h.<\/p>\n<h3>Patchide kohta Zabbixile<\/h3>\n<p>\n<b>A:<\/b> \u2013 Kas on v\u00f5imalik teie lahendust kohandada ja patchida, \u00fctleme, pollereid, proksi ja osaliselt Zabbixi enda eelt\u00f6\u00f6tlejat; ja nende koost\u00f6\u00f6d? Kas praeguseid arenguid on v\u00f5imalik optimeerida mitmete proksidega s\u00fcsteemi jaoks?<\/p>\n<p><b>MM:<\/b> \u2013 Ma tean, et Zabbixi server koostatakse proksi abil (kompilleeritakse ja saadakse kood). Me ei ole seda tootmises kontrollinud. Ma ei ole selles kindel, aga minu arvates ei kasutata proksi puhul eelt\u00f6\u00f6tlejat. Proksi \u00fclesanne on v\u00f5tta komplekt m\u00f5\u00f5dikuid Zabbixilt, neid koguda (see salvestab ka konfiguratsiooni, kohaliku andmebaasi) ja anda tagasi Zabbixi serverile. Eelt\u00f6\u00f6tlemise teeb siis server, kui ta selle k\u00e4tte saab.<\/p>\n<p>Huvi proksi vastu on arusaadav. Kontrollime seda. See on huvitav teema.<\/p>\n<p><b>A:<\/b> \u2013 Idee oli selline: kui saab pat\u0161ida pollereid, saab neid pat\u0161ida prokside jaoks ja kohandada serveri jaoks eelt\u00f6\u00f6tlust.<\/p>\n<p><b>MM:<\/b> \u2013 Arvan, et asi on isegi lihtsam. Te v\u00f5tate koodi, rakendate pat\u0161i, konfigureerite selle endale sobivaks \u2013 koostate proksiserverid (n\u00e4iteks ODBC abil) ja jagate pat\u0161itud koodi s\u00fcsteemidesse. Kus on vaja \u2013 panete kokku proksid, kus on vaja \u2013 serveri.<\/p>\n<p><b>A:<\/b> \u2013 T\u00e4iendavat proksi edastamise pat\u0161imist serverile ei tule ilmselt teha?<\/p>\n<p><b>MT:<\/b> \u2013 Ei, see on standardselt.<\/p>\n<p><b>MM:<\/b> \u2013 Tegelikult ei k\u00f5lanud \u00fckski ideedest. Oleme alati hoidnud tasakaalu ideede plahvatuse ja muudatuste arvu, hooldatavuse 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=\"M\u00e4ngi 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 huvitavat sisu? Toetage meid, tellides teenuse 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 entry-level 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 jagada serverit \u00f5igesti?<\/a><\/noindex> (saadaval RAID1 ja RAID10 variandid, kuni 24 tuuma ja kuni 40GB DDR4).<\/p>\n<p><b>Dell R730xd on Equinixi Tier IV andmekeskuses Amsterdamis kaks korda odavam?<\/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> Hollandis! <b>Dell R420 \u2014 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB \u2014 alates $99!<\/b><\/b> Lugege sellest <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/company\/ua-hosting\/blog\/329618\/\">Kuidas luua ettev\u00f5tte tasemel infrastruktuuri, kasutades Dell R730xd E5-2650 v4 servereid, mille hind on 9000 eurot, taskukohase hinna eest?<\/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 5.0.1.1 - 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\/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) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"et_EE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\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\/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 (Inter\u0441\u0432\u044f\u0437\u044c): Zabbix, 100kNVPS \u00fchel serveril | ProHoster","description":"J\u00e4rgmine konverents HighLoad++ toimub 6. ja 7. aprill 2020 Peterburis. \u00dcksikasjad ja piletid lingil.","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.","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","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/et\/wp-json\/wp\/v2\/posts\/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}]}}