HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Msonkhano wotsatira wa HighLoad ++ udzachitika pa Epulo 6 ndi 7, 2020 ku St. Petersburg Tsatanetsatane ndi matikiti kugwirizana. HighLoad ++ Moscow 2018. Hall "Moscow". Novembala 9, 15:00. Izi ndi mawu.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

* Kuwunika - pa intaneti ndi ma analytics.
* Zoletsa zoyambira papulatifomu ya ZABBIX.
* Yankho pakukulitsa kusungirako ma analytics.
* Kukhathamiritsa kwa seva ya ZABBIX.
* Kukhathamiritsa kwa UI.
* Dziwani kugwiritsa ntchito makinawa modzaza kwambiri kuposa 40k NVPS.
* Mapeto achidule.

Mikhail Makurov (pano - MM): - Moni nonse!

Maxim Cherntsov (pano - MCH): - Masana abwino!

MM: - Ndiloleni ndikudziwitseni Maxim. Max ndi injiniya waluso, wogwiritsa ntchito maukonde wabwino kwambiri yemwe ndimamudziwa. Maxim amakhudzidwa ndi maukonde ndi mautumiki, chitukuko chawo ndi ntchito.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MCH: - Ndipo ndikufuna ndikuuzeni za Mikhail. Mikhail ndi wopanga C. Adalemba njira zingapo zosinthira magalimoto ambiri kukampani yathu. Timakhala ndikugwira ntchito ku Urals, mumzinda wa Chelyabinsk wa amuna amphamvu, mu kampani ya Intersvyaz. Kampani yathu ndi yopereka chithandizo cha intaneti ndi zingwe za kanema wawayilesi kwa anthu miliyoni imodzi m'mizinda 16.

MM: - Ndipo m'pofunika kunena kuti Intersvyaz ndi zambiri kuposa wothandizira, ndi kampani ya IT. Mayankho athu ambiri amapangidwa ndi dipatimenti yathu ya IT.

A: kuchokera ku maseva akukonza kuchuluka kwa magalimoto kupita kumalo oimbira foni ndi kugwiritsa ntchito mafoni. Dipatimenti ya IT tsopano ili ndi anthu pafupifupi 80 omwe ali ndi luso losiyanasiyana.

Za Zabbix ndi kamangidwe kake

MCH: - Ndipo tsopano ndiyesera kukhazikitsa mbiri yanga ndikunena mu mphindi imodzi zomwe Zabbix ndi (pambuyo pake amatchedwa "Zabbix").

Zabbix imadziyika yokha ngati njira yowunikira mabizinesi kunja kwa bokosi. Ili ndi zinthu zambiri zomwe zimapangitsa moyo kukhala wosavuta: malamulo okwera kwambiri, API yophatikizira, kupanga magulu ndi kuzindikira okha omwe ali ndi makamu ndi ma metrics. Zabbix ali ndi zida zotchedwa makulitsidwe - ma proxies. Zabbix ndi njira yotseguka.

Mwachidule za zomangamanga. Titha kunena kuti ili ndi zigawo zitatu:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

  • Seva. Yolembedwa mu C. Ndi kukonza kovuta komanso kusamutsa chidziwitso pakati pa ulusi. Kukonzekera konse kumachitika mmenemo: kuyambira kulandira mpaka kusunga ku database.
  • Deta yonse imasungidwa mu database. Zabbix imathandizira MySQL, PostreSQL ndi Oracle.
  • Mawonekedwe a intaneti amalembedwa mu PHP. Pamakina ambiri amabwera ndi seva ya Apache, koma imagwira ntchito bwino kuphatikiza nginx + php.

Lero tikufuna kufotokoza nkhani imodzi kuchokera pamoyo wa kampani yathu yokhudzana ndi Zabbix...

Nkhani ya moyo wa kampani ya Intersvyaz. Kodi tili ndi chiyani ndipo timafunikira chiyani?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi
5 kapena 6 miyezi yapitayo. Tsiku lina pambuyo pa ntchito ...

MCH: - Misha, moni! Ndine wokondwa kuti ndakwanitsa kukugwirani - pali zokambirana. Tinalinso ndi vuto loyang'anira. Panthawi ya ngozi yaikulu, chirichonse chinali pang'onopang'ono ndipo panalibe chidziwitso chokhudza mkhalidwe wa intaneti. Tsoka ilo, aka sikanali koyamba kuti izi zichitike. Ndikufuna thandizo lanu. Tiyeni tigwire ntchito yowunikira nthawi iliyonse!

MM: - Koma tiyeni tigwirizane poyamba. Sindinayang'ane kumeneko kwa zaka zingapo. Momwe ndikukumbukira, tidasiya Nagios ndikusintha ku Zabbix pafupifupi zaka 8 zapitazo. Ndipo tsopano tikuwoneka kuti tili ndi ma seva amphamvu 6 komanso pafupifupi ma proxies khumi ndi awiri. Kodi ndikusokoneza chilichonse?

MCH: - Pafupifupi. Ma seva 15, ena mwa iwo ndi makina enieni. Chinthu chofunika kwambiri n’chakuti sichimatipulumutsa pa nthawi imene tikuchifuna kwambiri. Monga ngozi - ma seva amachepetsa ndipo simungathe kuwona kalikonse. Tidayesa kukhathamiritsa kasinthidwe, koma izi sizinapereke kuchuluka kwa magwiridwe antchito.

