HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Konferenca e ardhshme HighLoad++ do të zhvillohet më 6 dhe 7 prill 2020 në Shën Petersburg. Detajet dhe biletat në lidhje. HighLoad++ Moskë 2018. Salla 'Moskva'. 9 nëntor, 15:00. Tezat dhe prezantimi.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

* Monitorimi — online dhe analiza.
* Kufizimet kryesore të platformës ZABBIX.
* Zgjidhja për zgjerimin e magazinës së analizave.
* Optimizimi i serverit ZABBIX.
* Optimizimi i UI.
* Eksperienca e përdorimit të sistemit nën ngarkesa mbi 40k NVPS.
* Përmbledhje e shkurtër.

Mikhail Makurov (pĂ«r mĂ« shumĂ« – MM): – PĂ«rshĂ«ndetje tĂ« gjithĂ«ve!

Maksim Chernetsov (pĂ«r mĂ« shumĂ« – MÇ): – MirĂ«mĂ«ngjesi!

MM: – Lejojeni tĂ« paraqes Maksimin. Maks ishte inxhinier i talentuar, specialisti mĂ« i mirĂ« nĂ« rrjet, qĂ« njoh. Maksim merret me rrjetet dhe shĂ«rbimet, zhvillimin dhe funksionimin e tyre.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MÇ: – UnĂ« do tĂ« doja tĂ« flas pĂ«r Mikhail. Mikhail Ă«shtĂ« njĂ« zhvillues nĂ« C. Ai ka shkruar disa zgjidhje me ngarkesĂ« tĂ« lartĂ« pĂ«r pĂ«rpunimin e trafikut pĂ«r kompaninĂ« tonĂ«. Ne jetojmĂ« dhe punojmĂ« nĂ« Urale, nĂ« qytetin e burrave tĂ« fortĂ« Çeljabinsk, nĂ« kompaninĂ« 'Intereskat'. Kompania jonĂ« Ă«shtĂ« njĂ« ofrues shĂ«rbimesh interneti dhe televizioni kabllor pĂ«r njĂ« milion njerĂ«z nĂ« 16 qytete.

MM: – Dhe duhet tĂ« theksoj se 'Intereskat' Ă«shtĂ« shumĂ« mĂ« shumĂ« se njĂ« provajder, Ă«shtĂ« njĂ« kompani IT. E shumta e zgjidhjeve tona janĂ« bĂ«rĂ« nga departamenti ynĂ« IT.

A: nga serverët që përpunojnë trafikun, deri te qendra e thirrjeve dhe aplikacioni mobil. Në departamentin IT aktualisht ka rreth 80 persona me kompetenca shumë të larmishme.

Rreth Zabbix dhe arkitekturës së tij

MÇ: – Tani do tĂ« pĂ«rpiqem tĂ« vendos rekord personal dhe nĂ« njĂ« minutĂ« tĂ« them se çfarĂ« Ă«shtĂ« Zabbix (pĂ«r mĂ« shumĂ« – 'Zabbix').

'Zabbix' pozicionohet si njĂ« sistem monitorimi 'nga kutia' i nivelit tĂ« sipĂ«rm. Ka shumĂ« funksione pĂ«r tĂ« lehtĂ«suar jetĂ«n: rregulla tĂ« zhvilluara tĂ« eskalimit, API pĂ«r integrim, grupimin dhe auto-zbulimin e mysafirĂ«ve dhe metrikeve. 'Zabbix' ka ashtuquajturat mjete pĂ«r zgjerim – proksi. 'Zabbix' Ă«shtĂ« njĂ« sistem me kod tĂ« hapur.

Përmbledhje e shkurtër mbi arkitekturën. Mund të thuhet se përbëhet nga tre komponentë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

  • Serveri. I shkruar nĂ« C. Me pĂ«rpunim dhe transmetim tĂ« mjaftueshĂ«m tĂ« komplikuar tĂ« informacionit midis proceseve. TĂ« gjitha pĂ«rpunimet ndodhin aty: nga marrja deri te ruajtja nĂ« bazĂ«.
  • TĂ« dhĂ«nat e gjitha ruhet nĂ« bazĂ«. 'Zabbix' mbĂ«shtet MySQL, PostgreSQL dhe Oracle.
  • NdĂ«rfaqja web Ă«shtĂ« e shkruar nĂ« PHP. NĂ« shumicĂ«n e sistemeve ofrohet me serverin Apache, por punon mĂ« efektivisht nĂ« lidhje me nginx + php.

Sot do të doja të ndaja një histori nga jeta e kompanisë sonë që lidhet me 'Zabbix'...

NjĂ« histori nga jeta e kompanisĂ« 'Intereskat'. ÇfarĂ« kemi dhe çfarĂ« na nevojitet?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server
5 ose 6 muaj më parë. Një herë pas pune...

MÇ: – Misha, pĂ«rshĂ«ndetje! Jam i lumtur qĂ« arrita tĂ« tĂ« kap, kemi njĂ« bisedĂ«. PĂ«rsĂ«ri kishim probleme me monitorimin. GjatĂ« njĂ« aksidenti tĂ« madh, gjithçka u ngadalĂ«sua, dhe nuk kishte informacione pĂ«r gjendjen e rrjetit. FatkeqĂ«sisht, kjo po pĂ«rsĂ«ritet pĂ«r herĂ« tĂ« parĂ«. Kam nevojĂ« pĂ«r ndihmĂ«n tĂ«nde. Le tĂ« bĂ«jmĂ« qĂ« monitorimi ynĂ« tĂ« funksionojĂ« nĂ« çdo rrethanĂ«!

MM: – Por le tĂ« fillojmĂ« duke e sinkronizuar veten. Nuk kam shikuar atje pĂ«r disa vjet. Sa e mbaj mend, ne u shkĂ«putĂ«m nga Nagios dhe kaluam nĂ« 'Zabbix' rreth 8 vjet mĂ« parĂ«. Dhe tani kemi, duket, 6 servera tĂ« fuqishĂ«m dhe rreth njĂ« duzinĂ« proksi. Nuk po e pĂ«rziej asgjĂ«?

MÇ: – Pothuajse. 15 servera, disa prej tĂ« cilĂ«ve janĂ« makina virtuale. E rĂ«ndĂ«sishmja Ă«shtĂ« se kjo nuk na shpĂ«ton nĂ« momentin kur kemi mĂ« nevojĂ«. Siç ndodhi aksidenti – serverĂ«t ngadalĂ«sohen dhe nuk shihet asgjĂ«. Provuar kemi tĂ« optimizojmĂ« konfigurimin, por nuk na jep rritje optimale tĂ« performancĂ«s.

