NÄkamÄ HighLoad++ konference notiks 6. gada 7. un 2020. aprÄ«lÄ« SanktpÄterburgÄ SÄ«kÄka informÄcija un biļetes
* UzraudzÄ«ba - tieÅ”saistÄ un analÄ«tika.
* ZABBIX platformas pamata ierobežojumi.
* RisinÄjums analÄ«tikas krÄtuves mÄrogoÅ”anai.
* ZABBIX servera optimizÄcija.
* UI optimizÄcija.
* Pieredze sistÄmas darbÄ«bÄ ar slodzi, kas pÄrsniedz 40 k NVPS.
* ÄŖsi secinÄjumi.
Mihails Makurovs (turpmÄk ā MM): - Sveiki visiem!
Maksims ÄerÅecovs (turpmÄk ā MCH): - Labdien!
MM: ā Ä»aujiet man iepazÄ«stinÄt ar Maksimu. Makss ir talantÄ«gs inženieris, labÄkais tÄ«klu veidotÄjs, ko es pazÄ«stu. Maxim nodarbojas ar tÄ«kliem un pakalpojumiem, to attÄ«stÄ«bu un darbÄ«bu.
MCH: ā Un es gribÄtu jums pastÄstÄ«t par Mihailu. Mihails ir C izstrÄdÄtÄjs. ViÅÅ” mÅ«su uzÅÄmumam uzrakstÄ«ja vairÄkus augstas slodzes satiksmes apstrÄdes risinÄjumus. MÄs dzÄ«vojam un strÄdÄjam UrÄlos, skarbo vÄ«ru pilsÄtÄ ÄeļabinskÄ, uzÅÄmumÄ Intersvyaz. MÅ«su uzÅÄmums sniedz interneta un kabeļtelevÄ«zijas pakalpojumus vienam miljonam cilvÄku 16 pilsÄtÄs.
MM: ā Un ir vÄrts teikt, ka Intersvyaz ir daudz vairÄk nekÄ tikai pakalpojumu sniedzÄjs, tas ir IT uzÅÄmums. LielÄko daļu mÅ«su risinÄjumu izstrÄdÄ mÅ«su IT nodaļa.
A: no serveriem, kas apstrÄdÄ trafiku, uz zvanu centru un mobilo lietojumprogrammu. IT nodaÄ¼Ä tagad ir aptuveni 80 cilvÄku ar ļoti, ļoti dažÄdÄm kompetencÄm.
Par Zabbix un tÄ arhitektÅ«ru
MCH: - Un tagad es mÄÄ£inÄÅ”u uzstÄdÄ«t personÄ«go rekordu un vienÄ minÅ«tÄ pateikt, kas ir Zabbix (turpmÄk tekstÄ "Zabbix").
Zabbix pozicionÄ sevi kÄ uzÅÄmuma lÄ«meÅa gatavu uzraudzÄ«bas sistÄmu. Tam ir daudzas funkcijas, kas atvieglo dzÄ«vi: uzlaboti eskalÄcijas noteikumi, API integrÄcijai, grupÄÅ”anai un saimniekdatoru un metrikas automÄtiskai noteikÅ”anai. Zabbix ir tÄ sauktie mÄrogoÅ”anas rÄ«ki - starpniekserveri. Zabbix ir atvÄrtÄ pirmkoda sistÄma.
ÄŖsumÄ par arhitektÅ«ru. MÄs varam teikt, ka tas sastÄv no trim sastÄvdaļÄm:
- Serveris. RakstÄ«ts C. Ar diezgan sarežģītu apstrÄdi un informÄcijas pÄrsÅ«tÄ«Å”anu starp pavedieniem. TajÄ notiek visa apstrÄde: no saÅemÅ”anas lÄ«dz saglabÄÅ”anai datu bÄzÄ.
- Visi dati tiek glabÄti datu bÄzÄ. Zabbix atbalsta MySQL, PostreSQL un Oracle.
- TÄ«mekļa saskarne ir rakstÄ«ta PHP. LielÄkajÄ daÄ¼Ä sistÄmu tas ir aprÄ«kots ar Apache serveri, taÄu tas darbojas efektÄ«vÄk kombinÄcijÄ ar nginx + php.
Å odien mÄs vÄlamies pastÄstÄ«t vienu stÄstu no mÅ«su uzÅÄmuma dzÄ«ves, kas saistÄ«ts ar Zabbix...
StÄsts no uzÅÄmuma Intersvyaz dzÄ«ves. Kas mums ir un kas mums vajadzÄ«gs?
Pirms 5 vai 6 mÄneÅ”iem. KÄdu dienu pÄc darba...
MCH: - MiÅ”a, sveiks! PriecÄjos, ka izdevÄs tevi notvert ā ir saruna. Mums atkal bija problÄmas ar uzraudzÄ«bu. Lielas avÄrijas laikÄ viss noritÄja lÄni un nebija informÄcijas par tÄ«kla stÄvokli. DiemžÄl Ŕī nav pirmÄ reize, kad tas notiek. Man vajag tavu palÄ«dzÄ«bu. PanÄksim, lai mÅ«su uzraudzÄ«ba darbotos jebkuros apstÄkļos!
MM: ā Bet vispirms sinhronizÄsimies. Neesmu tur skatÄ«jies pÄris gadus. Cik atceros, mÄs pametÄm Nagios un pÄrgÄjÄm uz Zabbix pirms kÄdiem 8 gadiem. Un tagad Ŕķiet, ka mums ir 6 jaudÄ«gi serveri un apmÄram ducis starpniekserveru. Vai es kaut ko sajaucu?
MCH: - GandrÄ«z. 15 serveri, no kuriem daži ir virtuÄlÄs maŔīnas. Pats galvenais, ka tas mÅ«s neglÄbj brÄ«dÄ«, kad mums tas visvairÄk vajadzÄ«gs. TÄpat kÄ nelaimes gadÄ«jumÄ - serveri palÄninÄs, un jÅ«s neko nevarat redzÄt. MÄs mÄÄ£inÄjÄm optimizÄt konfigurÄciju, taÄu tas nenodroÅ”inÄja optimÄlu veiktspÄjas pieaugumu.
MM: - Tas ir skaidrs. Tu kaut ko paskatÄ«jies, kaut ko jau izrakÄjis no diagnostikas?
MCH: ā PirmÄ lieta, ar ko jums jÄtiek galÄ, ir datubÄze. MySQL tiek pastÄvÄ«gi ielÄdÄts, glabÄjot jaunus rÄdÄ«tÄjus, un, kad Zabbix sÄk Ä£enerÄt virkni notikumu, datu bÄze burtiski uz dažÄm stundÄm pÄriet. Es jau stÄstÄ«ju par konfigurÄcijas optimizÄÅ”anu, bet burtiski Å”ogad viÅi atjauninÄja aparatÅ«ru: serveriem ir vairÄk nekÄ simts gigabaitu atmiÅas un disku masÄ«vi uz SSD RAID ā nav jÄgas to lineÄri palielinÄt ilgtermiÅÄ. Ko mÄs darÄm?
MM: - Tas ir skaidrs. KopumÄ MySQL ir LTP datu bÄze. AcÄ«mredzot tas vairs nav piemÄrots mÅ«su lieluma metriku arhÄ«va glabÄÅ”anai. IzdomÄsim.
MCH: - Ejam!
Zabbix un Clickhouse integrÄcija hakatona rezultÄtÄ
PÄc kÄda laika mÄs saÅÄmÄm interesantus datus:
LielÄko daļu vietas mÅ«su datubÄzÄ aizÅÄma metrikas arhÄ«vs, un mazÄk nekÄ 1% tika izmantots konfigurÄcijai, veidnÄm un iestatÄ«jumiem. LÄ«dz tam laikam mÄs jau vairÄk nekÄ gadu izmantojÄm lielo datu risinÄjumu, kura pamatÄ ir Clickhouse. KustÄ«bas virziens mums bija skaidrs. MÅ«su pavasara hakatonÄ es uzrakstÄ«ju Zabbix integrÄciju ar Clickhouse serverim un priekÅ”galam. TajÄ laikÄ Zabbix jau bija ElasticSearch atbalsts, un mÄs nolÄmÄm tos salÄ«dzinÄt.
Clickhouse un Elasticsearch salÄ«dzinÄjums
MM: ā SalÄ«dzinÄjumam mÄs Ä£enerÄjÄm tÄdu paÅ”u slodzi, kÄdu nodroÅ”ina Zabbix serveris, un apskatÄ«jÄm, kÄ sistÄmas darbosies. MÄs rakstÄ«jÄm datus 1000 rindu grupÄs, izmantojot CURL. MÄs jau iepriekÅ” pieÅÄmÄm, ka Clickhouse bÅ«tu efektÄ«vÄks Zabbix slodzes profilam. RezultÄti pat pÄrsniedza mÅ«su cerÄ«bas:
TÄdos paÅ”os testa apstÄkļos Clickhouse ierakstÄ«ja trÄ«s reizes vairÄk datu. TajÄ paÅ”Ä laikÄ abas sistÄmas ļoti efektÄ«vi patÄrÄja (neliels resursu apjoms), lasot datus. Bet Elastics ierakstÄ«Å”anas laikÄ prasÄ«ja lielu procesora daudzumu:
KopumÄ procesora patÄriÅa un Ätruma ziÅÄ Clickhouse bija ievÄrojami pÄrÄks par Elastix. TajÄ paÅ”Ä laikÄ datu saspieÅ”anas dÄļ Clickhouse izmanto 11 reizes mazÄk cietÄ diska un veic aptuveni 30 reizes mazÄk darbÄ«bu ar disku:
MCH: ā JÄ, Clickhouse darbs ar diska apakÅ”sistÄmu tiek Ä«stenots ļoti efektÄ«vi. Varat izmantot milzÄ«gus SATA diskus datu bÄzÄm un iegÅ«t rakstÄ«Å”anas Ätrumu simtiem tÅ«kstoÅ”u rindu sekundÄ. SÄkotnÄjÄ sistÄma atbalsta sadalÄ«Å”anu, replikÄciju un ir ļoti viegli konfigurÄjama. MÄs esam vairÄk nekÄ apmierinÄti ar tÄ lietoÅ”anu visa gada garumÄ.
Lai optimizÄtu resursus, varat instalÄt Clickhouse blakus esoÅ”ajai galvenajai datubÄzei un tÄdÄjÄdi ietaupÄ«t daudz CPU laika un diska darbÄ«bu. MÄs esam pÄrvietojuÅ”i metrikas arhÄ«vu uz esoÅ”ajiem Clickhouse klasteriem:
MÄs tik ļoti atslogojÄm galveno MySQL datubÄzi, ka varÄjÄm to apvienot vienÄ maŔīnÄ ar Zabbix serveri un pamest MySQL paredzÄto serveri.
KÄ Zabbix darbojas aptauja?
4 mÄneÅ”iem
MM: ā Vai varam aizmirst par problÄmÄm ar bÄzi?
MCH: - Tas tiesa! VÄl viena problÄma, kas mums jÄatrisina, ir lÄna datu vÄkÅ”ana. Tagad visi mÅ«su 15 starpniekserveri ir pÄrslogoti ar SNMP un aptaujas procesiem. Un nav citas iespÄjas, kÄ tikai instalÄt jaunus un jaunus serverus.
MM: - Lieliski. Bet vispirms pastÄstiet mums, kÄ Zabbix darbojas aptauja?
MCH: ā ÄŖsÄk sakot, ir 20 metriku veidi un ducis veidu, kÄ tos iegÅ«t. Zabbix var vÄkt datus vai nu āpieprasÄ«juma-atbildesā režīmÄ, vai gaidÄ«t jaunus datus, izmantojot āTrapper Interfaceā.
Ir vÄrts atzÄ«mÄt, ka oriÄ£inÄlajÄ Zabbix Ŕī metode (Trapper) ir ÄtrÄkÄ.
Slodzes sadalei ir starpniekserveri:
Starpniekserveri var veikt tÄdas paÅ”as savÄkÅ”anas funkcijas kÄ Zabbix serveris, saÅemot no tÄ uzdevumus un nosÅ«tot savÄktos rÄdÄ«tÄjus caur Trapper saskarni. Å is ir oficiÄli ieteiktais slodzes sadales veids. Starpniekserveri ir noderÄ«gi arÄ« attÄlÄs infrastruktÅ«ras uzraudzÄ«bai, kas darbojas, izmantojot NAT vai lÄnu kanÄlu:
MM: ā Ar arhitektÅ«ru viss ir skaidrs. JÄskatÄs avoti...
PÄc pÄris dienÄm
StÄsts par to, kÄ nmap fping uzvarÄja
MM: "Man Ŕķiet, ka es kaut ko izraku."
MCH: - Pasaki man!
MM: ā Es atklÄju, ka, pÄrbaudot pieejamÄ«bu, Zabbix vienlaikus pÄrbauda ne vairÄk kÄ 128 saimniekdatorus. Es mÄÄ£inÄju palielinÄt Å”o skaitli lÄ«dz 500 un noÅemt starppakeÅ”u intervÄlu to ping (ping) ā tas dubultoja veiktspÄju. Bet es gribÄtu lielÄkus skaitļus.
MCH: ā ManÄ praksÄ man dažreiz ir jÄpÄrbauda tÅ«kstoÅ”iem saimnieku pieejamÄ«ba, un es nekad neesmu redzÄjis neko ÄtrÄku par nmap. Esmu pÄrliecinÄts, ka tas ir ÄtrÄkais veids. IzmÄÄ£inÄsim! Mums ir ievÄrojami jÄpalielina saimniekdatoru skaits vienÄ iterÄcijÄ.
MM: ā PÄrbaudÄ«t vairÄk nekÄ pieci simti? 600?
MCH: - Vismaz pÄris tÅ«kstoÅ”i.
MM: - LABI. VissvarÄ«gÄkais, ko gribÄju teikt, ir tas, ka es atklÄju, ka lielÄkÄ daļa aptauju pakalpojumÄ Zabbix tiek veiktas sinhroni. Mums tas noteikti ir jÄmaina uz asinhrono režīmu. Tad mÄs varam dramatiski palielinÄt aptaujas dalÄ«bnieku savÄkto metrikas skaitu, it Ä«paÅ”i, ja palielinÄsim metrikas skaitu vienÄ iterÄcijÄ.
MCH: - Lieliski! Un tad, kad?
MM: ā KÄ parasti, vakar.
MCH: - MÄs salÄ«dzinÄjÄm abas fping un nmap versijas:
Paredzams, ka lielam skaitam saimniekdatoru nmap bÅ«s lÄ«dz pat piecÄm reizÄm efektÄ«vÄks. TÄ kÄ nmap pÄrbauda tikai pieejamÄ«bu un reakcijas laiku, mÄs pÄrcÄlÄm zaudÄjumu aprÄÄ·inu uz trigeriem un ievÄrojami samazinÄjÄm pieejamÄ«bas pÄrbaudes intervÄlus. MÄs noskaidrojÄm, ka nmap optimÄlais saimniekdatoru skaits ir aptuveni 4 tÅ«kstoÅ”i vienÄ iterÄcijÄ. Nmap ļÄva mums trÄ«s reizes samazinÄt CPU izmaksas par pieejamÄ«bas pÄrbaudÄm un samazinÄt intervÄlu no 120 sekundÄm lÄ«dz 10.
Aptauju optimizÄcija
MM: āTad mÄs sÄkÄm veikt aptaujas. MÅ«s galvenokÄrt interesÄja SNMP noteikÅ”ana un aÄ£enti. Zabbix aptaujÄ tiek veikta sinhroni, un ir veikti Ä«paÅ”i pasÄkumi, lai palielinÄtu sistÄmas efektivitÄti. SinhronÄ režīmÄ saimniekdatora nepieejamÄ«ba izraisa ievÄrojamu aptaujas pasliktinÄÅ”anos. Ir vesela stÄvokļu sistÄma, ir Ä«paÅ”i procesi - tÄ sauktie nesasniedzamie aptauju veicÄji, kas strÄdÄ tikai ar nesasniedzamiem saimniekiem:
Å is ir komentÄrs, kas parÄda stÄvokļa matricu, visu pÄreju sistÄmas sarežģītÄ«bu, kas nepiecieÅ”ama, lai sistÄma saglabÄtu efektivitÄti. TurklÄt pati sinhronÄ aptauja ir diezgan lÄna:
TÄpÄc tÅ«kstoÅ”iem polleru straumju desmitiem starpniekserveru nevarÄja savÄkt mums nepiecieÅ”amo datu apjomu. AsinhronÄ ievieÅ”ana atrisinÄja ne tikai problÄmas ar pavedienu skaitu, bet arÄ« ievÄrojami vienkÄrÅ”oja nepieejamo saimniekdatoru stÄvokļa sistÄmu, jo jebkuram skaitam, kas tika pÄrbaudÄ«ts vienÄ aptaujas iterÄcijÄ, maksimÄlais gaidÄ«Å”anas laiks bija 1 taimauts:
TurklÄt mÄs modificÄjÄm un uzlabojÄm SNMP pieprasÄ«jumu aptaujas sistÄmu. Fakts ir tÄds, ka lielÄkÄ daļa cilvÄku nevar atbildÄt uz vairÄkiem SNMP pieprasÄ«jumiem vienlaikus. TÄpÄc mÄs izveidojÄm hibrÄ«da režīmu, kad viena un tÄ paÅ”a saimniekdatora SNMP aptauja tiek veikta asinhroni:
Tas tiek darÄ«ts visam saimnieku komplektam. Å is režīms galu galÄ nav lÄnÄks par pilnÄ«gi asinhrono režīmu, jo pusotra simta SNMP vÄrtÄ«bu aptauja joprojÄm ir daudz ÄtrÄka par 1 taimautu.
MÅ«su eksperimenti ir parÄdÄ«juÅ”i, ka optimÄlais pieprasÄ«jumu skaits vienÄ iterÄcijÄ ir aptuveni 8 tÅ«kstoÅ”i ar SNMP aptauju. KopumÄ pÄreja uz asinhrono režīmu ļÄva mums paÄtrinÄt aptaujas veiktspÄju 200 reizes, vairÄkus simtus reižu.
MCH: ā RezultÄtÄ iegÅ«tÄs aptauju optimizÄcijas parÄdÄ«ja, ka mÄs varam ne tikai atbrÄ«voties no visiem starpniekserveriem, bet arÄ« samazinÄt daudzu pÄrbaužu intervÄlus, un starpniekserveri vairs nebÅ«s nepiecieÅ”ami kÄ slodzes dalÄ«Å”anas veids.
ApmÄram pirms trim mÄneÅ”iem
Mainiet arhitektūru - palieliniet slodzi!
MM: - Nu, Maks, vai ir pienÄcis laiks kļūt produktÄ«vam? Man vajag jaudÄ«gu serveri un labu inženieri.
MCH: - Labi, plÄnosim. Ir pÄdÄjais laiks pÄriet no miruÅ”Ä punkta ā 5 tÅ«kstoÅ”i metrikas sekundÄ.
RÄ«ts pÄc jauninÄÅ”anas
MCH: - MiÅ”a, mÄs paÅ”i atjauninÄjÄmies, bet lÄ«dz rÄ«tam ripinÄjÄm atpakaļ... Uzminiet, kÄdu Ätrumu mums izdevÄs sasniegt?
MM: ā maksimums 20 tÅ«kstoÅ”i.
MCH: - JÄ, 25! DiemžÄl esam tur, kur sÄkÄm.
MM: - KÄpÄc? Vai veicat kÄdu diagnostiku?
MCH: - JÄ, protams! Å eit, piemÄram, ir interesants tops:
MM: - SkatÄ«simies. Es redzu, ka esam izmÄÄ£inÄjuÅ”i milzÄ«gu skaitu aptaujas pavedienu:
Bet tajÄ paÅ”Ä laikÄ viÅi nevarÄja pÄrstrÄdÄt sistÄmu pat uz pusi:
Un kopÄjÄ veiktspÄja ir diezgan maza, aptuveni 4 tÅ«kstoÅ”i metrikas sekundÄ:
Vai ir vÄl kas?
MCH: ā JÄ, viena no aptaujÄtÄjiem:
MM: ā Å eit skaidri redzams, ka aptaujas process gaida āsemaforusā. Å Ä«s ir slÄdzenes:
MCH: - Neskaidrs.
MM: ā Skatieties, Ŕī ir lÄ«dzÄ«ga situÄcijai, kad virkne pavedienu mÄÄ£ina strÄdÄt ar resursiem, ar kuriem vienlaikus var strÄdÄt tikai viens. Tad viss, ko viÅi var darÄ«t, ir koplietot Å”o resursu laika gaitÄ:
Un kopÄjo veiktspÄju, strÄdÄjot ar Å”Ädu resursu, ierobežo viena kodola Ätrums:
Ir divi veidi, kÄ atrisinÄt Å”o problÄmu.
Jauniniet iekÄrtas aparatÅ«ru, pÄrslÄdzieties uz ÄtrÄkiem kodoliem:
Vai arī mainiet arhitektūru un vienlaikus mainiet slodzi:
MCH: - Starp citu, testa maŔīnÄ mÄs izmantosim mazÄk kodolu nekÄ kaujas maŔīnÄ, taÄu tie ir 1,5 reizes ÄtrÄki pÄc frekvences uz vienu kodolu!
MM: - Skaidrs? JÄskatÄs servera kods.
Datu ceļŔ Zabbix serverī
MCH: - Lai to noskaidrotu, mÄs sÄkÄm analizÄt, kÄ dati tiek pÄrsÅ«tÄ«ti Zabbix serverÄ«:
ForÅ”a bilde, vai ne? ApskatÄ«sim to soli pa solim, lai tas bÅ«tu vairÄk vai mazÄk skaidrs. Ir pavedieni un pakalpojumi, kas ir atbildÄ«gi par datu vÄkÅ”anu:
ViÅi pÄrsÅ«ta savÄktos rÄdÄ«tÄjus, izmantojot ligzdu, uz priekÅ”apstrÄdÄtÄja pÄrvaldnieku, kur tie tiek saglabÄti rindÄ:
āPirmapstrÄdÄtÄja pÄrvaldnieksā nosÅ«ta datus saviem darbiniekiem, kuri izpilda priekÅ”apstrÄdes instrukcijas un atdod tos atpakaļ caur to paÅ”u ligzdu:
PÄc tam priekÅ”apstrÄdÄtÄju pÄrvaldnieks tos saglabÄ vÄstures keÅ”atmiÅÄ:
No turienes tos paÅem vÄstures grÄvÄji, kas veic diezgan daudz funkciju: piemÄram, aprÄÄ·ina trigerus, aizpilda vÄrtÄ«bu keÅ”atmiÅu un, pats galvenais, saglabÄ metriku vÄstures krÄtuvÄ. KopumÄ process ir sarežģīts un ļoti mulsinoÅ”s.
MM: ā PirmÄ lieta, ko mÄs redzÄjÄm, bija, ka lielÄkÄ daļa pavedienu sacenÅ”as par tÄ saukto ākonfigurÄcijas keÅ”atmiÅuā (atmiÅas apgabalu, kurÄ tiek glabÄtas visas servera konfigurÄcijas). Pavedieni, kas ir atbildÄ«gi par datu vÄkÅ”anu, Ä«paÅ”i daudz bloÄ·Ä:
...jo konfigurÄcija saglabÄ ne tikai metriku ar to parametriem, bet arÄ« rindas, no kurÄm aptaujas veicÄji Åem informÄciju par tÄlÄko rÄ«cÄ«bu. Ja ir daudz aptaujas dalÄ«bnieku un viens bloÄ·Ä konfigurÄciju, pÄrÄjie gaida pieprasÄ«jumus:
Aptauju veicÄjiem nevajadzÄtu konfliktÄt
TÄpÄc pirmais, ko darÄ«jÄm, bija rindu sadalÄ«jums 4 daļÄs un ļÄva aptaujÄtÄjiem bloÄ·Ät Ŕīs rindas, Ŕīs daļas vienlaicÄ«gi, droÅ”os apstÄkļos:
Tas novÄrsa konkurenci par konfigurÄcijas keÅ”atmiÅu, un aptauju veicÄju Ätrums ievÄrojami palielinÄjÄs. Bet tad mÄs saskÄrÄmies ar faktu, ka priekÅ”apstrÄdÄtÄja vadÄ«tÄjs sÄka uzkrÄt darbu rindu:
PriekÅ”procesora pÄrvaldniekam jÄspÄj noteikt prioritÄtes
Tas notika gadÄ«jumos, kad viÅam pietrÅ«ka snieguma. Tad viss, ko viÅÅ” varÄja darÄ«t, bija uzkrÄt pieprasÄ«jumus no datu vÄkÅ”anas procesiem un pievienot to buferi, lÄ«dz tas patÄrÄja visu atmiÅu un avarÄja:
Lai atrisinÄtu Å”o problÄmu, mÄs pievienojÄm otru kontaktligzdu, kas bija Ä«paÅ”i paredzÄta darbiniekiem:
TÄdÄjÄdi priekÅ”apstrÄdÄtÄja vadÄ«tÄjam bija iespÄja noteikt sava darba prioritÄtes un, ja buferis palielinÄs, uzdevums ir palÄninÄt izÅemÅ”anu, dodot darbiniekiem iespÄju izmantot Å”o buferi:
Tad mÄs atklÄjÄm, ka viens no palÄninÄÅ”anÄs iemesliem bija paÅ”i strÄdnieki, jo viÅi sacenÅ”as par resursiem, kas viÅu darbam bija pilnÄ«gi nesvarÄ«gi. MÄs dokumentÄjÄm Å”o problÄmu kÄ kļūdu labojumu, un tÄ jau ir atrisinÄta jaunajÄs Zabbix versijÄs:
MÄs palielinÄm kontaktligzdu skaitu - mÄs iegÅ«stam rezultÄtu
TurklÄt pats priekÅ”procesora pÄrvaldnieks kļuva par saÅ”aurinÄjumu, jo tas ir viens pavediens. Tas balstÄ«jÄs uz pamata Ätrumu, nodroÅ”inot maksimÄlo Ätrumu aptuveni 70 tÅ«kstoÅ”i metrikas sekundÄ:
TÄpÄc mÄs izveidojÄm Äetrus strÄdniekus ar Äetriem kontaktligzdu komplektiem:
Un tas ļÄva mums palielinÄt Ätrumu lÄ«dz aptuveni 130 tÅ«kstoÅ”iem metriku:
Izaugsmes nelinearitÄte skaidrojama ar to, ka ir parÄdÄ«jusies konkurence par vÄstures keÅ”atmiÅu. Par to sacentÄs 4 priekÅ”apstrÄdÄtÄju vadÄ«tÄji un vÄstures gremdÄtÄji. Å ajÄ brÄ«dÄ« mÄs saÅÄmÄm aptuveni 130 tÅ«kstoÅ”us metriku sekundÄ testa iekÄrtÄ, izmantojot to aptuveni 95% procesora:
ApmÄram pirms 2,5 mÄneÅ”iem
Atteikums no snmp-community palielinÄja NVP pusotru reizi
MM: ā Maks, man vajag jaunu testa maŔīnu! MÄs vairs neiederamies paÅ”reizÄjÄ.
MCH: - Kas tev tagad ir?
MM: ā Tagad ā 130 XNUMX NVP un plauktam gatavs procesors.
MCH: - Oho! ForÅ”i! Pagaidiet, man ir divi jautÄjumi. PÄc maniem aprÄÄ·iniem, mÅ«su nepiecieÅ”amÄ«ba ir aptuveni 15-20 tÅ«kstoÅ”i metriku sekundÄ. KÄpÄc mums vajag vairÄk?
MM: "Es gribu pabeigt darbu." Es gribÄtu redzÄt, cik daudz mÄs varam izspiest no Ŕīs sistÄmas.
MCH: - Betā¦
MM: "Bet tas ir bezjÄdzÄ«gi biznesam."
MCH: - Tas ir skaidrs. Un otrs jautÄjums: vai mÄs paÅ”i, bez izstrÄdÄtÄja palÄ«dzÄ«bas varam atbalstÄ«t to, kas mums ir tagad?
MM: - Es nedomÄju. KonfigurÄcijas keÅ”atmiÅas darbÄ«bas maiÅa ir problÄma. Tas ietekmÄ izmaiÅas lielÄkajÄ daÄ¼Ä pavedienu, un to ir diezgan grÅ«ti uzturÄt. VisticamÄk, to bÅ«s ļoti grÅ«ti uzturÄt.
MCH: "Tad mums ir vajadzÄ«ga kÄda veida alternatÄ«va."
MM: ā Ir tÄds variants. MÄs varam pÄriet uz Ätrajiem kodoliem, vienlaikus atsakoties no jaunÄs bloÄ·ÄÅ”anas sistÄmas. MÄs joprojÄm iegÅ«sim 60-80 tÅ«kstoÅ”u metriku veiktspÄju. TajÄ paÅ”Ä laikÄ mÄs varam atstÄt visu pÄrÄjo kodu. Darbosies Clickhouse un asinhronÄ aptauja. Un to bÅ«s viegli uzturÄt.
MCH: - ApbrÄ«nojami! Iesaku Å”eit apstÄties.
PÄc servera puses optimizÄcijas mÄs beidzot varÄjÄm palaist jauno kodu ražoÅ”anÄ. MÄs atteicÄmies no dažÄm izmaiÅÄm, pÄrejot uz maŔīnu ar Ätriem kodoliem un samazinot koda izmaiÅu skaitu. MÄs esam arÄ« vienkÄrÅ”ojuÅ”i konfigurÄciju un, ja iespÄjams, novÄrsuÅ”i makro datu vienumos, jo tie ievieÅ” papildu bloÄ·ÄÅ”anu.
PiemÄram, atteikÅ”anÄs no snmp-community makro, kas bieži ir atrodams dokumentÄcijÄ un piemÄros, mÅ«su gadÄ«jumÄ Ä¼Äva vÄl vairÄk paÄtrinÄt NVP aptuveni 1,5 reizes.
PÄc divÄm ražoÅ”anas dienÄm
Notikumu vÄstures uznirstoÅ”o logu noÅemÅ”ana
MCH: ā MiÅ”a, mÄs izmantojam sistÄmu divas dienas, un viss darbojas. Bet tikai tad, kad viss darbojas! BijÄm plÄnojuÅ”i darbu ar diezgan liela tÄ«kla segmenta nodoÅ”anu, un atkal ar rokÄm pÄrbaudÄ«jÄm, kas uzkÄpa un kas nÄ.
MM: - Nevar bÅ«t! MÄs visu pÄrbaudÄ«jÄm 10 reizes. Serveris nekavÄjoties apstrÄdÄ pat pilnÄ«gu tÄ«kla nepieejamÄ«bu.
MCH: - JÄ, es visu saprotu: serveris, datu bÄze, tops, austats, žurnÄli - viss ir Ätri... Bet mÄs skatÄmies uz tÄ«mekļa saskarni, un serverÄ« ir procesors āplauktÄā un Å”is:
MM: - Tas ir skaidrs. SkatÄ«simies tÄ«meklÄ«. MÄs noskaidrojÄm, ka situÄcijÄ, kad bija liels skaits aktÄ«vu incidentu, lielÄkÄ daļa tieÅ”saistes logrÄ«ku sÄka darboties ļoti lÄni:
Iemesls tam bija incidentu vÄstures uznirstoÅ”o logu Ä£enerÄÅ”ana, kas tiek Ä£enerÄti katram saraksta vienumam. TÄpÄc mÄs atteicÄmies no Å”o logu Ä£enerÄÅ”anas (kodÄ komentÄjÄm 5 rindiÅas), un tas atrisinÄja mÅ«su problÄmas.
LogrÄ«ku ielÄdes laiks, pat ja tie nav pieejami, ir samazinÄts no vairÄkÄm minÅ«tÄm lÄ«dz mums pieÅemamÄm 10-15 sekundÄm, un vÄsturi joprojÄm var skatÄ«t, noklikŔķinot uz laika:
PÄc darba. pirms 2 mÄneÅ”iem
MCH: - MiÅ”a, tu ej prom? Mums jÄrunÄ.
MM: - Es nedomÄju. Atkal kaut kas ar Zabbix?
MCH: - NÄ, atpÅ«ties! Es tikai gribÄju teikt: viss darbojas, paldies! Man ir alus.
Zabbix ir efektīvs
Zabbix ir diezgan universÄla un bagÄtÄ«ga sistÄma un funkcija. To var izmantot nelielÄm instalÄcijÄm, bet, pieaugot vajadzÄ«bÄm, tas ir jÄoptimizÄ. Lai saglabÄtu lielu metrikas arhÄ«vu, izmantojiet piemÄrotu krÄtuvi:
- varat izmantot iebÅ«vÄtos rÄ«kus integrÄcijas veidÄ ar Elasticsearch vai vÄstures augÅ”upielÄdi teksta failos (pieejams no XNUMX. versijas);
- JÅ«s varat izmantot mÅ«su pieredzi un integrÄciju ar Clickhouse.
Lai ievÄrojami palielinÄtu metriku apkopoÅ”anas Ätrumu, apkopojiet tos, izmantojot asinhronas metodes, un pÄrsÅ«tiet tos caur trapper interfeisu uz Zabbix serveri; vai arÄ« varat izmantot plÄksteri, lai padarÄ«tu Zabbix pollerus asinhronus.
Zabbix ir rakstÄ«ts C valodÄ un ir diezgan efektÄ«vs. VairÄku arhitektÅ«ras vÄjo vietu atrisinÄÅ”ana ļauj vÄl vairÄk palielinÄt tÄ veiktspÄju un, pÄc mÅ«su pieredzes, iegÅ«t vairÄk nekÄ 100 tÅ«kstoÅ”us metriku viena procesora maŔīnÄ.
Tas pats Zabbix plÄksteris
MM: ā Es vÄlos piebilst dažus punktus. Viss paÅ”reizÄjais pÄrskats, visi testi, numuri ir norÄdÄ«ti mÅ«su izmantotajai konfigurÄcijai. Tagad mÄs no tÄ Åemam aptuveni 20 tÅ«kstoÅ”us metrikas sekundÄ. Ja jÅ«s mÄÄ£inÄt saprast, vai tas jums derÄs, varat salÄ«dzinÄt. Å odien apspriestais ir ievietots GitHub ielÄpa veidÄ:
PlÄksteris ietver:
- pilnÄ«ga integrÄcija ar Clickhouse (gan Zabbix serveri, gan frontend);
- problÄmu risinÄÅ”ana ar priekÅ”procesora vadÄ«tÄju;
- asinhronÄ aptauja.
PlÄksteris ir savietojams ar visu 4. versiju, ieskaitot lts. VisticamÄk, ar minimÄlÄm izmaiÅÄm tas darbosies 3.4 versijÄ.
Paldies par uzmanību.
jautÄjumi
KlausÄ«tÄju jautÄjums (turpmÄk ā A): ā Labdien! Sakiet, lÅ«dzu, vai jums ir plÄni intensÄ«vai mijiedarbÄ«bai ar Zabbix komandu vai ar viÅiem ar jums, lai tas nebÅ«tu ielÄps, bet gan normÄla Zabbix uzvedÄ«ba?
MM: ā JÄ, mÄs noteikti veiksim dažas izmaiÅas. Kaut kas notiks, kaut kas paliks ielÄps.
A: ā Liels paldies par lielisko ziÅojumu! Sakiet, lÅ«dzu, pÄc ielÄpa uzlikÅ”anas saglabÄsies atbalsts no Zabbix un kÄ turpinÄt atjauninÄÅ”anu uz augstÄkÄm versijÄm? Vai bÅ«s iespÄjams atjauninÄt Zabbix pÄc ielÄpa uz 4.2, 5.0?
MM: ā Par atbalstu neko nevaru teikt. Ja es bÅ«tu Zabbix tehniskais atbalsts, es droÅ”i vien teiktu nÄ, jo tas ir kÄda cita kods. AttiecÄ«bÄ uz 4.2 kodu bÄzi mÅ«su nostÄja ir Å”Äda: "MÄs virzÄ«simies ar laiku un atjauninÄsim sevi nÄkamajÄ versijÄ." TÄpÄc kÄdu laiku mÄs publicÄsim ielÄpu atjauninÄtajÄm versijÄm. Es jau ziÅojumÄ teicu: izmaiÅu skaits ar versijÄm joprojÄm ir diezgan mazs. Es domÄju, ka pÄreja no 3.4 uz 4 mums aizÅÄma apmÄram 15 minÅ«tes. Kaut kas tur mainÄ«jÄs, bet ne Ä«paÅ”i svarÄ«gi.
A: ā TÄtad jÅ«s plÄnojat atbalstÄ«t savu ielÄpu un varat droÅ”i instalÄt to ražoÅ”anÄ un kaut kÄdÄ veidÄ saÅemt atjauninÄjumus nÄkotnÄ?
MM: ā MÄs to ļoti iesakÄm. Tas mums atrisina daudzas problÄmas.
MCH: ā VÄlreiz gribu vÄrst uzmanÄ«bu uz to, ka izmaiÅas, kas neskar arhitektÅ«ru un neskar bloÄ·ÄÅ”anu vai rindas, ir modulÄras, tÄs ir atseviŔķos moduļos. Pat ar nelielÄm izmaiÅÄm tos var viegli uzturÄt.
MM: ā Ja interesÄ detaļas, tad āClickhouseā izmanto tÄ saukto vÄstures bibliotÄku. Tas ir atsaistÄ«ts - tÄ ir Elastics atbalsta kopija, tas ir, tas ir konfigurÄjams. AptaujÄÅ”ana maina tikai aptaujas dalÄ«bniekus. MÄs uzskatÄm, ka tas darbosies ilgu laiku.
A: - Liels paldies. Sakiet, vai ir kÄda dokumentÄcija par veiktajÄm izmaiÅÄm?
MM: ā DokumentÄcija ir ielÄps. AcÄ«mredzot, ievieÅ”ot Clickhouse, ievieÅ”ot jaunus polleru veidus, rodas jaunas konfigurÄcijas iespÄjas. Saitei no pÄdÄjÄ slaida ir Ä«ss apraksts par to, kÄ to izmantot.
Par fping aizstÄÅ”anu ar nmap
A: ā KÄ jÅ«s to beidzot Ä«stenojÄt? Vai varat sniegt konkrÄtus piemÄrus: vai jums ir siksnas un ÄrÄjs skripts? Kas beidzas, kad tik Ätri tiek pÄrbaudÄ«ts tik liels skaits saimnieku? KÄ jÅ«s iegÅ«stat Å”os saimniekus? Vai vajag kaut kÄ tos iebarot nmap, kaut kur dabÅ«t, ielikt, kaut ko palaist?..
MM: - ForÅ”i. Ä»oti pareizs jautÄjums! Lieta ir tÄda. PÄrveidojÄm bibliotÄku (ICMP ping, daļa no Zabbix) ICMP pÄrbaudÄm, kas norÄda pakeÅ”u skaitu - vienu (1), un kods mÄÄ£ina izmantot nmap. Tas ir, tas ir Zabbix iekÅ”Äjais darbs, kas ir kļuvis par pingera iekÅ”Äjo darbu. AttiecÄ«gi nav nepiecieÅ”ama sinhronizÄcija vai slazda izmantoÅ”ana. Tas tika darÄ«ts apzinÄti, lai sistÄma paliktu neskarta un nebÅ«tu jÄnodarbojas ar divu datu bÄzes sistÄmu sinhronizÄciju: ko pÄrbaudÄ«t, augÅ”upielÄdÄt caur polleri un vai mÅ«su augÅ”upielÄde ir bojÄta?.. Tas ir daudz vienkÄrÅ”Äk.
A: ā Vai tas darbojas arÄ« starpniekserveriem?
MM: ā JÄ, bet mÄs nepÄrbaudÄ«jÄm. Aptaujas kods ir vienÄds gan Zabbix, gan serverÄ«. VajadzÄtu strÄdÄt. Ä»aujiet man vÄlreiz uzsvÄrt: sistÄmas veiktspÄja ir tÄda, ka mums nav nepiecieÅ”ams starpniekserveris.
MCH: ā PareizÄ atbilde uz jautÄjumu ir: "KÄpÄc jums ir nepiecieÅ”ams starpniekserveris ar Å”Ädu sistÄmu?" Tikai NAT vai monitoringa dÄļ pa kaut kÄdu lÄnu kanÄlu...
A: ā Un jÅ«s izmantojat Zabbix kÄ alergoru, ja es pareizi saprotu. Vai arÄ« jÅ«su grafika (kur atrodas arhÄ«va slÄnis) ir pÄrvietota uz citu sistÄmu, piemÄram, Grafana? Vai arÄ« jÅ«s neizmantojat Å”o funkciju?
MM: ā UzsvÄrÅ”u vÄlreiz: esam panÄkuÅ”i pilnÄ«gu integrÄciju. MÄs ielejam Clickhouse vÄsturi, bet tajÄ paÅ”Ä laikÄ esam mainÄ«juÅ”i php frontend. Php priekÅ”gals nonÄk Clickhouse un veic visu grafiku no turienes. TajÄ paÅ”Ä laikÄ, godÄ«gi sakot, mums ir daļa, kas veido datus citÄs grafiskÄs displeja sistÄmÄs no tÄ paÅ”a Clickhouse, no tiem paÅ”iem Zabbix datiem.
MCH: ā ArÄ« āGrafÄnÄā.
KÄ tika pieÅemti lÄmumi par resursu pieŔķirÅ”anu?
A: ā Dalieties mazliet no savas iekÅ”ÄjÄs virtuves. KÄ tika pieÅemts lÄmums, ka nepiecieÅ”ams atvÄlÄt resursus nopietnai produkta pÄrstrÄdei? Tie kopumÄ ir noteikti riski. Un sakiet, lÅ«dzu, kontekstÄ ar to, ka jÅ«s gatavojaties atbalstÄ«t jaunas versijas: kÄ Å”is lÄmums ir pamatots no vadÄ«bas viedokļa?
MM: ā AcÄ«mredzot mÄs ne pÄrÄk labi izstÄstÄ«jÄm vÄstures drÄmu. NonÄcÄm situÄcijÄ, kad kaut kas bija jÄdara, un bÅ«tÄ«bÄ gÄjÄm ar divÄm paralÄlÄm komandÄm:
- Viens no tiem bija uzraudzÄ«bas sistÄmas ievieÅ”ana, izmantojot jaunas metodes: uzraudzÄ«ba kÄ pakalpojums, standarta atvÄrtÄ pirmkoda risinÄjumu komplekts, ko mÄs apvienojam un pÄc tam cenÅ”amies mainÄ«t biznesa procesu, lai strÄdÄtu ar jauno uzraudzÄ«bas sistÄmu.
- TajÄ paÅ”Ä laikÄ mums bija entuziastisks programmÄtÄjs, kurÅ” to darÄ«ja (par sevi). SagadÄ«jÄs, ka viÅÅ” uzvarÄja.
A: ā Un kÄds ir komandas lielums?
MCH: ā ViÅa ir tavÄ priekÅ”Ä.
A: ā TÄtad, kÄ vienmÄr, jums ir vajadzÄ«gs kaislÄ«gs cilvÄks?
MM: ā Es nezinu, kas ir kaislÄ«gs cilvÄks.
A: - Å ajÄ gadÄ«jumÄ acÄ«mredzot jÅ«s. Liels paldies, jÅ«s esat lieliski.
MM: - Paldies.
Par ielÄpiem Zabbix
A: ā Vai sistÄmai, kas izmanto starpniekserverus (piemÄram, dažÄs dalÄ«tajÄs sistÄmÄs), ir iespÄjams pielÄgot un lÄpÄ«t, teiksim, pollerus, starpniekserverus un daļÄji paÅ”u Zabbix priekÅ”procesoru; un to mijiedarbÄ«ba? Vai ir iespÄjams optimizÄt esoÅ”Äs sistÄmas ar vairÄkiem starpniekserveriem?
MM: ā Zinu, ka Zabbix serveris tiek samontÄts, izmantojot starpniekserveri (kods tiek apkopots un iegÅ«ts). MÄs to neesam pÄrbaudÄ«juÅ”i ražoÅ”anÄ. Es neesmu pÄrliecinÄts par to, bet es domÄju, ka starpniekserverÄ« netiek izmantots priekÅ”procesora pÄrvaldnieks. Starpniekservera uzdevums ir paÅemt no Zabbix metrikas, apvienot tos (tÄ arÄ« ieraksta konfigurÄciju, lokÄlo datu bÄzi) un atdot to atpakaļ Zabbix serverim. PÄc tam serveris pats veiks priekÅ”apstrÄdi, kad tas to saÅems.
Interese par pilnvarotajiem ir saprotama. MÄs to pÄrbaudÄ«sim. Å Ä« ir interesanta tÄma.
A: ā Ideja bija Å”Äda: ja varat izlÄpÄ«t pollerus, varat tos labot starpniekserverÄ« un izlabot mijiedarbÄ«bu ar serveri, kÄ arÄ« pielÄgot priekÅ”apstrÄdÄtÄju Å”iem mÄrÄ·iem tikai serverÄ«.
MM: ā ManuprÄt, tas ir vÄl vienkÄrÅ”Äk. JÅ«s paÅemat kodu, uzliekat ielÄpu, pÄc tam konfigurÄjat to tÄ, kÄ jums nepiecieÅ”ams - savÄc starpniekserverus (piemÄram, ar ODBC) un izplata ielÄpu kodu pa sistÄmÄm. Kur nepiecieÅ”ams - savÄkt starpniekserveri, kur nepiecieÅ”ams - serveri.
A: ā VisticamÄk, jums nebÅ«s papildus jÄlÄgo starpniekservera pÄrraide uz serveri?
MCH: - NÄ, tas ir standarts.
MM: ā PatiesÄ«bÄ viena no idejÄm neizklausÄ«jÄs. VienmÄr esam saglabÄjuÅ”i lÄ«dzsvaru starp ideju sprÄdzienbÄ«stamÄ«bu un izmaiÅu apjomu un atbalsta vieglumu.
Dažas reklÄmas š
Paldies, ka palikÄt kopÄ ar mums. Vai jums patÄ«k mÅ«su raksti? Vai vÄlaties redzÄt interesantÄku saturu? Atbalsti mÅ«s, pasÅ«tot vai iesakot draugiem,
Dell R730xd 2x lÄtÄk Equinix Tier IV datu centrÄ AmsterdamÄ? Tikai Å”eit
Avots: www.habr.com