MM: - Zikumveka. Kodi munayang'anapo kena kake, kodi munakumba kale kena kake kuchokera ku diagnostics?

MCH: - Choyambirira chomwe muyenera kuthana nacho ndi database. MySQL imakhala yodzaza nthawi zonse, ndikusunga ma metrics atsopano, ndipo Zabbix ikayamba kupanga zinthu zambiri, nkhokweyo imapita ku overdrive kwa maola angapo. Ndakuuzani kale za kukhathamiritsa kasinthidwe, koma kwenikweni chaka chino iwo anasintha hardware: ma seva ali ndi ma gigabytes oposa zana a kukumbukira ndi disk arrays pa SSD RAIDs - palibe chifukwa kukula izo linearly kwa nthawi yaitali. Kodi timatani?

MM: - Zikumveka. Mwambiri, MySQL ndi database ya LTP. Mwachiwonekere, sikulinso koyenera kusungira zakale zama metric a kukula kwathu. Tiyeni tiganizire.

MCH: - Tiyeni!

Kuphatikiza kwa Zabbix ndi Clickhouse chifukwa cha hackathon

Patapita nthawi, tinalandira deta yosangalatsa:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Malo ambiri m'dawunilodi yathu adakhala ndi zolemba zakale ndipo zosakwana 1% zidagwiritsidwa ntchito pokonzekera, ma tempulo ndi zoikamo. Pofika nthawi imeneyo, tinali tikugwiritsa ntchito njira ya Big data kutengera Clickhouse kwa nthawi yopitilira chaka. Mayendedwe ake anali odziwikiratu kwa ife. Pa Hackathon yathu yamasika, ndinalemba kuphatikiza kwa Zabbix ndi Clickhouse kwa seva ndi kutsogolo. Panthawiyo, Zabbix anali kale ndi chithandizo cha ElasticSearch, ndipo tinaganiza zowafanizira.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kuyerekeza kwa Clickhouse ndi Elasticsearch

MM: - Poyerekeza, tinapanga katundu wofanana ndi momwe seva ya Zabbix imapereka ndikuyang'ana momwe machitidwewo angachitire. Tinalemba zambiri m'magulu a mizere 1000, pogwiritsa ntchito CURL. Tidaganiza pasadakhale kuti Clickhouse ikhala yothandiza kwambiri pazambiri zomwe Zabbix amachita. Zotsatira zidaposa zomwe tinkayembekezera:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pansi pa mayeso omwewo, Clickhouse adalemba zambiri katatu. Panthawi imodzimodziyo, machitidwe onsewa amadya bwino kwambiri (zochepa zochepa) powerenga deta. Koma ma Elastics amafunikira purosesa yayikulu pojambula:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pazonse, Clickhouse inali yopambana kwambiri kuposa Elastix pakugwiritsa ntchito purosesa komanso liwiro. Nthawi yomweyo, chifukwa cha kupsinjika kwa data, Clickhouse imagwiritsa ntchito kuchepera kwa 11 pa hard drive ndipo imagwira ntchito pafupifupi 30 kucheperako disk:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MCH: - Inde, ntchito ya Clickhouse ndi disk subsystem imayendetsedwa bwino kwambiri. Mutha kugwiritsa ntchito ma disks akulu a SATA pama database ndikupeza liwiro lolemba mazana masauzande a mizere pamphindikati. Dongosolo la kunja kwa bokosi limathandizira sharding, kubwereza, ndipo ndikosavuta kukonza. Ndife okhutira kwambiri ndi kugwiritsidwa ntchito kwake chaka chonse.

Kuti muwongolere zothandizira, mutha kukhazikitsa Clickhouse pafupi ndi nkhokwe yanu yayikulu ndikusunga nthawi yambiri ya CPU ndi magwiridwe antchito a disk. Tasuntha zolemba zakale zamametrics kumagulu omwe alipo a Clickhouse:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Tinamasula database yayikulu ya MySQL kotero kuti titha kuyiphatikiza pamakina amodzi ndi seva ya Zabbix ndikusiya seva yodzipatulira ya MySQL.

Kodi kuvota kumagwira ntchito bwanji ku Zabbix?

4 miyezi yapitayo

MM: - Chabwino, kodi tingaiwale za mavuto ndi maziko?

MCH: - Ndizowona! Vuto lina lomwe tiyenera kuthetsa ndikusonkhanitsa deta pang'onopang'ono. Tsopano ma seva athu onse oyimira 15 adzaza ndi SNMP ndi njira zovotera. Ndipo palibe njira kupatula kukhazikitsa ma seva atsopano ndi atsopano.

MM: - Zabwino. Koma choyamba, tiuzeni momwe kuvota kumagwirira ntchito ku Zabbix?

MCH: - Mwachidule, pali mitundu 20 ya ma metric ndi njira khumi ndi ziwiri zowapezera. Zabbix ikhoza kusonkhanitsa deta mu "pempho-yankho" mode, kapena kuyembekezera zatsopano kudzera mu "Trapper Interface".

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ndikoyenera kudziwa kuti mu Zabbix yoyambirira njira iyi (Trapper) ndiyofulumira kwambiri.