MM: – E kuptoj. A keni parĂ« diçka, a keni mbledhur ndonjĂ« informacion nga diagnostika?

MÇ: – E para me tĂ« cilin duhet tĂ« merremi – Ă«shtĂ« baza e tĂ« dhĂ«nave. MySQL Ă«shtĂ« gjithmonĂ« e ngarkuar, duke ruajtur metrikat e reja, dhe kur 'Zabbix' fillon tĂ« gjenerojĂ« shumĂ« ngjarje – baza futet nĂ« vete pĂ«r disa orĂ«. PĂ«r optimizimin e konfigurimit tĂ« tĂ« dhĂ«nave tĂ« gabuara, teksa vetĂ«m kĂ«tĂ« vit kemi rinovuar harduerin: nĂ« serverĂ«t ka mĂ« shumĂ« se njĂ«qind giga memorie dhe sisteme disku nĂ« SSD RAID – rritja lineare nuk ka kuptim. ÇfarĂ« do tĂ« bĂ«jmĂ«?

MM: – E kuptoj. NĂ« pĂ«rgjithĂ«si, MySQL Ă«shtĂ« njĂ« bazĂ« e LTP. Duket se nuk Ă«shtĂ« mĂ« e pĂ«rshtatshme pĂ«r ruajtjen e arkivave tĂ« metrikave qĂ« kemi. Le tĂ« fillojmĂ« tĂ« kuptojmĂ«.

MÇ: – Le tĂ« shkojmĂ«!

Integrimi i Zabbix me Clickhouse si përfundim i hackathon-it

Pas pak kohe, morëm të dhëna interesante:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Shumica e hapĂ«sirĂ«s nĂ« bazĂ«n tonĂ« u zgjidh nga arkivi i metrikeve dhe mĂ« pak se 1% u pĂ«rdor pĂ«r konfigurimin, shabllonat dhe parametrat. NĂ« atĂ« kohĂ«, ne kishim pĂ«rdorur zgjidhjen Big data mbi Clickhouse pĂ«r mĂ« shumĂ« se njĂ« vit. Drejtimi i lĂ«vizjes pĂ«r ne ishte i qartĂ«. NĂ« ‘Hackathon’-in tonĂ« tĂ« pranverĂ«s, shkrova njĂ« integrim tĂ« ‘Zabbix’ me ‘Clickhouse’ pĂ«r serverin dhe front-end. NĂ« atĂ« moment, ‘Zabbix’ kishte tashmĂ« mbĂ«shtetje pĂ«r ElasticSearch dhe vendosĂ«m ta krahasonim.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Krahasimi Clickhouse dhe Elasticsearch

MM: – PĂ«r krahasim, ne gjeneruam ngarkesĂ«n e njejtĂ« si ajo qĂ« siguron serveri ‘Zabbix’ dhe shikuam se si do tĂ« silleshin sistemet. Ne shkruam tĂ« dhĂ«nat nĂ« grupe nga 1000 rreshta, duke pĂ«rdorur CURL. Ne parashikuan qĂ« ‘Clickhouse’ do tĂ« ishte mĂ« efikas pĂ«r profilin e ngarkesĂ«s qĂ« bĂ«n ‘Zabbix’. Rezultatet e kaluan edhe pritjet tona:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

NĂ« kushte tĂ« njĂ«jta nĂ« testet, ‘Clickhouse’ shkruante tri herĂ« mĂ« shumĂ« tĂ« dhĂ«na. TĂ« dy sistemet konsumonin shumĂ« efikasitet (mĂ« pak burime), duke lexuar tĂ« dhĂ«nat. Por ‘ElasticSearch’ kĂ«rkonte shumĂ« procesor gjatĂ« shkrimit:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

NĂ« total, ‘Clickhouse’ e tejkaloi ndjeshĂ«m ‘Elastic’ nĂ« konsumimin e procesorit dhe shpejtĂ«sinĂ«. Duke pĂ«rdorur kompresimin e tĂ« dhĂ«nave, ‘Clickhouse’ pĂ«rdor 11 herĂ« mĂ« pak nĂ« disk dhe bĂ«n rreth 30 herĂ« mĂ« pak operacione nĂ« disk:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MÇ: – Po, puna me sistemin e diskut nĂ« ‘Clickhouse’ Ă«shtĂ« realizuar shumĂ« efikas. PĂ«r bazat mund tĂ« pĂ«rdoren disqet e mĂ«dha SATA dhe tĂ« arrihet shpejtĂ«sia e shkrimit nĂ« qindra mijĂ«ra rreshta nĂ« sekondĂ«. Sistemi ‘nga kutia’ mbĂ«shtet sharding, replikimin, dhe Ă«shtĂ« shumĂ« e lehtĂ« pĂ«r t'u konfiguruar. Ne jemi mĂ« shumĂ« se tĂ« kĂ«naqur me pĂ«rdorimin e saj pĂ«r njĂ« vit.

PĂ«r optimizimin e burimeve, mund tĂ« instaloni ‘Clickhouse’ pranĂ« bazĂ«s ekzistuese kryesore dhe kĂ«shtu tĂ« kurseni shumĂ« kohĂ« procesori dhe operacione nĂ« disk. Ne e transferuam arkivin e metrikeve nĂ« klasteret ‘Clickhouse’ tĂ« ekzistuara:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Ne e kemi shkarkuar aq shumĂ« bazĂ«n tonĂ« MySQL, saqĂ« mund ta bashkojmĂ« atĂ« nĂ« njĂ« makinĂ« me serverin ‘Zabbix’ dhe tĂ« heqim qeverinĂ« e veçantĂ« pĂ«r MySQL.

Si funksionon polling në Zabbix?

4 muaj më parë

MM: – E gjithĂ« kjo, mund tĂ« harrojmĂ« pĂ«r problemet me bazĂ«n?

MÇ: – Definitivisht! NjĂ« tjetĂ«r detyrĂ« qĂ« duhet tĂ« zgjidhim Ă«shtĂ« grumbullimi i ngadalshĂ«m tĂ« tĂ« dhĂ«nave. Tani tĂ« gjithĂ« 15 serverĂ«t tanĂ« proxy janĂ« tĂ« ngarkuar me proceset SNMP dhe polling. Dhe s’ka asnjĂ« zgjidhje tjetĂ«r veçse tĂ« vendosim serverĂ« tĂ« rinj.

