HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Il-konferenza HighLoad++ li jmiss se ssir fis-6 u s-7 ta’ April, 2020 f’San Pietruburgu Dettalji u biljetti по ссылке. HighLoad++ Moska 2018. Sala "Moska". 9 ta’ Novembru, 15:00. Teżijiet u preżentazzjoni.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

* Monitoraġġ - online u analytics.
* Limitazzjonijiet bażiċi tal-pjattaforma ZABBIX.
* Soluzzjoni għall-iskala tal-ħażna analitika.
* Ottimizzazzjoni tas-server ZABBIX.
* Ottimizzazzjoni tal-UI.
* Esperjenza li tħaddem is-sistema taħt tagħbijiet ta 'aktar minn 40k NVPS.
* Konklużjonijiet fil-qosor.

Mikhail Makurov (minn hawn 'il quddiem – MM): - Hi kollha!

Maxim Chernetsov (minn hawn 'il quddiem – MCH): - Il-waranofsinhar it-tajjeb!

MM: – Ħa nintroduċi lil Maxim. Max huwa inġinier b'talent, l-aqwa networker li naf. Maxim huwa involut fin-netwerks u s-servizzi, l-iżvilupp u l-operat tagħhom.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MCH: – U nixtieq ngħidlek dwar Mikhail. Mikhail huwa żviluppatur C. Huwa kiteb diversi soluzzjonijiet għall-ipproċessar tat-traffiku ta 'tagħbija għolja għall-kumpanija tagħna. Aħna ngħixu u naħdmu fl-Urali, fil-belt ta 'rġiel iebsa Chelyabinsk, fil-kumpanija Intersvyaz. Il-kumpanija tagħna hija fornitur ta 'servizzi tal-Internet u tat-televiżjoni bil-kejbil għal miljun ruħ f'16-il belt.

MM: – U ta 'min jgħid li Intersvyaz hija ħafna aktar minn sempliċi fornitur, hija kumpanija tal-IT. Ħafna mis-soluzzjonijiet tagħna huma magħmula mid-dipartiment tal-IT tagħna.

A: minn servers li jipproċessaw it-traffiku għal call center u applikazzjoni mobbli. Id-dipartiment tal-IT issa għandu madwar 80 persuna b'kompetenzi differenti ħafna, ħafna.

Dwar Zabbix u l-arkitettura tiegħu

MCH: – U issa nipprova nagħmel rekord personali u f’minuta ngħid x’inhu Zabbix (minn hawn ‘il quddiem imsejjaħ “Zabbix”).

Zabbix tippożizzjona ruħha bħala sistema ta 'monitoraġġ out-of-the-box fil-livell ta' intrapriża. Għandu ħafna karatteristiċi li jagħmlu l-ħajja aktar faċli: regoli avvanzati ta 'eskalazzjoni, API għall-integrazzjoni, raggruppament u skoperta awtomatika ta' hosts u metriċi. Zabbix għandu l-hekk imsejħa għodod ta' skalar - prokuri. Zabbix hija sistema open source.

Fil-qosor dwar l-arkitettura. Nistgħu ngħidu li jikkonsisti fi tliet komponenti:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

  • Server. Miktub f'C. Bi proċessar pjuttost kumpless u trasferiment ta 'informazzjoni bejn il-ħjut. L-ipproċessar kollu jseħħ fih: minn meta tirċievi sal-iffrankar fid-database.
  • Id-data kollha hija maħżuna fid-database. Zabbix jappoġġja MySQL, PostreSQL u Oracle.
  • L-interface tal-web hija miktuba bil-PHP. Fuq il-biċċa l-kbira tas-sistemi jiġi ma 'server Apache, iżda jaħdem b'mod aktar effiċjenti flimkien ma' nginx + php.

Illum nixtiequ nirrakkonta storja waħda mill-ħajja tal-kumpanija tagħna relatata ma' Zabbix...

Storja mill-ħajja tal-kumpanija Intersvyaz. X'għandna u x'għandna bżonn?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed
5 jew 6 xhur ilu. Ġurnata wara x-xogħol...

MCH: - Misha, bonjour! Jien kuntent li rnexxieli naqbadkom - hemm konverżazzjoni. Erġajna kellna problemi bil-monitoraġġ. Waqt inċident kbir, kollox kien bil-mod u ma kien hemm l-ebda informazzjoni dwar l-istat tan-netwerk. Sfortunatament, din mhix l-ewwel darba li ġara dan. Għandi bżonn l-għajnuna tiegħek. Ejja nagħmlu l-monitoraġġ tagħna jaħdem taħt kwalunkwe ċirkostanza!

MM: - Imma ejja nissinkronizzaw l-ewwel. Ilni ma fittix hemm ftit snin. Sa fejn niftakar, abbandunajna lil Nagios u qlibna għal Zabbix madwar 8 snin ilu. U issa jidher li għandna 6 servers b'saħħithom u madwar tużżana prokuri. Qiegħed inħawwad xi ħaġa?

MCH: - Kważi. 15-il server, li wħud minnhom huma magni virtwali. L-iktar ħaġa importanti hija li ma ssalvax fil-mument meta l-aktar għandna bżonnha. Bħal inċident - is-servers jonqsu u ma tista 'tara xejn. Ippruvajna nottimizzaw il-konfigurazzjoni, iżda dan ma pprovdiex l-aħjar żieda fil-prestazzjoni.

MM: - Huwa ċar. Ħares lejn xi ħaġa, diġà ħaffer xi ħaġa mid-dijanjostika?

MCH: – L-ewwel ħaġa li trid tittratta magħha hija d-database. MySQL huwa kontinwament mgħobbi, jaħżen metriċi ġodda, u meta Zabbix jibda jiġġenera mazz ta 'avvenimenti, id-database tmur overdrive għal litteralment ftit sigħat. Diġà għedtlek dwar l-ottimizzazzjoni tal-konfigurazzjoni, iżda litteralment din is-sena aġġornaw il-ħardwer: is-servers għandhom aktar minn mitt gigabytes ta 'memorja u arrays ta' diski fuq SSD RAIDs - m'hemm l-ebda punt li tikber b'mod lineari fit-tul. X'nagħmlu?

MM: - Huwa ċar. B'mod ġenerali, MySQL hija database LTP. Apparentement, m'għadux adattat għall-ħażna ta 'arkivju ta' metriċi tad-daqs tagħna. Ejja insemmu.

MCH: - Ejja!

Integrazzjoni ta’ Zabbix u Clickhouse b’riżultat tal-hackathon

Wara xi żmien irċevejna dejta interessanti:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Ħafna mill-ispazju fid-database tagħna kien okkupat mill-arkivju tal-metriċi u inqas minn 1% intuża għall-konfigurazzjoni, mudelli u settings. Sa dak iż-żmien, konna ilna nħaddmu s-soluzzjoni Big data bbażata fuq Clickhouse għal aktar minn sena. Id-direzzjoni tal-moviment kienet ovvja għalina. Fl-Hackathon tar-rebbiegħa tagħna, ktibt l-integrazzjoni ta 'Zabbix ma' Clickhouse għas-server u l-frontend. Dak iż-żmien, Zabbix diġà kellu appoġġ għal ElasticSearch, u ddeċidejna li nqabbluhom.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Tqabbil ta 'Clickhouse u Elasticsearch

MM: – Għat-tqabbil, iġġenerajna l-istess tagħbija kif jipprovdi s-server Zabbix u ħares lejn kif is-sistemi se jġibu ruħhom. Aħna ktibna data f'lottijiet ta '1000 linja, bl-użu ta' CURL. Assumina minn qabel li Clickhouse tkun aktar effiċjenti għall-profil tat-tagħbija li jagħmel Zabbix. Ir-riżultati saħansitra qabżu l-aspettattivi tagħna:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Taħt l-istess kundizzjonijiet tat-test, Clickhouse kiteb tliet darbiet aktar data. Fl-istess ħin, iż-żewġ sistemi kkunsmati b'mod effiċjenti ħafna (ammont żgħir ta 'riżorsi) meta qraw id-dejta. Iżda l-Elastics kienu jeħtieġu ammont kbir ta 'proċessur meta jirrekordjaw:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

B'kollox, Clickhouse kien superjuri b'mod sinifikanti għal Elastix f'termini ta 'konsum tal-proċessur u veloċità. Fl-istess ħin, minħabba l-kompressjoni tad-dejta, Clickhouse juża 11-il darba inqas fuq il-hard drive u jwettaq madwar 30 darba inqas operazzjonijiet tad-disk:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MCH: – Iva, ix-xogħol ta 'Clickhouse mas-subsistema tad-disk huwa implimentat b'mod effiċjenti ħafna. Tista 'tuża diski SATA enormi għal databases u tikseb veloċitajiet ta' kitba ta 'mijiet ta' eluf ta 'linji kull sekonda. Is-sistema out-of-the-box tappoġġja sharding, replikazzjoni, u hija faċli ħafna biex tiġi kkonfigurata. Aħna aktar minn sodisfatti bl-użu tiegħu matul is-sena.

Biex tottimizza r-riżorsi, tista 'tinstalla Clickhouse ħdejn id-database prinċipali eżistenti tiegħek u b'hekk tiffranka ħafna ħin tas-CPU u operazzjonijiet tad-disk. Ċaqlaqna l-arkivju tal-metriċi għal clusters eżistenti ta' Clickhouse:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Aħna neħħejna d-database MySQL prinċipali tant li nistgħu ngħaqqduha fuq magna waħda mas-server Zabbix u nabbandunaw is-server iddedikat għall-MySQL.

Kif jaħdem il-votazzjoni f’Żabbix?

Xhur 4 ilu

MM: – Ukoll, nistgħu ninsew dwar il-problemi bil-bażi?

MCH: - Dak żgur! Problema oħra li rridu nsolvu hija l-ġbir bil-mod tad-dejta. Issa l-15-il proxy server tagħna kollha huma mgħobbija żżejjed b'SNMP u proċessi ta 'votazzjoni. U m'hemm l-ebda mod ħlief li tinstalla servers ġodda u ġodda.

MM: - Kbir. Imma l-ewwel, għidilna kif jaħdem il-votazzjoni f’Żabbix?

MCH: – Fil-qosor, hemm 20 tip ta 'metrika u tużżana modi biex tiksebhom. Zabbix jista 'jiġbor data jew fil-modalità "talba-rispons", jew jistenna għal data ġdida permezz tal-"Interface Trapper".

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Ta 'min jinnota li fiż-Zabbix oriġinali dan il-metodu (Trapper) huwa l-aktar mgħaġġel.

Hemm proxy servers għad-distribuzzjoni tat-tagħbija:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Il-prokuri jistgħu jwettqu l-istess funzjonijiet ta 'ġbir bħas-server Zabbix, jirċievu kompiti minnu u jibagħtu l-metriċi miġbura permezz tal-interface Trapper. Dan huwa l-mod uffiċjalment rakkomandat biex titqassam it-tagħbija. Il-prokuri huma wkoll utli għall-monitoraġġ ta' infrastruttura remota li topera permezz ta' NAT jew kanal bil-mod:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: – Kollox huwa ċar bl-arkitettura. Irridu nħarsu lejn is-sorsi...

Ftit jiem wara

L-istorja ta' kif rebaħ nmap fping

MM: "Naħseb li ħaffer xi ħaġa."

MCH: - Għidli!

MM: – Skoprejt li meta tiċċekkja d-disponibbiltà, Zabbix jiċċekkja massimu ta’ 128 host kull darba. Ippruvajt inżid dan in-numru għal 500 u neħħi l-intervall bejn il-pakketti fil-ping tagħhom (ping) - dan irdoppja l-prestazzjoni. Imma nixtieq numri akbar.

MCH: – Fil-prattika tiegħi, kultant ikolli niċċekkja d-disponibbiltà ta 'eluf ta' hosts, u qatt ma rajt xi ħaġa aktar mgħaġġla minn nmap għal dan. Jien ċert li dan huwa l-aktar mod mgħaġġel. Ejja nippruvaw! Għandna bżonn inżidu b'mod sinifikanti n-numru ta 'hosts għal kull iterazzjoni.

MM: – Iċċekkja aktar minn ħames mija? 600?

MCH: - Mill-inqas ftit eluf.

MM: - KOLLOX SEW. L-iktar ħaġa importanti li ridt ngħid hija li sibt li l-biċċa l-kbira tal-votazzjoni f’Zabbix isir b’mod sinkroniku. Żgur għandna bżonn nibdluh għal mod asinkroniku. Imbagħad nistgħu nżidu b'mod drammatiku n-numru ta 'metriċi miġbura minn pollers, speċjalment jekk inżidu n-numru ta' metriċi għal kull iterazzjoni.

MCH: - Kbir! U meta?

MM: – Bħas-soltu, ilbieraħ.

MCH: – Aħna qabblu ż-żewġ verżjonijiet ta 'fping u nmap:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Fuq numru kbir ta 'hosts, nmap kien mistenni li jkun sa ħames darbiet aktar effettiv. Peress li nmap jiċċekkja biss id-disponibbiltà u l-ħin tar-rispons, ċċaqlaqna l-kalkolu tat-telf għal triggers u naqqas b'mod sinifikanti l-intervalli tal-kontroll tad-disponibbiltà. Sibna l-aħjar numru ta 'hosts għal nmap li huwa ta' madwar 4 elf għal kull iterazzjoni. Nmap ippermettilna nnaqqsu l-ispiża tas-CPU tal-kontrolli tad-disponibbiltà bi tliet darbiet u nnaqqsu l-intervall minn 120 sekonda għal 10.

Ottimizzazzjoni tal-votazzjoni

MM: “Imbagħad bdejna nagħmlu pollers. Konna interessati prinċipalment fl-iskoperta u l-aġenti SNMP. F’Zabbix, il-votazzjoni ssir b’mod sinkroniku u ttieħdu miżuri speċjali biex tiżdied l-effiċjenza tas-sistema. Fil-modalità sinkronika, in-nuqqas ta' disponibbiltà tal-host tikkawża degradazzjoni sinifikanti tal-votazzjoni. Hemm sistema sħiħa ta 'stati, hemm proċessi speċjali - l-hekk imsejħa pollers unreachable, li jaħdmu biss ma' hosts unreachable:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Dan huwa kummentarju li juri l-matriċi tal-istat, il-kumplessità kollha tas-sistema ta 'tranżizzjonijiet li huma meħtieġa sabiex is-sistema tibqa' effettiva. Barra minn hekk, l-istħarriġ sinkroniku nnifsu huwa pjuttost bil-mod:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Huwa għalhekk li eluf ta 'poller streams fuq għexieren ta' prokuri ma setgħux jiġbru l-ammont meħtieġ ta 'dejta għalina. L-implimentazzjoni asinkronika solviet mhux biss il-problemi bin-numru ta 'ħjut, iżda ssimplifikat ukoll b'mod sinifikanti s-sistema statali ta' hosts mhux disponibbli, minħabba li għal kwalunkwe numru ċċekkjat f'iterazzjoni waħda ta 'votazzjoni, il-ħin massimu ta' stennija kien 1 timeout:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Barra minn hekk, immodifikajna u tjiebna s-sistema tal-votazzjoni għal talbiet SNMP. Il-fatt hu li ħafna nies ma jistgħux jirrispondu għal talbiet SNMP multipli fl-istess ħin. Għalhekk, għamilna mod ibridu, meta l-istħarriġ SNMP tal-istess ospitanti jsir b'mod asinkroniku:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Dan isir għall-pakkett kollu ta 'ospiti. Dan il-mod fl-aħħar mill-aħħar mhuwiex aktar bil-mod minn wieħed kompletament asinkroniku, peress li l-istħarriġ ta 'mitt u nofs valuri SNMP għadu ħafna aktar mgħaġġel minn timeout 1.

L-esperimenti tagħna wrew li l-aħjar numru ta 'talbiet f'iterazzjoni waħda huwa ta' madwar 8 elf b'votazzjoni SNMP. B'kollox, it-tranżizzjoni għall-modalità asinkronika ppermettietna nħaffu l-prestazzjoni tal-votazzjoni b'200 darba, diversi mijiet ta' darba.

MCH: – L-ottimizzazzjonijiet tal-votazzjoni li rriżultaw urew li nistgħu mhux biss neħilsu mill-prokuri kollha, iżda wkoll innaqqsu l-intervalli għal ħafna kontrolli, u l-prokuri mhux se jkunu aktar meħtieġa bħala mod kif naqsmu t-tagħbija.

Madwar tliet xhur ilu

Ibdel l-arkitettura - żid it-tagħbija!

MM: - Ukoll, Max, wasal iż-żmien li tikseb produttiv? Għandi bżonn server qawwi u inġinier tajjeb.

MCH: - Okay, ejja nippjanawha. Wasal iż-żmien li nimxu mill-punt mejta ta '5 elf metrika kull sekonda.

Filgħodu wara l-upgrade

MCH: - Misha, aġġornajna lilna nfusna, imma sa filgħodu erġajna lura... Aqta' liema veloċità rnexxielna niksbu?

MM: – 20 elf massimu.

MCH: - Iva, 25! Sfortunatament, aħna proprju fejn bdejna.

MM: - Għaliex? Mexxejt xi dijanjostika?

MCH: - Iva, żgur! Hawnhekk, pereżempju, hemm top interessanti:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: - Ejja naraw. Nara li ppruvajna numru kbir ta' linji tal-votazzjoni:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Iżda fl-istess ħin ma setgħux jirriċiklaw is-sistema lanqas bin-nofs:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

U l-prestazzjoni ġenerali hija pjuttost żgħira, madwar 4 elf metrika kull sekonda:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Hemm xi ħaġa oħra?

MCH: – Iva, qagħda ta’ wieħed mill-pollers:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: – Hawnhekk tista’ tara b’mod ċar li l-proċess tal-votazzjoni qed jistenna “semafori”. Dawn huma s-serraturi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MCH: - Mhux ċar.

MM: – Ara, din hija simili għal sitwazzjoni fejn mazz ta 'ħjut qed jippruvaw jaħdmu b'riżorsi li wieħed biss jista' jaħdem magħhom kull darba. Imbagħad kull ma jistgħu jagħmlu hu li jaqsmu din ir-riżorsa maż-żmien:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

U l-prestazzjoni totali ta 'ħidma ma' tali riżors hija limitata mill-veloċità ta 'qalba waħda:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Hemm żewġ modi biex issolvi din il-problema.

Aġġorna l-ħardwer tal-magna, aqleb għal qlub aktar veloċi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Jew ibdel l-arkitettura u fl-istess ħin ibdel it-tagħbija:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MCH: – Mill-mod, fuq il-magna tat-test se nużaw inqas qlub milli fuq dik tal-ġlieda kontra, iżda huma 1,5 darbiet aktar mgħaġġla fil-frekwenza għal kull qalba!

MM: - Ċara? Trid tħares lejn il-kodiċi tas-server.

Mogħdija tad-dejta fis-server Zabbix

MCH: – Biex insemmu, bdejna nanalizzaw kif id-dejta tiġi trasferita ġewwa s-server Zabbix:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Stampa friska, hux? Ejja ngħaddu minnha pass pass biex nagħmilha xi ftit jew wisq ċara. Hemm ħjut u servizzi responsabbli għall-ġbir tad-dejta:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Huma jittrasmettu l-metriċi miġbura permezz ta’ socket lill-maniġer tal-Preprocessor, fejn jiġu ffrankati fi kju:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Il-"maniġer tal-preproċessur" jittrażmetti d-dejta lill-ħaddiema tiegħu, li jeżegwixxu struzzjonijiet tal-ipproċessar minn qabel u jirritornawhom lura permezz tal-istess socket:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Wara dan, il-maniġer tal-preproċessur jaħżenhom fil-cache tal-istorja:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Minn hemm jittieħdu minn sinkers tal-istorja, li jwettqu pjuttost ħafna funzjonijiet: pereżempju, jikkalkulaw triggers, jimlew il-cache tal-valur u, l-aktar importanti, iffrankar tal-metriċi fil-ħażna tal-istorja. B'mod ġenerali, il-proċess huwa kumpless u konfuż ħafna.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: – L-ewwel ħaġa li rajna kienet li l-biċċa l-kbira tal-ħjut jikkompetu għall-hekk imsejħa "configuration cache" (iż-żona tal-memorja fejn jinħażnu l-konfigurazzjonijiet kollha tas-server). Threads responsabbli għall-ġbir tad-dejta jagħmlu speċjalment ħafna imblukkar:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

...billi l-konfigurazzjoni taħżen mhux biss metriċi bil-parametri tagħhom, iżda wkoll kjuwijiet li minnhom dawk li jivvjaġġaw jieħdu informazzjoni dwar x'għandhom jagħmlu wara. Meta jkun hemm ħafna pollers u wieħed jimblokka l-konfigurazzjoni, l-oħrajn jistennew it-talbiet:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Pollers m'għandhomx konflitt

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Għalhekk, l-ewwel ħaġa li għamilna kienet naqsam il-kju f'4 partijiet u nħallu lil pollers jimblokkaw dawn il-kjuwijiet, dawn il-partijiet fl-istess ħin, taħt kundizzjonijiet sikuri:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Dan neħħa l-kompetizzjoni għall-cache tal-konfigurazzjoni, u l-veloċità tal-polers żdiedet b'mod sinifikanti. Imma mbagħad iltqajna mal-fatt li l-maniġer tal-preproċessur beda jakkumula kju ta 'impjiegi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Il-maniġer tal-preproċessur irid ikun kapaċi jagħti prijorità

Dan ġara f’każijiet fejn ma kellux prestazzjoni. Imbagħad kull ma seta’ jagħmel kien jakkumula talbiet mill-proċessi tal-ġbir tad-dejta u jżid il-buffer tagħhom sakemm ikkonsmat il-memorja kollha u ġġarraf:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Biex insolvu din il-problema, żidna t-tieni socket li kien iddedikat speċifikament għall-ħaddiema:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Għalhekk, il-maniġer tal-preproċessur kellu l-opportunità li jipprijoritizza x-xogħol tiegħu u, jekk il-buffer jikber, il-kompitu huwa li jnaqqas it-tneħħija, u jagħti lill-ħaddiema l-opportunità li jieħdu dan il-buffer:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Imbagħad skoprejna li waħda mir-raġunijiet għat-tnaqqis kien il-ħaddiema nfushom, peress li kienu qed jikkompetu għal riżors li ma kienx importanti għal kollox għax-xogħol tagħhom. Iddokumentajna din il-problema bħala bug-fix, u diġà ġiet solvuta f'verżjonijiet ġodda ta' Zabbix:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Aħna nżidu n-numru ta 'sokits - niksbu r-riżultat

Barra minn hekk, il-maniġer tal-preproċessur innifsu sar konġestjoni, peress li huwa ħajt wieħed. Hija tistrieħ fuq il-veloċità tal-qalba, li tagħti veloċità massima ta 'madwar 70 elf metrika kull sekonda:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Għalhekk, għamilna erba 'ħaddiema, b'erba' settijiet ta 'sokits:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

U dan ippermettilna nżidu l-veloċità għal madwar 130 elf metrika:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

In-non-linearità tat-tkabbir hija spjegata mill-fatt li dehret il-kompetizzjoni għall-cache tal-istorja. 4 maniġers tal-preproċessuri u sinkers tal-istorja kkompetew għaliha. F'dan il-punt, konna qed nirċievu madwar 130 elf metrika kull sekonda fuq il-magna tat-test, billi nużawha b'madwar 95% tal-proċessur:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Madwar 2,5 xhur ilu

Ir-rifjut minn snmp-community żied l-NVPs b'darba u nofs

MM: – Max, għandi bżonn karozza tat-test ġdida! M'għadniex noqogħdu f'dik attwali.

MCH: - X'għandek issa?

MM: – Issa – 130k NVPs u proċessur lest għall-ixkaffa.

MCH: - Ara naqra! Kessaħ! Stenna, għandi żewġ mistoqsijiet. Skont il-kalkoli tiegħi, il-ħtieġa tagħna hija ta 'madwar 15-20 elf metrika kull sekonda. Għaliex għandna bżonn aktar?

MM: "Irrid nispiċċa x-xogħol." Nixtieq nara kemm nistgħu noħorġu minn din is-sistema.

MCH: - Imma...

MM: "Imma huwa inutli għan-negozju."

MCH: - Huwa ċar. U t-tieni mistoqsija: nistgħu nappoġġaw dak li għandna issa waħedna, mingħajr l-għajnuna ta 'żviluppatur?

MM: - Ma naħsibx. Li tbiddel kif taħdem il-cache tal-konfigurazzjoni hija problema. Taffettwa l-bidliet fil-biċċa l-kbira tal-ħjut u hija pjuttost diffiċli biex tinżamm. Ħafna probabbli, se jkun diffiċli ħafna li tinżamm.

MCH: "Imbagħad għandna bżonn xi tip ta' alternattiva."

MM: - Hemm tali għażla. Nistgħu jaqilbu għal qlub veloċi, filwaqt li nabbandunaw is-sistema l-ġdida ta 'qfil. Aħna xorta se jkollna prestazzjoni ta '60-80 elf metrika. Fl-istess ħin, nistgħu nħallu l-bqija kollha tal-kodiċi. Il-Clickhouse u l-votazzjoni asinkronika se jaħdmu. U se jkun faċli biex tinżamm.

MCH: - tal-għaġeb! Nissuġġerixxi li nieqfu hawn.

Wara li ottimizzajna n-naħa tas-server, fl-aħħar stajna nniedu l-kodiċi l-ġdid fil-produzzjoni. Abbandunajna xi wħud mill-bidliet favur il-bidla għal magna b'qalba mgħaġġla u l-minimizzazzjoni tan-numru ta 'bidliet fil-kodiċi. Issimplifikajna wkoll il-konfigurazzjoni u eliminajna macros fl-oġġetti tad-dejta fejn possibbli, peress li jintroduċu qfil addizzjonali.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Pereżempju, l-abbandun tal-makro snmp-community, li ħafna drabi jinstab fid-dokumentazzjoni u l-eżempji, fil-każ tagħna għamilha possibbli li jitħaffu aktar NVPs b'madwar 1,5 darbiet.

Wara jumejn fil-produzzjoni

Tneħħija tal-pop-ups tal-istorja tal-inċidenti

MCH: – Misha, ilna jumejn nużaw is-sistema, u kollox jaħdem. Imma biss meta kollox jaħdem! Kellna xogħol ippjanat bit-trasferiment ta 'segment pjuttost kbir tan-netwerk, u erġajna ċċekkjajna b'idejna dak li tela' u dak li ma kienx.

MM: - Ma jistax ikun! Aħna ċċekkjaw kollox 10 darbiet. Is-server jimmaniġġja wkoll indisponibbiltà sħiħa tan-netwerk istantanjament.

MCH: - Iva, nifhem kollox: server, database, top, austat, zkuk - kollox huwa mgħaġġel... Imma nħarsu lejn l-interface tal-web, u hemm proċessur "fl-ixkaffa" fuq is-server u dan:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: - Huwa ċar. Ejja naraw il-web. Sibna li f'sitwazzjoni fejn kien hemm numru kbir ta' inċidenti attivi, il-biċċa l-kbira tal-widgets ħajjin bdew jaħdmu bil-mod ħafna:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Ir-raġuni għal dan kienet il-ġenerazzjoni ta 'pop-ups tal-istorja tal-inċidenti li huma ġġenerati għal kull oġġett fil-lista. Għalhekk, abbandunajna l-ġenerazzjoni ta 'dawn it-twieqi (ikkummentajna 5 linji fil-kodiċi), u dan solva l-problemi tagħna.

Il-ħin tat-tagħbija għall-widgets, anke meta kompletament mhux disponibbli, tnaqqas minn diversi minuti għal 10-15-il sekonda aċċettabbli għalina, u l-istorja xorta tista' tara billi tikklikkja fuq il-ħin:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Wara x-xogħol. 2 xhur ilu

MCH: - Misha, qed titlaq? Irridu nitkellmu.

MM: - Ma kellix il-ħsieb. Xi ħaġa ma' Zabbix mill-ġdid?

MCH: - Le, jirrilassaw! Ridt ngħid biss: kollox jaħdem, grazzi! Għandi birra.

Zabbix huwa effiċjenti

Zabbix hija sistema u funzjoni pjuttost universali u rikka. Jista 'jintuża għal stallazzjonijiet żgħar barra mill-kaxxa, iżda hekk kif il-ħtiġijiet jikbru, irid jiġi ottimizzat. Biex taħżen arkivju kbir ta 'metriċi, uża ħażna xierqa:

  • tista' tuża għodod inkorporati fil-forma ta 'integrazzjoni ma' Elasticsearch jew ittella 'l-istorja għal fajls ta' test (disponibbli mill-verżjoni XNUMX);
  • Tista' tieħu vantaġġ mill-esperjenza u l-integrazzjoni tagħna ma' Clickhouse.

Biex iżżid b'mod drammatiku l-veloċità tal-ġbir tal-metriċi, iġborhom billi tuża metodi asinkroniċi u ttrasmettihom permezz tal-interface tat-trapper lis-server Zabbix; jew tista 'tuża garża biex tagħmel pollers Zabbix mhux sinkroniċi.

Zabbix huwa miktub b'Ċ u huwa pjuttost effiċjenti. Is-soluzzjoni ta 'diversi konġestjonijiet arkitettoniċi tippermettilek tkompli żżid il-prestazzjoni tagħha u, fl-esperjenza tagħna, tikseb aktar minn 100 elf metrika fuq magna b'proċessur wieħed.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

L-istess garża Zabbix

MM: – Irrid inżid ftit punti. Ir-rapport kurrenti kollu, it-testijiet kollha, in-numri jingħataw għall-konfigurazzjoni li nużaw. Issa qed nieħdu madwar 20 elf metrika kull sekonda minnha. Jekk qed tipprova tifhem jekk dan hux se jaħdem għalik, tista' tqabbel. Dak li ġie diskuss illum jitpoġġa fuq GitHub fil-forma ta’ garża: github.com/miklert/zabbix

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

Il-garża tinkludi:

  • integrazzjoni sħiħa ma' Clickhouse (kemm is-server Zabbix kif ukoll il-frontend);
  • issolvi problemi mal-maniġer tal-preproċessur;
  • polling asinkroniku.

Il-garża hija kompatibbli mal-verżjoni 4 kollha, inklużi lts. Ħafna probabbli, b'bidliet minimi se taħdem fuq il-verżjoni 3.4.

Grazzi għall-attenzjoni tiegħek.

mistoqsijiet

Mistoqsija mill-udjenza (minn hawn 'il quddiem – A): – Wara nofsinhar it-tajjeb! Jekk jogħġbok għidli, għandek pjanijiet għal interazzjoni intensiva mat-tim ta’ Zabbix jew magħhom miegħek, sabiex din ma tkunx garża, iżda mġiba normali ta’ Zabbix?

MM: – Iva, żgur li se nimpenjaw xi wħud mill-bidliet. Xi ħaġa se jiġri, xi ħaġa se tibqa 'fil-garża.

A: – Grazzi ħafna għar-rapport eċċellenti! Jekk jogħġbok għidli, wara li tapplika l-garża, l-appoġġ minn Zabbix se jibqa' u kif se tkompli taġġorna għal verżjonijiet ogħla? Se jkun possibbli li taġġorna Zabbix wara l-garża tiegħek għal 4.2, 5.0?

MM: – Ma nista’ ngħid xejn dwar l-appoġġ. Kieku kont appoġġ tekniku Zabbix, probabbilment ngħid le, għax dan huwa l-kodiċi ta 'xi ħadd ieħor. Fir-rigward tal-kodiċi 4.2, il-pożizzjoni tagħna hija: "Se nimxu biż-żmien, u se naġġornaw lilna nfusna dwar il-verżjoni li jmiss." Għalhekk, għal xi żmien se nkunu qed inpoġġu garża għal verżjonijiet aġġornati. Diġà għedt fir-rapport: in-numru ta 'bidliet bil-verżjonijiet għadu pjuttost żgħir. Naħseb li t-tranżizzjoni minn 3.4 għal 4 ħadna madwar minuti 15. Xi ħaġa nbidlet hemm, iżda mhux importanti ħafna.

A: – Allura qed tippjana li tappoġġja l-garża tiegħek u tista 'tinstallaha b'mod sikur fil-produzzjoni u tirċievi aġġornamenti b'xi mod fil-futur?

MM: – Nirrakkomandawha bil-qawwa. Dan isolvi ħafna problemi għalina.

MCH: – Għal darb'oħra, nixtieq niġbed l-attenzjoni għall-fatt li l-bidliet li ma jikkonċernawx l-arkitettura u ma jikkonċernawx l-imblukkar jew kjuwijiet huma modulari, huma f'moduli separati. Anke b'bidliet żgħar tista 'żżommhom pjuttost faċilment.

MM: – Jekk inti interessat fid-dettalji, allura "Clickhouse" juża l-hekk imsejħa librerija tal-istorja. Huwa mhux marbut - hija kopja tal-appoġġ tal-Elastics, jiġifieri, hija konfigurabbli. Il-votazzjoni tbiddel biss lil min jixxandar. Aħna nemmnu li dan se jaħdem għal żmien twil.

A: - Grazzi ħafna. Għidli, hemm xi dokumentazzjoni tal-bidliet li saru?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS fuq server wieħed

MM: – Id-dokumentazzjoni hija garża. Ovvjament, bl-introduzzjoni ta 'Clickhouse, bl-introduzzjoni ta' tipi ġodda ta 'pollers, jinħolqu għażliet ġodda ta' konfigurazzjoni. Il-link mill-aħħar slide għandha deskrizzjoni qasira ta 'kif tużaha.

Dwar is-sostituzzjoni ta 'fping b'nmap

A: – Kif finalment implimentajt dan? Tista' tagħti eżempji speċifiċi: għandek strappers u skript estern? X'jispiċċa jiċċekkja numru daqshekk kbir ta 'hosts daqshekk malajr? Kif inti minjiera dawn l-ospiti? Għandna bżonn għalfhom biex nmap b'xi mod, ġibhom minn x'imkien, daħħalhom, imexxu xi ħaġa?...

MM: - Kessaħ. Mistoqsija korretta ħafna! Il-punt huwa dan. Immodifikajna l-librerija (ICMP ping, parti minn Zabbix) għal kontrolli ICMP, li jindikaw in-numru ta 'pakketti - wieħed (1), u l-kodiċi jipprova juża nmap. Jiġifieri dan huwa x-xogħol intern ta’ Zabbix, li sar ix-xogħol intern tal-pinger. Għaldaqstant, mhija meħtieġa l-ebda sinkronizzazzjoni jew użu ta’ nassaba. Dan sar apposta sabiex is-sistema titħalla intatta u ma jkollhiex għalfejn tittratta s-sinkronizzazzjoni ta 'żewġ sistemi ta' database: x'għandek tiċċekkja, ittella' permezz tal-poller, u t-tlugħ tagħna huwa miksur?.. Dan huwa ħafna aktar sempliċi.

A: – Taħdem ukoll għall-prokuri?

MM: – Iva, imma aħna ma ċċekkjawx. Il-kodiċi tal-votazzjoni huwa l-istess kemm f'Zabbix kif ukoll fis-server. Għandu jaħdem. Ħalli nenfasizza għal darb'oħra: il-prestazzjoni tas-sistema hija tali li m'għandniex bżonn prokura.

MCH: – It-tweġiba korretta għall-mistoqsija hija: "Għaliex għandek bżonn prokura b'sistema bħal din?" Biss minħabba NAT jew monitoraġġ permezz ta 'xi tip ta' kanal bil-mod...

A: – U tuża Zabbix bħala allertor, jekk nifhem sew. Jew il-grafika tiegħek (fejn hemm is-saff tal-arkivju) imċaqlaq għal sistema oħra, bħal Grafana? Jew m'intix tuża din il-funzjonalità?

MM: – Se nenfasizza għal darb'oħra: ksibna integrazzjoni sħiħa. Qed inferrgħu l-istorja f'Clickhouse, iżda fl-istess ħin biddilna l-php frontend. Il-frontend PHP jmur għal Clickhouse u jagħmel il-grafika kollha minn hemm. Fl-istess ħin, biex inkun onest, għandna parti li tibni data f'sistemi oħra ta 'display grafiku mill-istess Clickhouse, mill-istess data Zabbix.

MCH: – F’“Grafan” ukoll.

Kif ittieħdu deċiżjonijiet dwar l-allokazzjoni tar-riżorsi?

A: – Aqsam ftit mill-kċina ta’ ġewwa tiegħek. Kif ittieħdet id-deċiżjoni li kien meħtieġ li jiġu allokati riżorsi għall-ipproċessar serju tal-prodott? Dawn huma, b'mod ġenerali, ċerti riskji. U jekk jogħġbok għidli, fil-kuntest tal-fatt li se tappoġġja verżjonijiet ġodda: kif tiġġustifika din id-deċiżjoni mil-lat ta' ġestjoni?

MM: – Apparentement, ma għidniex id-drama tal-istorja tajjeb ħafna. sibna ruħna f’sitwazzjoni fejn kellha ssir xi ħaġa, u essenzjalment morna b’żewġ timijiet paralleli:

  • Wieħed kien qed iniedi sistema ta’ monitoraġġ bl-użu ta’ metodi ġodda: monitoraġġ bħala servizz, sett standard ta’ soluzzjonijiet ta’ sors miftuħ li ngħaqqdu u mbagħad nippruvaw inbiddlu l-proċess tan-negozju sabiex naħdmu mas-sistema ta’ monitoraġġ il-ġdida.
  • Fl-istess ħin, kellna programmatur entużjast li kien qed jagħmel dan (dwar lilu nnifsu). Ġara li rebaħ.

A: – U x'inhu d-daqs tat-tim?

MCH: - Hija quddiemek.

A: – Allura, bħal dejjem, għandek bżonn passjonarju?

MM: – Ma nafx x’inhu passjonarju.

A: - F'dan il-każ, apparentement, inti. Grazzi ħafna, int tal-biża.

MM: - Grazzi.

Dwar irqajja għal Zabbix

A: – Għal sistema li tuża prokuri (pereżempju, f'xi sistemi distribwiti), huwa possibbli li jiġu adattati u garżati, ngħidu aħna, pollers, prokuri u parzjalment il-preproċessur ta 'Zabbix innifsu; u l-interazzjoni tagħhom? Huwa possibbli li jiġu ottimizzati l-iżviluppi eżistenti għal sistema bi prokuri multipli?

MM: – Naf li s-server Zabbix huwa mmuntat permezz ta 'prokura (il-kodiċi huwa kkompilat u miksub). Aħna ma ttestjajnax dan fil-produzzjoni. M'inix ċert dwar dan, imma naħseb li l-maniġer tal-preproċessur ma jintużax fil-prokura. Il-kompitu tal-prokura huwa li jieħu sett ta 'metriċi minn Zabbix, jingħaqadhom (jirreġistra wkoll il-konfigurazzjoni, id-database lokali) u jagħtiha lura lis-server Zabbix. Is-server innifsu mbagħad jagħmel il-preproċessar meta jirċevih.

L-interess fil-prokuri jinftiehem. Aħna ser niċċekkjawha. Dan huwa suġġett interessanti.

A: – L-idea kienet din: jekk tista 'tqabbad pollers, tista' twaħħalhom fuq il-proxy u twaħħal l-interazzjoni mas-server, u tadatta l-preprocessor għal dawn l-għanijiet biss fuq is-server.

MM: – Naħseb li huwa saħansitra aktar sempliċi. Tieħu l-kodiċi, tapplika garża, imbagħad tikkonfiguraha bil-mod li għandek bżonn - iġbor proxy servers (pereżempju, b'ODBC) u tqassam il-kodiċi patched bejn is-sistemi. Fejn meħtieġ - iġbor prokura, fejn meħtieġ - server.

A: - X'aktarx, mhux se jkollok irqajja' t-trażmissjoni tal-prokura lis-server addizzjonalment?

MCH: - Le, huwa standard.

MM: – Fil-fatt, waħda mill-ideat ma ddoqqx. Dejjem żammejna bilanċ bejn l-isplużjoni ta 'ideat u l-ammont ta' bidliet u l-faċilità ta 'appoġġ.

Xi reklami 🙂

Grazzi talli bqajt magħna. Tħobb l-artikoli tagħna? Trid tara aktar kontenut interessanti? Appoġġuna billi tagħmel ordni jew tirrakkomanda lill-ħbieb, Cloud VPS għall-iżviluppaturi minn $4.99, analogu uniku ta 'servers ta' livell ta 'dħul, li ġie ivvintat minna għalik: Il-verità kollha dwar VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps minn $19 jew kif taqsam server? (disponibbli b'RAID1 u RAID10, sa 24 core u sa 40GB DDR4).

Dell R730xd 2 darbiet orħos fiċ-ċentru tad-dejta Equinix Tier IV f'Amsterdam? Hawn biss 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV minn $199 fl-Olanda! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - minn $99! Aqra dwar Kif tibni l-infrastruttura corp. klassi bl-użu ta 'servers Dell R730xd E5-2650 v4 li jiswew 9000 ewro għal ċenteżmu?

Sors: www.habr.com

Żid kumment