Pali ma seva a proxy ogawa katundu:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ma proxies amatha kugwira ntchito zosonkhanitsira zomwezo monga seva ya Zabbix, kulandira ntchito kuchokera kwa iyo ndi kutumiza ma metric osonkhanitsidwa kudzera pa mawonekedwe a Trapper. Iyi ndi njira yovomerezeka yovomerezeka yogawira katunduyo. Ma proxies ndiwothandizanso pakuwunika magwiridwe antchito akutali omwe akugwira ntchito kudzera mu NAT kapena njira yocheperako:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Chilichonse chimamveka bwino ndi zomangamanga. Tiyenera kuyang'ana ma sources ...

Patapita masiku angapo

Nkhani ya momwe nmap fping idapambana

MM: "Ndikuganiza kuti ndakumba chinachake."

MCH: - Ndiuzeni!

MM: - Ndidazindikira kuti ndikayang'ana kupezeka, Zabbix imayang'ana makamu opitilira 128 panthawi imodzi. Ndinayesa kuwonjezera chiwerengerochi kufika pa 500 ndikuchotsa nthawi yapakati-paketi mu ping yawo (ping) - izi zinachulukitsa kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kawiri kanawirika bwino ukukwera. Koma ndikufuna manambala okulirapo.

MCH: - Pazochita zanga, nthawi zina ndimayenera kuyang'ana kupezeka kwa makamu masauzande ambiri, ndipo sindinawonepo chilichonse mwachangu kuposa nmap pa izi. Ndikutsimikiza kuti iyi ndi njira yachangu kwambiri. Tiyeni tiyese! Tiyenera kuonjezera kwambiri chiwerengero cha makamu pobwerezabwereza.

MM: – Onani oposa mazana asanu? 600 pa?

MCH: - Osachepera zikwi zingapo.

MM: - CHABWINO. Chofunikira kwambiri chomwe ndimafuna kunena ndikuti ndapeza kuti mavoti ambiri ku Zabbix ​​amachitika mogwirizana. Tiyeneradi kusintha kuti akhale asynchronous mode. Ndiye tikhoza kuonjezera kwambiri chiwerengero cha ma metrics omwe amasonkhanitsidwa ndi oponya voti, makamaka ngati tiwonjezera chiwerengero cha ma metrics pa kubwereza.

MCH: - Zabwino! Ndipo liti?

MM: - Monga mwachizolowezi, dzulo.

MCH: - Tidayerekeza mitundu yonse ya fping ndi nmap:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pagulu lalikulu la makamu, nmap ikuyembekezeka kukhala yogwira ntchito mpaka kasanu. Popeza nmap imangoyang'ana kupezeka ndi nthawi yoyankha, tidasuntha kuwerengera kwa zotayika ku zoyambitsa ndikuchepetsa kwambiri nthawi yowunika. Tapeza kuchuluka kwa makamu a nmap kukhala pafupifupi 4 pobwerezabwereza. Nmap idatilola kuti tichepetse mtengo wa macheke a CPU katatu ndikuchepetsa nthawi kuchokera masekondi 120 mpaka 10.

Kukhathamiritsa mavoti

MM: "Kenako tidayamba kuchita masankho. Tinkakonda kwambiri kuzindikira kwa SNMP ndi othandizira. Ku Zabbix, kuvota kumachitika mogwirizana ndipo njira zapadera zatengedwa kuti ziwonjezeke bwino kwadongosolo. Munjira yofananira, kusapezeka kwa wolandila kumayambitsa kuwonongeka kwakukulu kwa mavoti. Pali dongosolo lonse la mayiko, pali njira zapadera - zomwe zimatchedwa osafikirika, zomwe zimagwira ntchito ndi makamu osafikirika:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ichi ndi ndemanga yomwe imasonyeza matrix a boma, zovuta zonse za dongosolo la kusintha komwe kumafunika kuti dongosolo likhalebe logwira ntchito. Kuphatikiza apo, kuvota kofananira komweko kumachedwa:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ichi ndichifukwa chake masauzande a ma poller pa ma proxies ambiri sanathe kusonkhanitsa deta yofunikira kwa ife. Kukhazikitsa kosasunthika sikunathetse mavuto okha ndi kuchuluka kwa ulusi, komanso kunafewetsa dongosolo la boma la makamu omwe sanapezeke, chifukwa pa nambala iliyonse yomwe imayang'aniridwa ndikubwereza kuvotera kumodzi, nthawi yayitali yodikirira inali nthawi imodzi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kuphatikiza apo, tidasintha ndikuwongolera njira yovotera pazofunsira za SNMP. Chowonadi ndi chakuti anthu ambiri sangathe kuyankha zopempha zingapo za SNMP nthawi imodzi. Chifukwa chake, tidapanga mtundu wosakanizidwa, pomwe kuvotera kwa SNMP kwa wolandira yemweyo kumachitika mosagwirizana:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Izi zimachitikira gulu lonse la makamu. Izi sizimachedwa pang'onopang'ono kuposa momwe zimakhalira, popeza kuvota kwa SNMP zana limodzi ndi theka kumathamanga kwambiri kuposa nthawi imodzi.