MM: – Super! Por mĂ« thuaj fillimisht se si funksionon polling nĂ« ‘Zabbix’?

MÇ: – NĂ«se duam ta shkurtojmĂ«, ekzistojnĂ« 20 lloje metrike dhe disa mĂ«nyra tĂ« grumbullimit tĂ« tyre. ‘Zabbix’ mund tĂ« grumbullojĂ« tĂ« dhĂ«na ose nĂ« modalitetin ‘kĂ«rkesĂ« – pĂ«rgjigje’, ose tĂ« presĂ« pĂ«r tĂ« dhĂ«na tĂ« reja pĂ«rmes ‘Interface Trap’.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Duhet tĂ« theksohet se nĂ« versionin origjinal tĂ« ‘Zabbix’, ky metodĂ« (Trapper) Ă«shtĂ« mĂ« e shpejtĂ«.

Ekzistojnë proxy për shpërndarjen e ngarkesës:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Proxy-t mund tĂ« kryejnĂ« tĂ« njĂ«jtat funksione tĂ« grumbullimit, si serveri ‘Zabbix’, duke marrĂ« detyra nga ai dhe dĂ«rguar metrike tĂ« grumbulluara pĂ«rmes interfesĂ«s Trapper. Ky Ă«shtĂ« mĂ«nyra zyrtare e rekomanduar pĂ«r shpĂ«rndarjen e ngarkesĂ«s. Gjithashtu, proxy-t janĂ« tĂ« dobishĂ«m pĂ«r monitorimin e infrastrukturĂ«s tĂ« largĂ«t qĂ« punon pĂ«rmes NAT ose kanaleve tĂ« ngadalta:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: – Po, me arkitekturĂ«n Ă«shtĂ« e qartĂ«. Duhet tĂ« shohim gjĂ«rat burimore...

Disa ditë më vonë

Tregimi për atë si nmap fping fitoi

MM: – MĂ« duket se kam gjetur diçka.

MÇ: – Tregoji!

MM: – Kam zbuluar se gjatĂ« kontrollit tĂ« qasshmĂ«risĂ«, ‘Zabbix’ bĂ«het kontrolli maksimal deri nĂ« 128 host-e njĂ«kohĂ«sisht. Kam provuar ta rris kĂ«tĂ« numĂ«r deri nĂ« 500 dhe hequr intervalin midis paketave nĂ« ping (ping) – kjo rriti performancĂ«n dyfish. Por do tĂ« doja mĂ« shumĂ« numra.

MÇ: – NĂ« praktikĂ«n time, ndonjĂ«herĂ« mĂ« duhet tĂ« kontrolloj qasshmĂ«rinĂ« e mijĂ«ra host-eve, dhe asgjĂ« mĂ« shpejt se nmap nuk kam hasur. Jam i sigurt se kjo Ă«shtĂ« mĂ«nyra mĂ« e shpejtĂ«. Le tĂ« provonim atĂ«! Duhet tĂ« rrisim ndjeshĂ«m numrin e host-eve pĂ«r çdo iteracion.

MM: – TĂ« kontrollojmĂ« mĂ« shumĂ« se pesĂ«qind? 600?

MÇ: – Si minimum disa mijĂ«.

MM: – Ok. GjĂ«ja mĂ« e rĂ«ndĂ«sishme qĂ« doja tĂ« thoja Ă«shtĂ« se kam gjetur se shumica e polling nĂ« ‘Zabbix’ Ă«shtĂ« realizuar nĂ« mĂ«nyrĂ« sinkrone. Ne patjetĂ«r duhet ta pĂ«rmirĂ«sojmĂ« atĂ« nĂ« njĂ« modalitet asinkron. AtĂ«herĂ« do tĂ« jemi nĂ« gjendje tĂ« rrisim ndjeshĂ«m numrin e metrikeve tĂ« grumbulluara nga pollerĂ«t, veçanĂ«risht nĂ«se rrisim numrin e metrikeve pĂ«r njĂ« iteracion.

MÇ: – Super! Dhe kur?

MM: – Si zakonisht, dje.

MÇ: – Ne krahasuam tĂ« dy versionet fping dhe nmap:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Në një numër të madh hostesh, nmap kishte pritur të ishte deri në pesë herë më efikas. Duke qenë se nmap kontrollon vetëm faktin e aksesit dhe kohën e përgjigjes, ne e transferuam numërimin e humbjeve në trigere dhe ndjeshëm e zvogëluam intervalin e kontrollit të aksesit. Numri optimal i hosteve për nmap e gjetëm rreth 4 mijë për një iteracion. Nmap na lejoi të ulnim shpenzimet e CPU për kontrollin e aksesit në tre herë dhe të zvogëlONIM intervalin nga 120 sekonda në 10.

Optimizimi i polling

MM: – MĂ« pas u angazhuam me pollerĂ«t. Kryesisht na interesonte marrja e SNMP-sĂ« dhe agjentĂ«t. NĂ« "Zabbix" polling Ă«shtĂ« i realizuar nĂ« mĂ«nyrĂ« sinkrone dhe janĂ« marrĂ« masa speciale pĂ«r tĂ« rritur efikasitetin e sistemit. NĂ« modalitetin sinkron, çaktivizimi i hosteve shkakton njĂ« degradim tĂ« dukshĂ«m tĂ« pollingut. Ekziston njĂ« sistem i tĂ«rĂ« gjendjesh, ekzistojnĂ« procese speciale – tĂ« ashtuquajturit unreachable-pollers, tĂ« cilĂ«t punojnĂ« vetĂ«m me hostet e paqashtueshĂ«m:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Ky është një koment që tregon matricën e gjendjeve, tërë kompleksitetin e sistemeve të kalimeve që kërkohen për të qëndruar efikase sistemi. Për më tepër, vetë polling i sinkronizuar është mjaft i ngadaltë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Pikërisht për këtë arsye, mijëra rrjedha pollerësh në një duzinë proxy nuk mundën të mbledhin për ne numrin e nevojshëm të të dhënave. Realizimi asinkron zgjidhi jo vetëm problemet me numrin e rrjedhave, por gjithashtu e thjeshtoi ndjeshëm sistemin e gjendjeve të hosteve të paqashtueshëm, sepse në çdo numër që kontrollohet në një iteracion të pollingut, koha maksimale e pritjes ishte një timeout:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