Zoyeserera zathu zawonetsa kuti kuchuluka kwa zopempha pakubwereza kamodzi ndi pafupifupi 8 zikwi ndi mavoti a SNMP. Ponseponse, kusintha kwa asynchronous mode kunatilola kufulumizitsa ntchito yovota ndi nthawi 200, mazana angapo.

MCH: - Zotsatira zake zovotera zidawonetsa kuti sitingathe kungochotsa ma proxies onse, komanso kuchepetsa nthawi yamacheke ambiri, ndipo ma proxies sadzafunikanso ngati njira yogawana katunduyo.

Pafupifupi miyezi itatu yapitayo

Sinthani kamangidwe - onjezani katundu!

MM: - Chabwino, Max, kodi ndi nthawi yoti muchite bwino? Ndikufuna seva yamphamvu komanso injiniya wabwino.

MCH: - Chabwino, tiyeni tikonze. Ndi nthawi yoti musunthe kuchoka pakufa kwa ma metrics 5 pamphindikati.

M'mawa mutatha kukweza

MCH: - Misha, tadzisintha tokha, koma pofika m'mawa tidabwerera ... Tangoganizani liwiro lomwe tidakwanitsa kuchita?

MM: - 20 zikwi pazipita.

MCH: -Iye, 25! Tsoka ilo, tili pomwe tinayambira.

MM: - Chifukwa chiyani? Kodi munayesapo matenda aliwonse?

MCH: - Inde, zedi! Pano, mwachitsanzo, pali chosangalatsa chapamwamba:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Tiyeni tiwone. Ndikuwona kuti tayesa ulusi wambiri wovotera:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Koma nthawi yomweyo sakanatha kukonzanso dongosololi ngakhale theka:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ndipo magwiridwe antchito onse ndi ochepa, pafupifupi ma metrics 4 pamphindikati:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kodi pali chinanso?

MCH: - Inde, mtundu wa m'modzi mwa oponya voti:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Apa mutha kuwona bwino lomwe kuti njira yovota ikudikirira "semaphores". Maloko ake ndi awa:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MCH: - Zosamveka.

MM: - Tawonani, izi zikufanana ndi momwe ulusi wambiri ukuyesera kugwira ntchito ndi zinthu zomwe munthu yekha angagwire ntchito panthawi imodzi. Ndiye zomwe angachite ndikugawana izi pakapita nthawi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ndipo ntchito yonse yogwira ntchito ndi chida chotere imakhala yochepa ndi liwiro la pachimake chimodzi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pali njira ziwiri zothetsera vutoli.

Sinthani zida zamakina, sinthani ku ma cores othamanga:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kapena sinthani kamangidwe kake ndipo nthawi yomweyo musinthe katundu:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MCH: - Mwa njira, pamakina oyesera tidzagwiritsa ntchito ma cores ochepa kuposa omwe akulimbana nawo, koma amathamanga nthawi 1,5 pafupipafupi pachimake!

MM: - Zomveka? Muyenera kuyang'ana pa code ya seva.

Njira ya data mu seva ya Zabbix

MCH: - Kuti tizindikire, tidayamba kusanthula momwe deta imasamutsidwira mkati mwa seva ya Zabbix:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chithunzi chabwino, chabwino? Tiyeni tidutsemo pang'onopang'ono kuti timveke bwino. Pali ulusi ndi ntchito zomwe zimayenera kusonkhanitsa deta:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Amatumiza ma metric omwe asonkhanitsidwa kudzera pa soketi kupita kwa manejala wa Preprocessor, komwe amasungidwa pamzere:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

"Woyang'anira preprocessor" amatumiza zidziwitso kwa ogwira ntchito ake, omwe amatsatira malangizo okonzekera ndikubwezeretsanso kudzera mu socket yomweyo:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pambuyo pake, woyang'anira preprocessor amawasunga mu cache ya mbiriyakale:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kuchokera kumeneko amatengedwa ndi ozama mbiri, omwe amachita ntchito zambiri: mwachitsanzo, kuwerengera zoyambitsa, kudzaza cache yamtengo wapatali ndipo, chofunika kwambiri, kupulumutsa ma metrics muzosungirako mbiriyakale. Kawirikawiri, njirayi ndi yovuta komanso yosokoneza kwambiri.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Chinthu choyamba chomwe tidawona chinali chakuti ulusi wambiri umapikisana ndi zomwe zimatchedwa "cache yokonzekera" (malo okumbukira kumene makonzedwe onse a seva amasungidwa). Milu yomwe imayang'anira kusonkhanitsa deta imakhala yotsekereza kwambiri:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

...popeza masinthidwe amasunga osati ma metric okhala ndi magawo awo, komanso mizere yomwe oponya voti amatengera zomwe angachite. Pakakhala oponya voti ambiri ndipo m'modzi atsekereza kasinthidwe, enawo amadikirira zopempha:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Oponya zisankho sayenera kukangana

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chifukwa chake, chinthu choyamba chomwe tidachita ndikugawa mzerewo m'magawo 4 ndikulola ovota kuti atseke mizere iyi, magawo awa nthawi imodzi, pansi pazikhalidwe zotetezeka:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Izi zinachotsa mpikisano wa cache kasinthidwe, ndipo liwiro la oponya voti linakula kwambiri. Koma tidakumana ndi mfundo yakuti woyang'anira preprocessor adayamba kudziunjikira ntchito:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Woyang'anira Preprocessor ayenera kuyika patsogolo

Izi zidachitika pomwe adasowa ntchito. Ndiye zomwe akanatha kuchita ndikusonkhanitsa zopempha kuchokera kuzinthu zosonkhanitsira deta ndikuwonjezera zosungira mpaka zitawononga kukumbukira konse ndikuwonongeka:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kuti tithane ndi vutoli, tawonjezera socket yachiwiri yomwe idaperekedwa makamaka kwa ogwira ntchito:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chifukwa chake, woyang'anira preprocessor anali ndi mwayi woyika patsogolo ntchito yake ndipo, ngati buffer ikukula, ntchitoyo ndikuchepetsa kuchotsedwa, kupatsa antchito mwayi woti atenge buffer iyi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kenako tinapeza kuti chimodzi mwa zifukwa zimene zinachititsa kuti kuchepeko n’komwe ndi ogwira ntchito enieniwo, chifukwa anali kupikisana ndi chinthu chimene chinali chosafunikira kwenikweni pa ntchito yawo. Tidalemba vutoli ngati cholakwika, ndipo lathetsedwa kale m'mitundu yatsopano ya Zabbix:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Timaonjezera chiwerengero cha sockets - timapeza zotsatira

Kupitilira apo, woyang'anira preprocessor yekha adakhala botolo, chifukwa ndi ulusi umodzi. Idakhazikika pa liwiro lapakati, ndikupatsa liwiro lalikulu pafupifupi ma metrics 70 pa sekondi iliyonse:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chifukwa chake, tinapanga anayi, okhala ndi zitsulo zinayi, ogwira ntchito:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Ndipo izi zidatipangitsa kuti tiwonjezere liwiro mpaka ma metrics pafupifupi 130:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Kusagwirizana kwa kukula kumafotokozedwa ndi mfundo yakuti mpikisano wa cache wa mbiriyakale wawonekera. 4 oyang'anira preprocessor ndi ozama mbiri adapikisana nawo. Panthawiyi, tinali kulandira ma metrics pafupifupi 130 sekondi iliyonse pamakina oyesera, kugwiritsa ntchito pafupifupi 95% ya purosesa:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pafupifupi miyezi 2,5 yapitayo

Kukana kwa snmp-community kunachulukitsa ma NVP nthawi imodzi ndi theka

MM: - Max, ndikufuna galimoto yatsopano yoyesera! Sitikugwirizananso ndi zomwe zilipo panopa.

MCH: - Muli ndi chiyani tsopano?

MM: - Tsopano - 130k NVPs ndi purosesa yokonzekera alumali.

MCH: - Oo! Zabwino! Dikirani, ndili ndi mafunso awiri. Malinga ndi kuwerengera kwanga, chosowa chathu chili pafupi ndi 15-20 zikwi za metrics pamphindikati. N’cifukwa ciani tifunika zina?

MM: "Ndikufuna kumaliza ntchito." Ndikufuna kuwona kuti tingafinyire zochuluka bwanji m'dongosolo lino.

MCH: -Koma…

MM: "Koma sizothandiza pabizinesi."

MCH: - Zikumveka. Ndipo funso lachiwiri: kodi tingathandizire zomwe tili nazo pano patokha, popanda kuthandizidwa ndi wopanga mapulogalamu?

MM: - Sindikuganiza. Kusintha momwe cache yosinthira imagwirira ntchito ndizovuta. Zimakhudza kusintha kwa ulusi wambiri ndipo zimakhala zovuta kuzisamalira. Mwinamwake, zidzakhala zovuta kwambiri kuzisamalira.

MCH: "Ndiye tifunika njira ina."

MM: - Pali njira yotere. Titha kusinthira ku ma cores othamanga, ndikusiya njira yatsopano yotsekera. Tipezabe magwiridwe antchito a 60-80 zikwi zikwi. Panthawi imodzimodziyo, tikhoza kusiya ma code ena onse. Kuvotera kwa Clickhouse ndi asynchronous kudzagwira ntchito. Ndipo zidzakhala zosavuta kuzisamalira.

MCH: - Zodabwitsa! Ine ndikuti tiyime apa.

Titakonza mbali ya seva, tidatha kukhazikitsa code yatsopano kuti ipangidwe. Tidasiya zina mwazosintha zomwe timakonda kusintha makina okhala ndi ma cores othamanga ndikuchepetsa kuchuluka kwa ma code. Tafewetsanso masinthidwe ndikuchotsa ma macros muzinthu za data ngati kuli kotheka, popeza amayambitsa kutseka kwina.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Mwachitsanzo, kusiya snmp-community macro, yomwe nthawi zambiri imapezeka muzolemba ndi zitsanzo, kwa ife kunapangitsa kuti zitheke kupititsa patsogolo ma NVPs pafupifupi nthawi 1,5.

Patapita masiku awiri kupanga