PĂ«r mĂ« tepĂ«r, ne modifikuam dhe pĂ«rmirĂ«suam sistemin e pollingut pĂ«r kĂ«rkesat SNMP. Çështja Ă«shtĂ« se shumica nuk mund tĂ« pĂ«rgjigjen nĂ« disa kĂ«rkesa SNMP njĂ«kohĂ«sisht. Prandaj ne krijuam njĂ« modalitet hibrid, kur polling SNMP i tĂ« njĂ«jtit host bĂ«het asinkron:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Kjo bëhet për të gjithë grupin e hosteve. Ky modalitet më në fund nuk është më i ngadalshëm se sa plotësisht asinkroni, pasi pyetja e njëqind e pesëdhjetë vlerave SNMP gjithsesi është shumë më e shpejtë se një timeout.

Eksperimentet tona treguan se numri optimal i kërkesave në një iteracion është rreth 8 mijë gjatë pollingut SNMP. Në total, kalimi në modalitetin asinkron lejoj që performanca e pollingut të përshpejtohet 200 herë, në disa qindra herë.

MÇ: Optimizimet e marra nga polling treguan se ne jo vetĂ«m qĂ« mund tĂ« eliminojmĂ« tĂ« gjitha proxy-t, por gjithashtu tĂ« shkurtomĂ« intervalet pĂ«r shumĂ« kontrolle, dhe proxy do tĂ« bĂ«hen tĂ« panevojshme si njĂ« mĂ«nyrĂ« pĂ«r tĂ« ndarĂ« ngarkesĂ«n.

Rreth tri muajve më parë

Ndrysho arkitekturĂ«n – rrit ngarkesĂ«n!

MM: - Eja, Max, a është koha për prodhim? Më nevojitet një server i fuqishëm dhe një inxhinier i mirë.

MÇ: - MirĂ«, do ta planifikojmĂ«. Eshte koha tĂ« lĂ«vizim nga pika e vdekur me 5 mijĂ« metrika nĂ« sekondĂ«.

Mëngjesi pas përmirësimit

MÇ: - Misha, u pĂ«rmirĂ«suam, por deri nĂ« mĂ«ngjes u kthyem prapa... Mund ta gjesh se cila shpejtĂ«si arritĂ«m?

MM: - Maksimumi 20 mijë.

MÇ: - Po, 25! FatkeqĂ«sisht, jemi aty ku filluam.

MM: - Pse kështu? A ndonjë diagnostikim e kemi bërë?

MÇ: - Po, sigurisht! Ja, pĂ«r shembull, njĂ« top interesant:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: - Le të shohim. Shikoj se kemi provuar një numër të madh rrjedhash të polling-ut:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Por megjithatë nuk arritëm të shfrytëzojmë sistemin as në gjysmë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Dhe performanca totale është mjaft e vogël, rreth 4 mijë metrika në sekondë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Ka diçka tjetër?

MÇ: - Po, strace e njĂ«rit nga poleruesit:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: - Këtu duket qartë se procesi i polling-ut po pret "semaforë". Këto janë bllokime:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MÇ: - E paqartĂ«.

MM: - Shiko, kjo duket si një situatë ku një grup rrjedhash përpiqet të punojë me një burim, me të cilin mund të punojë vetëm një në të njëjtën kohë. Atëherë, gjithçka që ata mund të bëjnë është të ndajnë këtë burim përmes kohës:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Dhe performanca totale e punës me një burim të tillë është e kufizuar nga shpejtësia e një brendi:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Kjo lloj problemi mund të zgjidhet në dy mënyra.

Të përmirësojmë harduerin e makinës, të kalojmë në bërthama më të shpejta:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Ose të ndryshojmë arkitekturën dhe ngarkesën për të përputhur:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MÇ: - Nga ana tjetĂ«r, nĂ« makinĂ«n testuese do tĂ« lĂ«shojmĂ« njĂ« numĂ«r mĂ« tĂ« vogĂ«l bĂ«rthamash se nĂ« atĂ« tĂ« prodhimit, por ato janĂ« rreth 1.5 herĂ« mĂ« tĂ« shpejtĂ« nĂ« frekuencĂ«n e bĂ«rthamĂ«s!

MM: - A është e qartë? Duhet të shohim kodin e serverit.

Rrjedha e të dhënave në serverin Zabbix

MÇ: - PĂ«r tĂ« kuptuar, filluam tĂ« analizojmĂ« mĂ«nyrĂ«n se si tĂ« dhĂ«nat kalojnĂ« brenda serverit "Zabbix":

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Imazhi i shkëlqyer, apo jo? Le të kalojmë përmes tij hapat hap pas hapi, në mënyrë që të qartësojmë disi. Ka rrjedha dhe shërbime që janë përgjegjëse për mbledhjen e të dhënave:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Metricat e mbledhura ato i dërgojnë përmes një socket në Menaxherin e Parapërpunuesve, ku ruhen në një radhë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Menaxheri i parapërpunuesve dërgon të dhënat tek punëtorët e tij, të cilët kryejnë udhëzimet e parapërpunimit dhe i kthejnë mbrapsht përmes të njëjtit socket:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Pas kësaj, menaxheri i parapërpunimit i ruan ato në cache të historisë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Atyre merren nga history-syncers, të cilët kryejnë shumë funksione: për shembull, llogaritjet e triggers, mbushja e caches së vlerave dhe, më e rëndësishmja, ruajtja e metrikave në depojnë e historisë. Në përgjithësi, procesi është i komplikuar dhe mjaft i ngatërruar.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: – E para qĂ« ne pamĂ« ishte se shumica e thread-eve janĂ« nĂ« garĂ« pĂ«r atĂ« qĂ« quhet 'cache' konfigurations (zona e memories ku ruhen tĂ« gjitha konfigurimet e serverit). VeçanĂ«risht shumĂ« bllokime janĂ« bĂ«rĂ« nga thread-et pĂ«rgjegjĂ«se pĂ«r tĂ«rheqjen e tĂ« dhĂ«nave:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server