Kuchotsa ma pop-up a mbiri ya zochitika

MCH: - Misha, takhala tikugwiritsa ntchito dongosolo kwa masiku awiri, ndipo zonse zimagwira ntchito. Koma kokha pamene chirichonse chikugwira ntchito! Tinakonzekera ntchito ndi kusamutsa gawo lalikulu la maukonde, ndipo tinayang'ananso ndi manja athu zomwe zidakwera ndi zomwe sizinachitike.

MM: Sizingatheke! Tinayang'ana zonse kakhumi. Seva imayendetsa ngakhale kusapezeka kwathunthu kwa netiweki nthawi yomweyo.

MCH: - Inde, ndikumvetsa chirichonse: seva, database, pamwamba, austat, logs - chirichonse chiri mofulumira ... Koma timayang'ana pa intaneti, ndipo pali purosesa "mu alumali" pa seva ndi izi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Zikumveka. Tiyeni tiwone ukonde. Tidapeza kuti panthawi yomwe panali zochitika zambiri, ma widget ambiri amoyo adayamba kugwira ntchito pang'onopang'ono:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chifukwa chake chinali m'badwo wama pop-ups a mbiri yakale omwe amapangidwa pachinthu chilichonse pamndandanda. Chifukwa chake, tidasiya m'badwo wa mazenera awa (tidapereka ndemanga pamizere 5 mu code), ndipo izi zidathetsa mavuto athu.

Nthawi yotsitsa ma widget, ngakhale palibe, yachepetsedwa kuchokera pa mphindi zingapo kupita ku masekondi 10-15 ovomerezeka kwa ife, ndipo mbiriyo imatha kuwonedwa podina nthawiyo:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Pambuyo pa ntchito. Miyezi 2 yapitayo

MCH: - Misha, kodi ukuchoka? Tiyenera kuyankhula.

MM: - Sindinafune kutero. Chinachake ndi Zabbix kachiwiri?

MCH: - Ayi, pumulani! Ndinkangofuna kunena kuti: zonse zimagwira ntchito, zikomo! Ndili ndi mowa.

Zabbix ndiwothandiza

Zabbix ndi dongosolo lachilengedwe komanso lolemera komanso ntchito. Itha kugwiritsidwa ntchito pazoyika zing'onozing'ono kunja kwa bokosi, koma momwe zosowa zikukula, ziyenera kukonzedwa bwino. Kuti musunge zosunga zakale zazikulu zama metric, gwiritsani ntchito malo oyenera:

  • mutha kugwiritsa ntchito zida zomangidwira munjira yophatikizira ndi Elasticsearch kapena kutsitsa mbiri kumafayilo amawu (omwe akupezeka mu mtundu 4);
  • Mutha kutenga mwayi pazomwe takumana nazo ndikuphatikizana ndi Clickhouse.

Kuti muwonjeze kwambiri liwiro la kusonkhanitsa ma metrics, sonkhanitsani pogwiritsa ntchito njira zosasinthika ndikuzipereka kudzera mu mawonekedwe a trapper kupita ku seva ya Zabbix; kapena mutha kugwiritsa ntchito chigamba kuti mupange mavoti a Zabbix kukhala asynchronous.

Zabbix idalembedwa mu C ndipo ndiyothandiza kwambiri. Kuthetsa zopinga zingapo zomanga kumakuthandizani kuti muwonjezere magwiridwe antchito ake ndipo, mwazomwe takumana nazo, pezani ma metric opitilira 100 pamakina a purosesa imodzi.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chigamba chomwecho cha Zabbix

MM: - Ndikufuna kuwonjezera mfundo zingapo. Lipoti lonse lapano, mayeso onse, manambala amaperekedwa pamasinthidwe omwe timagwiritsa ntchito. Tsopano tikutenga ma metrics pafupifupi 20 sekondi iliyonse kuchokera pamenepo. Ngati mukuyesera kumvetsetsa ngati izi zikuthandizani, mutha kufananiza. Zomwe zidakambidwa lero zayikidwa pa GitHub ngati chigamba: github.com/miklert/zabbix

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

Chigambacho chimaphatikizapo:

  • kuphatikiza kwathunthu ndi Clickhouse (onse Zabbix seva ndi frontend);
  • kuthetsa mavuto ndi woyang'anira preprocessor;
  • mavoti asynchronous.

Chigambacho chimagwirizana ndi mtundu wonse 4, kuphatikiza lts. Mwinamwake, ndi zosintha zochepa zidzagwira ntchito pa version 3.4.

Zikomo chifukwa tcheru chanu.

Mafunso anu

Funso lochokera kwa omvera (kuchokera pano - A): - Masana abwino! Chonde ndiuzeni, kodi muli ndi mapulani okhudzana kwambiri ndi gulu la Zabbix kapena ndi inu, kotero kuti ichi si chigamba, koma khalidwe labwino la Zabbix?

MM: - Inde, tidzasintha zina mwazosintha. Chinachake chidzachitika, chinachake chikhalabe mu chigamba.

A: - Zikomo kwambiri chifukwa cha lipoti labwino kwambiri! Chonde ndiuzeni, mutagwiritsa ntchito chigambacho, chithandizo chochokera ku Zabbix chikhalabe komanso momwe mungapitirire kusinthira kumitundu yapamwamba? Kodi zingatheke kusintha Zabbix pambuyo pa chigamba chanu ku 4.2, 5.0?

MM: - Sindingathe kunena chilichonse chokhudza chithandizo. Ndikadakhala thandizo laukadaulo la Zabbix, ndinganene kuti ayi, chifukwa iyi ndi code ya wina. Ponena za codebase ya 4.2, udindo wathu ndi: "Tidzayenda ndi nthawi, ndipo tidzasintha tokha pamtundu wina." Chifukwa chake, kwakanthawi tikhala tikutumiza chigamba chamitundu yosinthidwa. Ndanena kale mu lipotilo: chiwerengero cha zosintha ndi matembenuzidwe akadali ochepa. Ndikuganiza kuti kusintha kuchokera ku 3.4 kupita ku 4 kunatitengera pafupifupi mphindi 15. Chinachake chinasintha pamenepo, koma osati chofunika kwambiri.

A: - Ndiye mukukonzekera kuthandizira chigamba chanu ndipo mutha kuyiyika mosamala popanga ndikulandila zosintha mwanjira ina mtsogolo?

MM: - Timalimbikitsa kwambiri. Izi zimathetsa mavuto ambiri kwa ife.

MCH: - Apanso, ndikufuna ndikuwonetseni kuti zosintha zomwe sizikukhudzana ndi zomangamanga ndipo sizikhudza kutsekereza kapena mizere ndi modular, zili m'magawo osiyana. Ngakhale zosintha zazing'ono mutha kuzisunga mosavuta.

MM: - Ngati mukufuna zambiri, ndiye "Clickhouse" imagwiritsa ntchito laibulale yotchedwa mbiri yakale. Imamasulidwa - ndi kopi ya chithandizo cha Elastics, ndiye kuti, imatha kusinthika. Kuvota kumangosintha ovota. Tikukhulupirira kuti izi zigwira ntchito kwa nthawi yayitali.

A: - Zikomo kwambiri. Ndiuzeni, kodi pali zolembedwa zilizonse zosintha zomwe zachitika?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS pa seva imodzi

MM: - Zolemba ndi chigamba. Mwachiwonekere, poyambitsa Clickhouse, ndikuyambitsa mitundu yatsopano ya oponya zisankho, zosankha zatsopano zimawuka. Ulalo wa slide yomaliza uli ndi kufotokozera mwachidule momwe mungagwiritsire ntchito.

Zakusintha fping ndi nmap

A: - Munakwaniritsa bwanji izi? Kodi mungapereke zitsanzo zenizeni: muli ndi zomangira ndi zolemba zakunja? Ndi chiyani chomwe chimamaliza kuyang'ana kuchuluka kwa olandila mwachangu chotere? Kodi mumawapeza bwanji alendowa? Kodi tiyenera kuwadyetsa ku nmap mwanjira ina, kuwatenga kwinakwake, kuwayika, kuyendetsa china chake? ..

MM: - Zabwino. Funso lolondola kwambiri! Mfundo ndi iyi. Tinasintha laibulale (ICMP ping, gawo la Zabbix) pa macheke a ICMP, omwe amasonyeza chiwerengero cha mapaketi - imodzi (1), ndipo code ikuyesera kugwiritsa ntchito nmap. Ndiko kuti, iyi ndi ntchito yamkati ya Zabbix, yomwe yakhala ntchito yamkati ya pinger. Chifukwa chake, palibe kulunzanitsa kapena kugwiritsa ntchito trapper kumafunika. Izi zinachitidwa mwadala kuti achoke m'dongosololi komanso kuti asagwirizane ndi kugwirizanitsa machitidwe awiri a database: zomwe mungayang'ane, kuyika kudzera mwa oponya voti, ndipo kodi kukweza kwathu kwasweka? .. Izi ndizosavuta.

A: - Kodi zimagwiranso ntchito kwa ma proxies?

MM: - Inde, koma sitinayang'ane. Khodi yovotera ndi yofanana mu Zabbix ndi seva. Iyenera kugwira ntchito. Ndiloleni nditsindikenso: kachitidwe kadongosolo kameneka ndikuti sitifunikira woyimira.

MCH: - Yankho lolondola la funsoli ndi: "N'chifukwa chiyani mukufunikira pulojekiti yokhala ndi makina otere?" Chifukwa cha NAT kapena kuwunika kudzera munjira ina yocheperako ...

A: - Ndipo mumagwiritsa ntchito Zabbix ngati allertor, ngati ndikumvetsa bwino. Kapena zithunzi zanu (pamene malo osungiramo zakale) zasamukira ku dongosolo lina, monga Grafana? Kapena simukugwiritsa ntchito izi?

MM: - Nditsindikanso kachiwiri: tapeza kusakanikirana kwathunthu. Tikutsanulira mbiri mu Clickhouse, koma nthawi yomweyo tasintha php frontend. Php kutsogolo kumapita ku Clickhouse ndikuchita zojambula zonse kuchokera pamenepo. Panthawi imodzimodziyo, kunena zoona, tili ndi gawo lomwe limamanga deta mu machitidwe ena owonetsera zojambulajambula kuchokera ku Clickhouse yomweyo, kuchokera ku deta yomweyo ya Zabbix.