sepse nĂ« konfigurim ruhen jo vetĂ«m metrikat me parametrat e tyre, por edhe radhĂ«t nga tĂ« cilat collector-Ă«t marrin informacionin se çfarĂ« duhet tĂ« bĂ«jnĂ« mĂ« pas. Kur ka shumĂ« collector-e dhe njĂ« bllokon konfigurimin, tĂ« tjerĂ«t presin kĂ«rkesat:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Collector-ët nuk duhet të konkurrojnë

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Prandaj, e para që ne bëmë ishte të ndanim radhën në 4 pjesë dhe të lejonim collector-ët të blokonin këto radhë në kushte të sigurta, këto pjesë njëkohësisht:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Kjo eliminoi konkurrencën për cache-në e konfigurimeve dhe shpejtësia e punës së collector-ëve u rrit ndjeshëm. Por pastaj u ndeshëm me faktin se menaxheri i preprocessorit filloi të grumbullojë radhën e detyrave:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Menaxheri i preprocessorit duhet të jetë në gjendje të vendosë prioritete

Kjo ndodhte në rastet kur i mungonte performanca. Pastaj, gjithçka që mund të bënte ishte të grumbullonte kërkesat nga proceset e grumbullimit të të dhënave dhe t'i ruante ato në një tampon derisa të mbushte gjithë memorjen dhe të binte:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Për të zgjidhur këtë problem, ne shtuam një socket të dytë, i cili ishte i dedikuar veçanërisht për punonjësit:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Kështu, menaxheri i preprocessorit fitoi mundësinë të priorizojë punën e tij dhe në rast të rritjes së tamponit, detyra është të ngadalësojë grumbullimin, duke i dhënë punonjësve mundësinë për të marrë këtë tampon:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Pastaj e zbuluam se një nga arsyet e ngadalësimit ishin vetë punonjësit, pasi ata konkurronin për një burim që nuk ishte aspak i rëndësishëm për punën e tyre. Këtë problem e formuluam si një bug-fix dhe në versionet e reja të 'Zabbix'-it, ai është tashmë zgjidhur:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Rritja e numrit tĂ« socket-eve – na jep rezultat

Më pas vetë menaxheri i preprocessorit u bë nyja e ngushtë, pasi ishte një thread. Ai kishte limit të shpejtësisë së kernel-it, duke dhënë maksimumin e shpejtësisë prej rreth 70,000 metrikave në sekondë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Prandaj ne bëmë katër, me katër grupe socket-esh, punonjës:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Dhe kjo e mundësoi rritjen e shpejtësisë deri në rreth 130,000 metrika:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Jo-lineariteti i rritjes shpjegohet me faktin se pati konkurrencë për cache-në e historisë. Për të, ishin në garë 4 menaxherë përpara- përpunues dhe history-syncers. Në këtë pikë, ne po marrim rreth 130,000 metrika në sekondë në makinen testuese, duke e shfrytëzuar atë afërsisht në 95% të CPU-së:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Rreth 2,5 muaj më parë

Dorëheqja nga snmp-community rriti NVP-të një herë e gjysmë

MM: – Max, mĂ« duhet njĂ« makinĂ« e re testuese! NĂ« tĂ« tanishmen nuk po pĂ«rfshiemi mĂ«.

MÇ: – ÇfarĂ« ka tani?

MM: – Tani – 130k NVP dhe CPU-ja Ă«shtĂ« 'nĂ« raft'.

MÇ: – Wow! Mrekulli! Prit, kam dy pyetje. Sipas llogarive tĂ« mia, ne kemi nevojĂ« rreth 15-20,000 metrikash nĂ« sekondĂ«. Pse na nevojitet mĂ« shumĂ«?

MM: – Dua tĂ« pĂ«rfundoj punĂ«n deri nĂ« fund. Dua tĂ« shoh se sa mund tĂ« nxjerrim nga ky sistem.

MÇ: – Por


MM: – Por pĂ«r biznesin Ă«shtĂ« e padobishme.

MÇ: – E kuptoj. Dhe pyetja e dytĂ«: a do tĂ« jemi nĂ« gjendje ta mbajmĂ« atĂ« qĂ« kemi tani vetĂ«, pa ndihmĂ«n e zhvilluesit?

MM: – Nuk mendoj. Ndryshimi i punĂ«s me cache-nĂ« e konfigurimit Ă«shtĂ« njĂ« problem. Ai lidhet me ndryshimet nĂ« shumicĂ«n e thread-eve dhe Ă«shtĂ« mjaft i komplikuar pĂ«r mbĂ«shtetje. Sapo ka shumĂ« tĂ« ngjarĂ«, do tĂ« jetĂ« shumĂ« e vĂ«shtirĂ« ta mbash.

MÇ: – AtĂ«herĂ« na nevojitet njĂ« alternativĂ«.

MM: – Ka njĂ« variant tĂ« tillĂ«. Mund tĂ« kalojmĂ« nĂ« kernel tĂ« shpejtĂ«, duke hequr dorĂ« nga sistemi i ri i bllokimit. Ne do tĂ« marrim akoma performancĂ« tĂ« 60-80,000 metrikave. NĂ« tĂ« njĂ«jtĂ«n kohĂ«, ne mund tĂ« lĂ«mĂ« gjithĂ« kodin tjetĂ«r. 'ClickHouse', polling-u asinkron do tĂ« funksionojĂ«. Dhe do tĂ« jetĂ« e lehtĂ« pĂ«r mbĂ«shtetje.

MÇ: – Fantastic! Propozoj tĂ« ndalemi kĂ«tu.

Pas optimizimit të pjesës server, më në fund munda të nis kodin e ri në prodhim. Ne u dorëzuam nga disa ndryshime në favor të kalimit në një makinë me kernel të shpejtë dhe minimizimin e numrit të ndryshimeve në kod. Ne gjithashtu e thjeshtuam konfigurimin dhe, sa më shumë të jetë e mundur, heqëm dorë nga makro-t në elementët e të dhënave, pasi ato janë burim i bllokimeve të tjera.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Për shembull, heqja dorë nga makro-i i snmp-community, i cili është shpesh i pranishëm në dokumentacion dhe shembuj, në rastin tonë ndihmoi për të përshpejtuar NVP-të me rreth 1,5 herë.

Pas dy ditëve në prodhim

Heqim dritaret e daljes së historisë së incidenteve

MÇ: – Misha, ne kemi dy ditĂ« qĂ« po pĂ«rdorim sistemin, dhe gjithçka po funksionon. Por vetĂ«m kur gjithçka punon! Kishim disa punĂ« tĂ« planifikuara me transferimin e njĂ« segmenti tĂ« madh tĂ« rrjetit, dhe ne kontrolluam pĂ«rsĂ«ri manualisht çfarĂ« u ngrit, çfarĂ« nuk u ngrit.

MM: – Nuk mund tĂ« jetĂ«! Ne e kontrolluam gjithçka 10 herĂ«. Serveri pĂ«rpunon madje edhe mungesĂ«n totale tĂ« rrjetit menjĂ«herĂ«.

MÇ: – Po e kuptoj gjithçka: serveri, baza, top, austat, loget – gjithçka shpejt
 Por ne shohim ndĂ«rfaqen nĂ« web, dhe aty – procesori «nĂ« raft» nĂ« server dhe kjo:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: – E kuptoj. Le tĂ« shikojmĂ« nĂ« web. Zbulua se nĂ« situatĂ«n kur kishte numĂ«r tĂ« madh tĂ« incidenteve aktive, shumica e widgeteve operative fillonin tĂ« punonin shumĂ« ngadalĂ«:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Arsyeja për këtë ishte gjenerimi i dritareve të daljes me historitë e incidenteve, të cilat gjeneroheshin për çdo element në listë. Prandaj, ne u dorëzuam nga gjenerimi i këtyre dritareve (komentuam 5 rreshta në kod), dhe kjo zgjidhi problemet tona.

Koha e ngarkesës së widgeteve, edhe në mungesë totale, u ul nga disa minuta në 10-15 sekonda të pranueshme për ne, dhe historia vazhdon të shikohet me një klikim në kohë:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Pas punës. 2 muaj më parë

MÇ: – Misha, po shkon? Kam njĂ« bisedĂ«.

MM: – Nuk kisha ndĂ«rmend. PĂ«rsĂ«ri diçka me «Zabbix»-in?

MÇ: – Jo, relaksohu! Thjesht doja tĂ« thoja: gjithçka funksionon, faleminderit! Pija Ă«shtĂ« nga unĂ«.

Zabbix është efektiv

«Zabbix» është një sistem dhe funksion mjaft universale dhe i pasur. Mund të përdoret lehtësisht për instalime të vogla «nga kutia», por me rritjen e nevojave duhet optimizuar. Për ruajtjen e një arkivi të madh metrikash, përdorni një depo të përshtatshme:

  • mund tĂ« pĂ«rdorni mjetet e integruara si integrimi me «Elasticsearch» ose nxjerrja e historisĂ« nĂ« skedarĂ« tekstualĂ« (e disponueshme qĂ« nga versioni katĂ«r);
  • mund tĂ« shfrytĂ«zoni pĂ«rvojĂ«n tonĂ« dhe integrimin me «ClickHouse».

Për të rritur ndjeshëm shpejtësinë e mbledhjes së metrikave, mbledhni ato në mënyra asnjanëse dhe dërgoni përmes ndërfaqes së trapper në serverin «Zabbix»; ose mund të përdorni një patch për asnjanësinë e pollerëve të «Zabbix»-it.

«Zabbix» është shkruar në C dhe është mjaft efektiv. Zgjidhja e disa pikave arkitekturore të ngushta lejon gjithashtu rritjen e performancës së tij dhe, sipas përvojës sonë, marrim më shumë se 100,000 metrika në një makinë me një procesor.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Ai patch Zabbix

MM: – Dua tĂ« shtoj disa pika. I gjithĂ« raporti aktual, tĂ« gjitha testet, numrat e dhĂ«nave janĂ« pĂ«r atĂ« konfigurim qĂ« pĂ«rdorim ne. Ne tani po nxjerrim rreth 20,000 metrika nĂ« sekondĂ«. NĂ«se po pĂ«rpiqeni tĂ« kuptoni nĂ«se do tĂ« funksionojĂ« pĂ«r ju – mund ta krahasoni. Ajo qĂ« u tregua sot Ă«shtĂ« publikuar nĂ« GitHub nĂ« formĂ«n e njĂ« patch: github.com/miklert/zabbix

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

Patch përfshin:

  • integrimin e plotĂ« me «ClickHouse» (si pĂ«r serverin, ashtu edhe pĂ«r frontend-in e «Zabbix»);
  • zgjidhjen e problemeve me menaxherin e parapĂ«rpunuesve;
  • polling asnjanĂ«s.

Patch është i përputhshëm me të gjitha versionet 4, përfshirë lts. Shumë të mundshëm, me ndryshime minimale do të funksionojë në versionin 3.4.

Faleminderit për vëmendjen.

Pyetje

Pyetje nga audienca (pĂ«rshĂ«ndetje – A): – MirĂ«mĂ«ngjes! MĂ« thuaj, a keni plane pĂ«r bashkĂ«punim intensiv me ekipin e Zabbix ose ata me ju, qĂ« kjo tĂ« mos jetĂ« njĂ« patch, por njĂ« sjellje normale e «Zabbix»?

MM: – Po, disa ndryshime ne do t'i angazhojmĂ« sigurisht. Disa do tĂ« mbeten nĂ« patch.

A: – Faleminderit shumĂ« pĂ«r raportin e shkĂ«lqyer! MĂ« tregoni, pas aplikimit tĂ« patch-it do tĂ« mbetet mbĂ«shtetje nga «Zabbix»-i dhe si mund tĂ« pĂ«rditĂ«sohemi nĂ« versione mĂ« tĂ« larta? A do tĂ« ketĂ« mundĂ«si tĂ« pĂ«rditĂ«sojmĂ« «Zabbix» pas patch-it tuaj nĂ« 4.2, 5.0?

MM: – PĂ«r mbĂ«shtetje nuk mund tĂ« them. Sikur tĂ« isha mbĂ«shtetje teknike e «Zabbix», do tĂ« thosha ndoshta jo, sepse Ă«shtĂ« kod i huaj. Sa i pĂ«rket kodit tĂ« bazĂ«s 4.2, pozita jonĂ« Ă«shtĂ« kĂ«shtu: «Do tĂ« shkojmĂ« me kohĂ«n, dhe vetĂ« do tĂ« pĂ«rditĂ«sohemi nĂ« versionin e ardhshĂ«m». Prandaj pĂ«r njĂ« periudhĂ«, ne do tĂ« publikojmĂ« patch-in pĂ«r versionet e pĂ«rditĂ«suara. Already, siç e theksova nĂ« raport: numri i ndryshimeve me versionet Ă«shtĂ« ende mjaft e vogĂ«l. Mendoj se kalimi nga 3.4 nĂ« 4 na zuri, duket, rreth 15 minuta. Disa gjĂ«ra ndĂ«rruan, por jo shumĂ« tĂ« rĂ«ndĂ«sishme.