MCH: - Mu "Grafan" komanso.

Kodi zisankho zinapangidwa bwanji pa nkhani ya kugaŵidwa kwa zipangizo?

A: - Gawani pang'ono khitchini yanu yamkati. Kodi chigamulo chinapangidwa bwanji kuti kunali koyenera kugawira ndalama zothandizira kukonza kwambiri mankhwalawo? Izi ndi, kawirikawiri, zoopsa zina. Ndipo chonde ndiuzeni, m'mawu oti muthandizira zomasulira zatsopano: kodi chisankhochi chikugwirizana bwanji ndi kasamalidwe?

MM: - Mwachiwonekere, sitinanene bwino sewero la mbiriyakale. Tidapezeka kuti tidayenera kuchitapo kanthu, ndipo tidapita ndi magulu awiri ofanana:

  • Mmodzi anali kukhazikitsa njira yowunikira pogwiritsa ntchito njira zatsopano: kuyang'anira ngati ntchito, ndondomeko yokhazikika ya mayankho otseguka omwe timagwirizanitsa ndikuyesera kusintha ndondomeko ya bizinesi kuti tigwire ntchito ndi njira yatsopano yowunikira.
  • Panthawi imodzimodziyo, tinali ndi wolemba mapulogalamu wachangu yemwe anali kuchita izi (za iyemwini). Zinachitika kuti anapambana.

A: - Ndipo kukula kwa timu ndi chiyani?

MCH: - Iye ali pamaso panu.

A: - Ndiye, monga nthawi zonse, mumafunikira wokonda?

MM: -Sindikudziwa chomwe chilakolako ndi chiyani.

A: - Pankhaniyi, mwachiwonekere, inu. Zikomo kwambiri, ndinu odabwitsa.

MM: - Zikomo.

Za zigamba za Zabbix

A: - Pa dongosolo lomwe limagwiritsa ntchito ma proxies (mwachitsanzo, m'makina ena ogawidwa), ndizotheka kusintha ndikuyika, kunena, oponya mavoti, ma proxies ndi gawo lokonzekera la Zabbix palokha; ndi kuyanjana kwawo? Kodi ndizotheka kukhathamiritsa zomwe zilipo kale pamakina okhala ndi ma proxies angapo?

MM: - Ndikudziwa kuti seva ya Zabbix imasonkhanitsidwa pogwiritsa ntchito proxy (code imapangidwa ndikupezedwa). Sitinayese izi popanga. Sindikudziwa za izi, koma ndikuganiza kuti woyang'anira processor sagwiritsidwa ntchito ngati proxy. Ntchito ya proxy ndikutenga seti ya ma metrics kuchokera ku Zabbix, kuwaphatikiza (imalembanso kasinthidwe, malo osungirako malo) ndikubwezeretsanso ku seva ya Zabbix. Seva yokhayo idzachita preprocessing ikalandira.

Chidwi ndi ma proxies ndichomveka. Tizifufuza. Uwu ndi mutu wosangalatsa.

A: - Lingaliro linali ili: ngati mutha kuyika ma pollers, mutha kuwayika pa proxy ndikusintha kuyanjana ndi seva, ndikusintha preprocessor pazifukwa izi zokha pa seva.

MM: - Ndikuganiza kuti ndizosavuta. Mumatenga kachidindo, gwiritsani ntchito chigamba, ndikuchikonza momwe mukufunira - sonkhanitsani ma seva oyimira (mwachitsanzo, ndi ODBC) ndikugawa ma code omwe ali ndi zigamba pamakina. Ngati kuli kofunikira - sonkhanitsani proxy, ngati kuli kofunikira - seva.

A: - Mwinanso, simudzasowa kulumikizanso kutumizira kwa seva ku seva?

MCH: - Ayi, ndi muyezo.

MM: - M'malo mwake, lingaliro limodzi silinamveke. Takhala tikukhalabe pakati pa kuphulika kwa malingaliro ndi kuchuluka kwa kusintha ndi kumasuka kwa chithandizo.

Zotsatsa zina 🙂

Zikomo chifukwa chokhala nafe. Kodi mumakonda zolemba zathu? Mukufuna kuwona zambiri zosangalatsa? Tithandizeni potipatsa oda kapena kulimbikitsa anzathu, mtambo VPS kwa opanga kuchokera ku $ 4.99, ma analogi apadera a ma seva olowera, omwe adakupangirani inu: Chowonadi chonse chokhudza VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps kuchokera $19 kapena momwe mungagawire seva? (ikupezeka ndi RAID1 ndi RAID10, mpaka 24 cores mpaka 40GB DDR4).

Dell R730xd 2x yotsika mtengo ku Equinix Tier IV data center ku Amsterdam? Pokhapokha 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV kuchokera $199 ku Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - kuchokera $99! Werengani za Momwe mungamangire Infrastructure Corp. kalasi pogwiritsa ntchito ma seva a Dell R730xd E5-2650 v4 ofunika ma euro 9000 pa khobiri?

Source: www.habr.com

Kuwonjezera ndemanga