A: – Pra, ju planifikoni tĂ« mbani patch-in tuaj dhe mund tĂ« jeni tĂ« sigurt pĂ«r ta vendosur nĂ« prodhim, duke marrĂ« mĂ« vonĂ« pĂ«rditĂ«sime ndonjĂ«herĂ«?

MM: – Ne e rekomandojmĂ« kategorikisht. Kjo zgjidh probleme shumĂ« tĂ« mĂ«dha pĂ«r ne.

MÇ: – Duhet tĂ« theksoj se ndryshimet qĂ« nuk lidhen me arkitekturĂ«n dhe nuk lidhen me bllokadat, radhĂ«t – ato janĂ« modulare, ato janĂ« nĂ« modula tĂ« veçantĂ«. Edhe vetĂ«, me ndryshime tĂ« vogla, ato mund tĂ« mbahen mjaft lehtĂ«.

MM: – NĂ«se jeni tĂ« interesuar pĂ«r detajet, "Clickhouse" pĂ«rdor bibliotekĂ«n e histori. Ajo Ă«shtĂ« e çliruar – Ă«shtĂ« njĂ« kopje mbĂ«shtetje e "Elastiks", domethĂ«nĂ« mund tĂ« ndryshohet konfiguroti. Polling ndryshon vetĂ«m pollers. Ne besojmĂ« se kjo do tĂ« funksionojĂ« pĂ«r njĂ« kohĂ« tĂ« gjatĂ«.

A: – Faleminderit shumĂ«. A mund tĂ« mĂ« thoni nĂ«se ekziston ndonjĂ« dokumentacion pĂ«r ndryshimet e bĂ«ra?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS në një server

MM: – Dokumentacioni Ă«shtĂ« patch. ËshtĂ« e qartĂ«, me hyrjen e "Clickhouse", me hyrjen e llojeve tĂ« reja pollers, lindin mundĂ«si tĂ« reja konfiguruese. NĂ« lidhjen nga slidi i fundit ka njĂ« pĂ«rshkrim tĂ« shkurtĂ«r se si ta pĂ«rdorni kĂ«tĂ«.

Rreth zëvendësimit të fping me nmap

A: – Si e realizuat atĂ« pĂ«rfundimisht? Mund tĂ« jepni shembuj konkretĂ«: a keni strappers dhe skript tĂ« jashtĂ«m? ÇfarĂ« kontrollon kaq shpejt njĂ« numĂ«r kaq tĂ« madh hostesh? Si i merrni kĂ«ta hoste? Nmap-i duhet tĂ« ushqehet me ta, t'i marrĂ« nga diku, t'i vendosĂ«, tĂ« nisĂ« diçka ...?

MM: – ShumĂ« mirĂ«. Pyetje shumĂ« e rĂ«ndĂ«sishme! Esenca Ă«shtĂ« kĂ«shtu. Ne modifikuam bibliotekĂ«n (ICMP ping, njĂ« pĂ«rbĂ«rĂ«s i "Zabbix") pĂ«r ICMP kontroll, ku Ă«shtĂ« e specifikuar numri i paketave – njĂ«si (1), dhe kodi pĂ«rpiqet tĂ« pĂ«rdorĂ« nmap. Pra, kjo Ă«shtĂ« puna e brendshme e "Zabbix", dhe u bĂ« puna e brendshme e pingera. PĂ«r pasojĂ«, nuk ka nevojĂ« pĂ«r ndonjĂ« sinkronizim ose pĂ«rdorim tĂ« trapper-it. Kjo u bĂ« qĂ«llimisht, pĂ«r tĂ« mbajtur sistemin tĂ« paprekur dhe pĂ«r tĂ« mos u angazhuar nĂ« sinkronizimin e dy sistemeve tĂ« bazĂ«s: çfarĂ« tĂ« kontrollohet, sa tĂ« ngarkohet pĂ«rmes poller-it, dhe a nuk Ă«shtĂ« thyer ngarkesa jonĂ« ...? Kjo Ă«shtĂ« shumĂ« mĂ« e thjeshtĂ«.

A: – A funksionon dhe pĂ«r proxy?

MM: – Po, por ne nuk e kemi testuar. Kodi i pollingut Ă«shtĂ« i njĂ«llojtĂ« si nĂ« "Zabbix", ashtu edhe nĂ« server. Duhet tĂ« funksionojĂ«. PĂ«rsĂ«ri, e theksoj: performanca e sistemit Ă«shtĂ« e tillĂ« sa qĂ« nuk na nevojitet proxy.

MÇ: – PĂ«rgjigja e saktĂ« pĂ«r pyetjen Ă«shtĂ«: "Pse ju nevojitet proxy nĂ« njĂ« sistem tĂ« tillĂ«?" VetĂ«m pĂ«r shkak tĂ« NAT-it ose pĂ«r tĂ« monitoruar pĂ«rmes ndonjĂ« kanali tĂ« ngadalshĂ«m ...

A: – A e pĂ«rdorni "Zabbix" si alarĂ«m, nĂ«se e kuptova saktĂ«. Ose grafikat (ku Ă«shtĂ« shtresa arkiv) i keni dĂ«rguar nĂ« njĂ« sistem tjetĂ«r, si Grafana? Apo nuk e pĂ«rdorni kĂ«tĂ« funksionalitet?

MM: – E theksoj edhe njĂ« herĂ«: ne kemi bĂ«rĂ« njĂ« integrim tĂ« plotĂ«. Ne derdhim historinĂ« nĂ« "Clickhouse", por nĂ« tĂ« njĂ«jtĂ«n kohĂ« kemi ndryshuar frontend-in PHP. Frontendi PHP shkon nĂ« "Clickhouse" dhe krijon tĂ« gjitha grafikat nga aty. Po ashtu, nĂ«se jemi tĂ« sinqertĂ«, kemi njĂ« pjesĂ« qĂ« krijon nga i njĂ«jti "Clickhouse", nga tĂ« dhĂ«nat e "Zabbix" tĂ« dhĂ«na nĂ« sisteme tĂ« tjera pĂ«rpara grafike.

MÇ: – NĂ« "Grafana" gjithashtu.

Si u mor vendimi për ndarjen e burimeve?

A: – Ndani pak nga kuzhina juaj e brendshme. Si Ă«shtĂ« marrĂ« vendimi qĂ« tĂ« ndahen burime pĂ«r njĂ« rikonstruksion tĂ« rĂ«ndĂ«sishĂ«m tĂ« produktit? Kjo, nĂ« fakt, sjell disa rreziqe. Dhe ju lutem, nĂ« kontekstin e asaj qĂ« jeni duke planifikuar tĂ« mbani versione tĂ« reja: si justifikohet ky vendim nga pikĂ«pamja e menaxhimit?

MM: – DukshĂ«m, dramen e historisĂ« ne nuk e treguam shumĂ« mirĂ«. Ne u gjendĂ«m nĂ« njĂ« situatĂ« ku duhej tĂ« bĂ«hej diçka dhe shkuam nĂ« thelb me dy ekipe paralele:

  • NjĂ«ra merrej me nisjen e sistemit tĂ« monitorimit me metoda tĂ« reja: monitorimi si shĂ«rbim, njĂ« grup standard i zgjidhjeve open-source qĂ« ne i kombinojmĂ« dhe pastaj pĂ«rpiqemi tĂ« ndryshojmĂ« procesin e biznesit pĂ«r tĂ« punuar me sistemin e ri tĂ« monitorimit.
  • PĂ«rkundĂ«r kĂ«saj, kishim njĂ« programues entuziast qĂ« merrej me kĂ«tĂ« (rreth vetes). Doli qĂ« ai fitoi.

A: – Cila Ă«shtĂ« madhĂ«sia e ekipit?

MÇ: – Ai Ă«shtĂ« para jush.

A: – Pra, si gjithmonĂ« nevojitet njĂ« pasionar?

MM: – Nuk e di se çfarĂ« Ă«shtĂ« njĂ« pasionar.

A: – NĂ« kĂ«tĂ« rast, dukshĂ«m, jeni ju. Faleminderit shumĂ«, ju jeni tĂ« shkĂ«lqyer.

MM: – Faleminderit.

Rreth patches për Zabbix

A: – PĂ«r sistemin qĂ« pĂ«rdor proxy (pĂ«r shembull, nĂ« disa sisteme tĂ« shpĂ«rndara), a Ă«shtĂ« e mundur tĂ« pĂ«rshtatet zgjidhja juaj dhe tĂ« patch-ohen, pĂ«r shembull, pollers, proxy dhe pjesĂ«risht para-procesor i vetĂ« "Zabbix"; dhe ndĂ«rveprimi i tyre? A Ă«shtĂ« e mundur tĂ« optimizohen punimet ekzistuese pĂ«r njĂ« sistem me disa proxy?

MM: – UnĂ« e di qĂ« serveri "Zabbix" grumbullohet me ndihmĂ«n e proxy (kompilohet dhe merr kodin). Ne nuk e kemi testuar kĂ«tĂ« nĂ« prodhim. Nuk jam i sigurt pĂ«r kĂ«tĂ«, por, sipas mendimit tim, menaxheri i para-procesorit nuk pĂ«rdoret nĂ« proxy. Detyra e proxy Ă«shtĂ« tĂ« marrĂ« njĂ« grup metrike nga "Zabbix", t'i pollojĂ« ato (ai gjithashtu regjistron konfigurimin, bazĂ«n lokale) dhe t'ia kthejĂ« serverit tĂ« "Zabbix". Para-procesimi do tĂ« bĂ«het mĂ« vonĂ« nga vetĂ« serveri, kur ta marrĂ«.

Interesi pĂ«r proxy Ă«shtĂ« i kuptueshĂ«m. Ne do ta kontrollojmĂ« kĂ«tĂ«. ËshtĂ« njĂ« temĂ« interesante.

A: – Ideja ishte kĂ«shtu: nĂ«se Ă«shtĂ« e mundur tĂ« patch-ohen pollers, Ă«shtĂ« e mundur tĂ« patch-ohen edhe nĂ« proxy dhe tĂ« patch-ohen ndĂ«rveprimin me serverin, dhe para-procesorin pĂ«r kĂ«to arsyet tĂ« pĂ«rshtatet vetĂ«m nĂ« server.

MM: – Mendova, Ă«shtĂ« akoma mĂ« e thjeshtĂ«. Merrni kodin, aplikoni patch-in, pastaj konfiguroni ashtu siç e dĂ«shironi – krijoni serverĂ« proxy (p.sh., me ODBC) dhe shpĂ«rndani kodin e patch-uar nĂ« sisteme. Atje ku Ă«shtĂ« e nevojshme – krijoni proxy, atje ku Ă«shtĂ« e nevojshme – server.

A: – SidoqoftĂ«, a nuk do tĂ« jetĂ« e nevojshme tĂ« patch-oni transmetimin e proxy-sĂ« nĂ« server, ndoshta?

MÇ: – Jo, ai Ă«shtĂ« standard.

MM: – NĂ« tĂ« vĂ«rtetĂ«, kjo ishte njĂ« nga idetĂ« qĂ« nuk u diskutua. Ne gjithmonĂ« kemi ruajtur njĂ« balancĂ« mes shpĂ«rthimit tĂ« ideve dhe sasisĂ« sĂ« ndryshimeve, lehtĂ«sisĂ« sĂ« mbĂ«shtetjes.

Luaj videon

Pak reklamĂ« 🙂

Faleminderit që qëndroni me ne. Ju pëlqejnë artikujt tanë? Dëshironi të shihni më shumë materiale interesante? Na mbështetni duke bërë një porosi ose duke na rekomanduar njohurive tuaj, VPS cloud për zhvillues nga $4.99, një analog unik i serverëve entry-level, i ndërtuar për ju: E gjithë e vërteta rreth VPS (KVM) E5-2697 v3 (6 Nuclea) 10GB DDR4 480GB SSD 1Gbps nga $19 ose si ta ndajmë saktësisht serverin? (disponohen variante me RAID1 dhe RAID10, deri në 24 bërthama dhe deri në 40GB DDR4).

Dell R730xd dyfish mĂ« i lirĂ« nĂ« qendrĂ«n e tĂ« dhĂ«nave Equinix Tier IV nĂ« Amsterdam? VetĂ«m kĂ«tu 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TB nga $199 nĂ« HolandĂ«! Dell R420 — 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB — nga $99! Lexoni rreth Si tĂ« ndĂ«rtosh njĂ« infrastrukturĂ« tĂ« klasĂ«s korporative me pĂ«rdorimin e serverĂ«ve Dell R730xd E5-2650 v4 me çmim prej 9000 euro pĂ«r pak para?

Burimi: habr.com

Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Bleni hostim tĂ« besueshĂ«m pĂ«r faqe me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster