HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

తదుపరి హైలోడ్++ కాన్ఫరెన్స్ ఏప్రిల్ 6 మరియు 7, 2020లో సెయింట్ పీటర్స్‌బర్గ్‌లో జరుగుతుంది వివరాలు మరియు టిక్కెట్లు లింక్. హైలోడ్++ మాస్కో 2018. హాల్ "మాస్కో". నవంబర్ 9, 15:00. థీసెస్ మరియు ప్రదర్శన.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

* మానిటరింగ్ - ఆన్‌లైన్ మరియు విశ్లేషణలు.
* ZABBIX ప్లాట్‌ఫారమ్ యొక్క ప్రాథమిక పరిమితులు.
* స్కేలింగ్ విశ్లేషణల నిల్వ కోసం పరిష్కారం.
* ZABBIX సర్వర్ ఆప్టిమైజేషన్.
* UI ఆప్టిమైజేషన్.
* 40k కంటే ఎక్కువ NVPS లోడ్‌ల కింద సిస్టమ్‌ని ఆపరేట్ చేసిన అనుభవం.
* సంక్షిప్త ముగింపులు.

మిఖాయిల్ మకురోవ్ (ఇకపై - MM): - అందరికి వందనాలు!

మాగ్జిమ్ చెర్నెత్సోవ్ (ఇకపై - MCH): - శుభ మద్యాహ్నం!

MM: – నేను మాగ్జిమ్‌ని పరిచయం చేస్తాను. మాక్స్ ప్రతిభావంతుడైన ఇంజనీర్, నాకు తెలిసిన బెస్ట్ నెట్‌వర్కర్. మాగ్జిమ్ నెట్‌వర్క్‌లు మరియు సేవలు, వాటి అభివృద్ధి మరియు ఆపరేషన్‌లో పాల్గొంటుంది.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MCH: - మరియు నేను మిఖాయిల్ గురించి చెప్పాలనుకుంటున్నాను. మిఖాయిల్ ఒక సి డెవలపర్. అతను మా కంపెనీ కోసం అనేక అధిక-లోడ్ ట్రాఫిక్ ప్రాసెసింగ్ పరిష్కారాలను వ్రాసాడు. మేము ఇంటర్‌స్వ్యాజ్ కంపెనీలో కఠినమైన పురుషుల చెలియాబిన్స్క్ నగరంలో యురల్స్‌లో నివసిస్తున్నాము మరియు పని చేస్తున్నాము. మా కంపెనీ 16 నగరాల్లో ఒక మిలియన్ మందికి ఇంటర్నెట్ మరియు కేబుల్ టెలివిజన్ సేవలను అందిస్తోంది.

MM: - మరియు Intersvyaz కేవలం ప్రొవైడర్ కంటే చాలా ఎక్కువ అని చెప్పడం విలువ, ఇది ఒక IT కంపెనీ. మా పరిష్కారాలలో చాలా వరకు మా IT విభాగం ద్వారా తయారు చేయబడింది.

మరియు: ట్రాఫిక్‌ను ప్రాసెస్ చేసే సర్వర్‌ల నుండి కాల్ సెంటర్ మరియు మొబైల్ అప్లికేషన్‌కి. ఐటి డిపార్ట్‌మెంట్‌లో ఇప్పుడు దాదాపు 80 మంది చాలా విభిన్నమైన సామర్థ్యాలతో ఉన్నారు.

Zabbix మరియు దాని నిర్మాణం గురించి

MCH: - ఇప్పుడు నేను వ్యక్తిగత రికార్డును సెట్ చేయడానికి ప్రయత్నిస్తాను మరియు Zabbix అంటే ఏమిటో ఒక్క నిమిషంలో చెప్పడానికి ప్రయత్నిస్తాను (ఇకపై "Zabbix" గా సూచిస్తారు).

Zabbix దానినే ఒక ఎంటర్‌ప్రైజ్-స్థాయి అవుట్-ఆఫ్-ది-బాక్స్ మానిటరింగ్ సిస్టమ్‌గా ఉంచుతుంది. ఇది జీవితాన్ని సులభతరం చేసే అనేక లక్షణాలను కలిగి ఉంది: అధునాతన ఎస్కలేషన్ నియమాలు, ఇంటిగ్రేషన్ కోసం API, గ్రూపింగ్ మరియు హోస్ట్‌లు మరియు మెట్రిక్‌ల స్వీయ-గుర్తింపు. Zabbix స్కేలింగ్ సాధనాలు అని పిలవబడేది - ప్రాక్సీలు. Zabbix ఒక ఓపెన్ సోర్స్ సిస్టమ్.

ఆర్కిటెక్చర్ గురించి క్లుప్తంగా. ఇది మూడు భాగాలను కలిగి ఉందని మేము చెప్పగలం:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

  • సర్వర్. సి లో వ్రాయబడింది. సంక్లిష్టమైన ప్రాసెసింగ్ మరియు థ్రెడ్‌ల మధ్య సమాచార బదిలీతో. అన్ని ప్రాసెసింగ్ దానిలో జరుగుతుంది: స్వీకరించడం నుండి డేటాబేస్కు సేవ్ చేయడం వరకు.
  • మొత్తం డేటా డేటాబేస్లో నిల్వ చేయబడుతుంది. Zabbix MySQL, PostreSQL మరియు Oracleకి మద్దతు ఇస్తుంది.
  • వెబ్ ఇంటర్‌ఫేస్ PHPలో వ్రాయబడింది. చాలా సిస్టమ్‌లలో ఇది Apache సర్వర్‌తో వస్తుంది, కానీ nginx + phpతో కలిపి మరింత సమర్థవంతంగా పని చేస్తుంది.

ఈ రోజు మనం Zabbixకి సంబంధించిన మా కంపెనీ జీవితం నుండి ఒక కథను చెప్పాలనుకుంటున్నాము...

Intersvyaz సంస్థ జీవితం నుండి ఒక కథ. మనకు ఏమి ఉంది మరియు మనకు ఏమి కావాలి?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో
5 లేదా 6 నెలల క్రితం. పని తర్వాత ఒకరోజు...

MCH: - మిషా, హలో! నేను మిమ్మల్ని పట్టుకోగలిగినందుకు సంతోషిస్తున్నాను - ఒక సంభాషణ ఉంది. మేము మళ్లీ పర్యవేక్షణలో సమస్యలను ఎదుర్కొన్నాము. పెద్ద ప్రమాదం జరిగినప్పుడు, ప్రతిదీ నెమ్మదిగా ఉంది మరియు నెట్‌వర్క్ స్థితి గురించి సమాచారం లేదు. దురదృష్టవశాత్తు, ఇలా జరగడం ఇదే మొదటిసారి కాదు. నాకు నీ సహాయం కావాలి. ఎట్టి పరిస్థితుల్లోనూ మన పర్యవేక్షణ పని చేద్దాం!

MM: - అయితే ముందుగా సింక్రొనైజ్ చేద్దాం. రెండేళ్లుగా నేను అటువైపు చూడలేదు. నాకు గుర్తున్నంత వరకు, మేము నాగియోస్‌ను విడిచిపెట్టి, సుమారు 8 సంవత్సరాల క్రితం Zabbixకి మారాము. మరియు ఇప్పుడు మేము 6 శక్తివంతమైన సర్వర్‌లను మరియు దాదాపు డజను ప్రాక్సీలను కలిగి ఉన్నాము. నేను ఏదైనా గందరగోళంగా ఉన్నానా?

MCH: - దాదాపు. 15 సర్వర్లు, వాటిలో కొన్ని వర్చువల్ మిషన్లు. అత్యంత ముఖ్యమైన విషయం ఏమిటంటే, మనకు అవసరమైన సమయంలో అది మనల్ని రక్షించదు. ప్రమాదం లాగా - సర్వర్లు వేగాన్ని తగ్గించాయి మరియు మీరు ఏమీ చూడలేరు. మేము కాన్ఫిగరేషన్‌ను ఆప్టిమైజ్ చేయడానికి ప్రయత్నించాము, కానీ ఇది సరైన పనితీరు పెరుగుదలను అందించలేదు.

MM: - అది స్పష్టమైనది. మీరు ఏదో చూశారా, మీరు ఇప్పటికే డయాగ్నస్టిక్స్ నుండి ఏదైనా త్రవ్వించారా?

MCH: - మీరు వ్యవహరించాల్సిన మొదటి విషయం డేటాబేస్. MySQL నిరంతరం లోడ్ చేయబడుతుంది, కొత్త కొలమానాలను నిల్వ చేస్తుంది మరియు Zabbix ఈవెంట్‌ల సమూహాన్ని రూపొందించడం ప్రారంభించినప్పుడు, డేటాబేస్ అక్షరాలా కొన్ని గంటల పాటు ఓవర్‌డ్రైవ్‌లోకి వెళుతుంది. కాన్ఫిగరేషన్‌ను ఆప్టిమైజ్ చేయడం గురించి నేను ఇప్పటికే మీకు చెప్పాను, కానీ అక్షరాలా ఈ సంవత్సరం వారు హార్డ్‌వేర్‌ను అప్‌డేట్ చేసారు: సర్వర్‌లు SSD RAIDలలో వంద గిగాబైట్ల కంటే ఎక్కువ మెమరీ మరియు డిస్క్ శ్రేణులను కలిగి ఉన్నాయి - దీర్ఘకాలికంగా దానిని సరళంగా పెంచడంలో అర్థం లేదు. మనము ఏమి చేద్దాము?

MM: - అది స్పష్టమైనది. సాధారణంగా, MySQL అనేది LTP డేటాబేస్. స్పష్టంగా, మా పరిమాణంలోని కొలమానాల ఆర్కైవ్‌ను నిల్వ చేయడానికి ఇది ఇకపై తగినది కాదు. దాన్ని గుర్తించండి.

MCH: - చేద్దాం!

హ్యాకథాన్ ఫలితంగా Zabbix మరియు Clickhouse యొక్క ఏకీకరణ

కొంత సమయం తర్వాత మేము ఆసక్తికరమైన డేటాను అందుకున్నాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మా డేటాబేస్‌లోని చాలా స్థలం మెట్రిక్స్ ఆర్కైవ్‌చే ఆక్రమించబడింది మరియు కాన్ఫిగరేషన్, టెంప్లేట్‌లు మరియు సెట్టింగ్‌ల కోసం 1% కంటే తక్కువ ఉపయోగించబడింది. ఆ సమయానికి, మేము ఒక సంవత్సరం కంటే ఎక్కువ కాలం పాటు క్లిక్‌హౌస్ ఆధారంగా బిగ్ డేటా సొల్యూషన్‌ను నిర్వహిస్తున్నాము. ఉద్యమం యొక్క దిశ మాకు స్పష్టంగా ఉంది. మా స్ప్రింగ్ హ్యాకథాన్‌లో, నేను సర్వర్ మరియు ఫ్రంటెండ్ కోసం క్లిక్‌హౌస్‌తో Zabbix యొక్క ఏకీకరణను వ్రాసాను. ఆ సమయంలో, Zabbix ఇప్పటికే ElasticSearch కోసం మద్దతును కలిగి ఉంది మరియు మేము వాటిని సరిపోల్చాలని నిర్ణయించుకున్నాము.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

క్లిక్‌హౌస్ మరియు సాగే శోధన యొక్క పోలిక

MM: – పోలిక కోసం, మేము Zabbix సర్వర్ అందించే అదే లోడ్‌ను రూపొందించాము మరియు సిస్టమ్‌లు ఎలా ప్రవర్తిస్తాయో పరిశీలించాము. మేము CURLని ఉపయోగించి 1000 లైన్‌ల బ్యాచ్‌లలో డేటాను వ్రాసాము. Zabbix చేసే లోడ్ ప్రొఫైల్ కోసం Clickhouse మరింత సమర్థవంతంగా పనిచేస్తుందని మేము ముందుగానే ఊహించాము. ఫలితాలు మా అంచనాలను కూడా మించిపోయాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అదే పరీక్ష పరిస్థితుల్లో, క్లిక్‌హౌస్ మూడు రెట్లు ఎక్కువ డేటాను రాసింది. అదే సమయంలో, డేటాను చదివేటప్పుడు రెండు వ్యవస్థలు చాలా సమర్ధవంతంగా (కొంత మొత్తంలో వనరులు) వినియోగించబడతాయి. కానీ రికార్డింగ్ చేసేటప్పుడు ఎలాస్టిక్‌లకు పెద్ద మొత్తంలో ప్రాసెసర్ అవసరం:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మొత్తంగా, ప్రాసెసర్ వినియోగం మరియు వేగం పరంగా క్లిక్‌హౌస్ ఎలాస్టిక్స్ కంటే మెరుగ్గా ఉంది. అదే సమయంలో, డేటా కంప్రెషన్ కారణంగా, క్లిక్‌హౌస్ హార్డ్ డ్రైవ్‌లో 11 రెట్లు తక్కువగా ఉపయోగిస్తుంది మరియు దాదాపు 30 రెట్లు తక్కువ డిస్క్ కార్యకలాపాలను నిర్వహిస్తుంది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MCH: - అవును, డిస్క్ సబ్‌సిస్టమ్‌తో క్లిక్‌హౌస్ పని చాలా సమర్థవంతంగా అమలు చేయబడుతుంది. మీరు డేటాబేస్‌ల కోసం భారీ SATA డిస్క్‌లను ఉపయోగించవచ్చు మరియు సెకనుకు వందల వేల లైన్ల వ్రాత వేగాన్ని పొందవచ్చు. అవుట్-ఆఫ్-ది-బాక్స్ సిస్టమ్ షార్డింగ్, రెప్లికేషన్‌కు మద్దతు ఇస్తుంది మరియు కాన్ఫిగర్ చేయడం చాలా సులభం. ఏడాది పొడవునా దాని ఉపయోగంతో మేము సంతృప్తి చెందాము.

వనరులను ఆప్టిమైజ్ చేయడానికి, మీరు ఇప్పటికే ఉన్న ప్రధాన డేటాబేస్ పక్కన క్లిక్‌హౌస్‌ను ఇన్‌స్టాల్ చేయవచ్చు మరియు తద్వారా చాలా CPU సమయం మరియు డిస్క్ కార్యకలాపాలను ఆదా చేయవచ్చు. మేము మెట్రిక్‌ల ఆర్కైవ్‌ను ఇప్పటికే ఉన్న క్లిక్‌హౌస్ క్లస్టర్‌లకు తరలించాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మేము ప్రధాన MySQL డేటాబేస్ నుండి చాలా ఉపశమనం పొందాము, మేము దానిని Zabbix సర్వర్‌తో ఒక మెషీన్‌లో కలపవచ్చు మరియు MySQL కోసం అంకితమైన సర్వర్‌ను వదిలివేయవచ్చు.

Zabbixలో పోలింగ్ ఎలా పని చేస్తుంది?

4 నెలల క్రితం

MM: – సరే, ఆధారంతో ఉన్న సమస్యల గురించి మనం మరచిపోగలమా?

MCH: - అది ఖచ్చితంగా! మేము పరిష్కరించాల్సిన మరో సమస్య నెమ్మదిగా డేటా సేకరణ. ఇప్పుడు మా 15 ప్రాక్సీ సర్వర్‌లు SNMP మరియు పోలింగ్ ప్రక్రియలతో ఓవర్‌లోడ్ చేయబడ్డాయి. మరియు కొత్త మరియు కొత్త సర్వర్‌లను ఇన్‌స్టాల్ చేయడం మినహా మార్గం లేదు.

MM: - గొప్ప. అయితే ముందుగా, Zabbixలో పోలింగ్ ఎలా పని చేస్తుందో చెప్పండి?

MCH: – సంక్షిప్తంగా, 20 రకాల కొలమానాలు మరియు వాటిని పొందడానికి డజను మార్గాలు ఉన్నాయి. Zabbix "అభ్యర్థన-ప్రతిస్పందన" మోడ్‌లో డేటాను సేకరించవచ్చు లేదా "ట్రాపర్ ఇంటర్‌ఫేస్" ద్వారా కొత్త డేటా కోసం వేచి ఉండవచ్చు.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అసలు జబ్బిక్స్‌లో ఈ పద్ధతి (ట్రాపర్) అత్యంత వేగవంతమైనదని గమనించాలి.

లోడ్ పంపిణీ కోసం ప్రాక్సీ సర్వర్లు ఉన్నాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ప్రాక్సీలు Zabbix సర్వర్ వలె అదే సేకరణ విధులను నిర్వహించగలవు, దాని నుండి విధులను స్వీకరించవచ్చు మరియు సేకరించిన కొలమానాలను ట్రాపర్ ఇంటర్‌ఫేస్ ద్వారా పంపవచ్చు. లోడ్‌ను పంపిణీ చేయడానికి ఇది అధికారికంగా సిఫార్సు చేయబడిన మార్గం. NAT లేదా స్లో ఛానెల్ ద్వారా ఆపరేటింగ్ రిమోట్ ఇన్‌ఫ్రాస్ట్రక్చర్‌ను పర్యవేక్షించడానికి కూడా ప్రాక్సీలు ఉపయోగపడతాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: - వాస్తుశాస్త్రంతో ప్రతిదీ స్పష్టంగా ఉంది. మూలాధారాలను పరిశీలించాలి...

రెండు రోజుల తర్వాత

nmap fping ఎలా గెలిచిందనేది కథ

MM: "నేను ఏదో త్రవ్వించానని అనుకుంటున్నాను."

MCH: - చెప్పండి!

MM: – లభ్యతను తనిఖీ చేస్తున్నప్పుడు, Zabbix ఒక సమయంలో గరిష్టంగా 128 హోస్ట్‌లను తనిఖీ చేస్తుందని నేను కనుగొన్నాను. నేను ఈ సంఖ్యను 500కి పెంచడానికి ప్రయత్నించాను మరియు వారి పింగ్ (పింగ్)లో ఇంటర్-ప్యాకెట్ విరామాన్ని తీసివేయడానికి ప్రయత్నించాను - ఇది పనితీరును రెట్టింపు చేసింది. కానీ నేను పెద్ద సంఖ్యలను కోరుకుంటున్నాను.

MCH: – నా ఆచరణలో, నేను కొన్నిసార్లు వేల సంఖ్యలో హోస్ట్‌ల లభ్యతను తనిఖీ చేయాల్సి ఉంటుంది మరియు దీని కోసం nmap కంటే వేగవంతమైనది నేను ఎప్పుడూ చూడలేదు. ఇది వేగవంతమైన మార్గం అని నేను ఖచ్చితంగా అనుకుంటున్నాను. మనం దాన్ని ప్రయత్నం చేద్దాం! మేము ప్రతి పునరావృతానికి హోస్ట్‌ల సంఖ్యను గణనీయంగా పెంచాలి.

MM: – ఐదు వందల కంటే ఎక్కువ తనిఖీ చేయాలా? 600?

MCH: - కనీసం రెండు వేల.

MM: - అలాగే. నేను చెప్పదలుచుకున్న ముఖ్యమైన విషయం ఏమిటంటే, Zabbixలో చాలా పోలింగ్ సమకాలీకరించబడినట్లు నేను కనుగొన్నాను. మేము దానిని ఖచ్చితంగా అసమకాలిక మోడ్‌కి మార్చాలి. అప్పుడు మేము పోలర్‌ల ద్వారా సేకరించిన కొలమానాల సంఖ్యను నాటకీయంగా పెంచవచ్చు, ప్రత్యేకించి మేము ప్రతి పునరావృతానికి కొలమానాల సంఖ్యను పెంచినట్లయితే.

MCH: - గొప్ప! మరి ఎప్పుడూ?

MM: – ఎప్పటిలాగే, నిన్న.

MCH: - మేము fping మరియు nmap యొక్క రెండు వెర్షన్‌లను పోల్చాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

పెద్ద సంఖ్యలో హోస్ట్‌లలో, nmap ఐదు రెట్లు ఎక్కువ ప్రభావవంతంగా ఉంటుందని అంచనా వేయబడింది. nmap లభ్యత మరియు ప్రతిస్పందన సమయాన్ని మాత్రమే తనిఖీ చేస్తుంది కాబట్టి, మేము నష్టాల గణనను ట్రిగ్గర్‌లకు తరలించాము మరియు లభ్యత తనిఖీ విరామాలను గణనీయంగా తగ్గించాము. nmap కోసం హోస్ట్‌ల యొక్క సరైన సంఖ్య ప్రతి పునరావృతానికి దాదాపు 4 వేలుగా ఉన్నట్లు మేము కనుగొన్నాము. Nmap మాకు లభ్యత తనిఖీల CPU ధరను మూడు రెట్లు తగ్గించడానికి మరియు 120 సెకన్ల నుండి 10కి విరామాన్ని తగ్గించడానికి అనుమతించింది.

పోలింగ్ ఆప్టిమైజేషన్

MM: “అప్పుడు మేము పోలింగ్ చేయడం ప్రారంభించాము. మేము ప్రధానంగా SNMP గుర్తింపు మరియు ఏజెంట్లపై ఆసక్తి కలిగి ఉన్నాము. జబ్బిక్స్‌లో, పోలింగ్ సమకాలీకరించబడింది మరియు వ్యవస్థ యొక్క సామర్థ్యాన్ని పెంచడానికి ప్రత్యేక చర్యలు తీసుకోబడ్డాయి. సింక్రోనస్ మోడ్‌లో, హోస్ట్ లభ్యత గణనీయమైన పోలింగ్ క్షీణతకు కారణమవుతుంది. రాష్ట్రాల మొత్తం వ్యవస్థ ఉంది, ప్రత్యేక ప్రక్రియలు ఉన్నాయి - చేరుకోలేని పోలర్‌లు అని పిలవబడేవి, ఇవి చేరుకోలేని హోస్ట్‌లతో మాత్రమే పని చేస్తాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఇది స్టేట్ మ్యాట్రిక్స్‌ను ప్రదర్శించే వ్యాఖ్యానం, సిస్టమ్ ప్రభావవంతంగా ఉండటానికి అవసరమైన పరివర్తన వ్యవస్థ యొక్క సంక్లిష్టత. అదనంగా, సింక్రోనస్ పోలింగ్ చాలా నెమ్మదిగా ఉంటుంది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అందుకే డజన్ల కొద్దీ ప్రాక్సీలలో ఉన్న వేలాది పోలర్ స్ట్రీమ్‌లు మాకు అవసరమైన డేటాను సేకరించలేకపోయాయి. అసమకాలిక అమలు థ్రెడ్‌ల సంఖ్యతో ఉన్న సమస్యలను మాత్రమే పరిష్కరించింది, కానీ అందుబాటులో లేని హోస్ట్‌ల రాష్ట్ర వ్యవస్థను కూడా గణనీయంగా సరళీకృతం చేసింది, ఎందుకంటే ఒక పోలింగ్ పునరావృతంలో తనిఖీ చేసిన ఏ సంఖ్యకైనా, గరిష్ట నిరీక్షణ సమయం 1 సమయం ముగిసింది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అదనంగా, మేము SNMP అభ్యర్థనల కోసం పోలింగ్ విధానాన్ని సవరించాము మరియు మెరుగుపరచాము. వాస్తవం ఏమిటంటే చాలా మంది వ్యక్తులు ఒకే సమయంలో బహుళ SNMP అభ్యర్థనలకు ప్రతిస్పందించలేరు. కాబట్టి, అదే హోస్ట్ యొక్క SNMP పోలింగ్ అసమకాలికంగా జరిగినప్పుడు మేము హైబ్రిడ్ మోడ్‌ని తయారు చేసాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఇది హోస్ట్‌ల మొత్తం ప్యాక్ కోసం చేయబడుతుంది. ఈ మోడ్ అంతిమంగా పూర్తిగా అసమకాలికమైనది కంటే నెమ్మదిగా ఉండదు, ఎందుకంటే ఒకటిన్నర వందల SNMP విలువల పోలింగ్ ఇప్పటికీ 1 సమయం ముగిసింది.

మా ప్రయోగాలు SNMP పోలింగ్‌తో ఒక పునరుక్తిలో అనుకూలమైన అభ్యర్థనల సంఖ్య సుమారు 8 వేలు అని చూపించాయి. మొత్తంగా, అసమకాలిక మోడ్‌కి మారడం వల్ల పోలింగ్ పనితీరును 200 రెట్లు, అనేక వందల రెట్లు వేగవంతం చేయడానికి మాకు అనుమతి ఉంది.

MCH: – ఫలిత పోలింగ్ ఆప్టిమైజేషన్‌లు మేము అన్ని ప్రాక్సీలను వదిలించుకోవడమే కాకుండా, అనేక తనిఖీల కోసం విరామాలను తగ్గించగలమని మరియు లోడ్‌ను పంచుకోవడానికి ఇకపై ప్రాక్సీలు అవసరం లేదని చూపించాయి.

దాదాపు మూడు నెలల క్రితం

నిర్మాణాన్ని మార్చండి - లోడ్ పెంచండి!

MM: - బాగా, మాక్స్, ఇది ఉత్పాదకతను పొందే సమయమా? నాకు శక్తివంతమైన సర్వర్ మరియు మంచి ఇంజనీర్ కావాలి.

MCH: - సరే, ప్లాన్ చేద్దాం. సెకనుకు 5 వేల మెట్రిక్‌ల డెడ్ పాయింట్ నుండి కదలడానికి ఇది చాలా సమయం.

నవీకరణ తర్వాత ఉదయం

MCH: - మిషా, మేము మమ్మల్ని అప్‌డేట్ చేసుకున్నాము, కానీ ఉదయానికి మేము వెనక్కి తిరిగాము ... మేము ఏ వేగంతో సాధించగలిగామో ఊహించండి?

MM: - గరిష్టంగా 20 వేలు.

MCH: - అవును, 25! దురదృష్టవశాత్తు, మేము ఎక్కడ ప్రారంభించామో అక్కడే ఉన్నాము.

MM: - ఎందుకు? మీరు ఏదైనా డయాగ్నస్టిక్స్ అమలు చేశారా?

MCH: - అవును ఖచ్చితంగా! ఇక్కడ, ఉదాహరణకు, ఒక ఆసక్తికరమైన టాప్:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: - మనము చూద్దాము. మేము భారీ సంఖ్యలో పోలింగ్ థ్రెడ్‌లను ప్రయత్నించినట్లు నేను చూస్తున్నాను:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

కానీ అదే సమయంలో వారు సిస్టమ్‌ను సగం కూడా రీసైకిల్ చేయలేరు:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మరియు మొత్తం పనితీరు చాలా చిన్నది, సెకనుకు 4 వేల కొలమానాలు:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఇంకేమైనా ఉందా?

MCH: – అవును, పోలర్‌లలో ఒకరి జాబితా:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: - ఇక్కడ మీరు పోలింగ్ ప్రక్రియ "సెమాఫోర్స్" కోసం వేచి ఉన్నట్లు స్పష్టంగా చూడవచ్చు. ఇవి తాళాలు:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MCH: - అస్పష్టంగా.

MM: – చూడండి, థ్రెడ్‌ల సమూహం ఒకేసారి పని చేయగల వనరులతో పని చేయడానికి ప్రయత్నిస్తున్న పరిస్థితిని పోలి ఉంటుంది. అప్పుడు వారు చేయగలిగినదంతా ఈ వనరును కాలక్రమేణా పంచుకోవడం:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మరియు అటువంటి వనరుతో పని చేసే మొత్తం పనితీరు ఒక కోర్ వేగంతో పరిమితం చేయబడింది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఈ సమస్యను పరిష్కరించడానికి రెండు మార్గాలు ఉన్నాయి.

యంత్రం యొక్క హార్డ్‌వేర్‌ను అప్‌గ్రేడ్ చేయండి, వేగవంతమైన కోర్లకు మారండి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

లేదా నిర్మాణాన్ని మార్చండి మరియు అదే సమయంలో లోడ్‌ను మార్చండి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MCH: – మార్గం ద్వారా, టెస్ట్ మెషీన్‌లో మేము కంబాట్ వన్ కంటే తక్కువ కోర్లను ఉపయోగిస్తాము, అయితే అవి ఒక్కో కోర్‌కి ఫ్రీక్వెన్సీలో 1,5 రెట్లు వేగంగా ఉంటాయి!

MM: - క్లియర్? మీరు సర్వర్ కోడ్‌ను చూడాలి.

Zabbix సర్వర్‌లో డేటా మార్గం

MCH: – దీన్ని గుర్తించడానికి, మేము Zabbix సర్వర్ లోపల డేటా ఎలా బదిలీ చేయబడుతుందో విశ్లేషించడం ప్రారంభించాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మంచి చిత్రం, సరియైనదా? దీన్ని ఎక్కువ లేదా తక్కువ స్పష్టం చేయడానికి దశలవారీగా చూద్దాం. డేటాను సేకరించడానికి బాధ్యత వహించే థ్రెడ్‌లు మరియు సేవలు ఉన్నాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

వారు సేకరించిన కొలమానాలను సాకెట్ ద్వారా ప్రీప్రాసెసర్ మేనేజర్‌కి పంపుతారు, అక్కడ అవి క్యూలో సేవ్ చేయబడతాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

"ప్రీప్రాసెసర్ మేనేజర్" దాని వర్కర్లకు డేటాను ప్రసారం చేస్తుంది, ఇది ప్రీప్రాసెసింగ్ సూచనలను అమలు చేస్తుంది మరియు అదే సాకెట్ ద్వారా వాటిని తిరిగి ఇస్తుంది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

దీని తరువాత, ప్రీప్రాసెసర్ మేనేజర్ వాటిని చరిత్ర కాష్‌లో నిల్వ చేస్తుంది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అక్కడ నుండి వారు చరిత్ర సింకర్లచే తీసుకోబడ్డారు, వారు చాలా విధులు నిర్వహిస్తారు: ఉదాహరణకు, ట్రిగ్గర్‌లను లెక్కించడం, విలువ కాష్‌ను నింపడం మరియు ముఖ్యంగా, చరిత్ర నిల్వలో కొలమానాలను సేవ్ చేయడం. సాధారణంగా, ప్రక్రియ సంక్లిష్టమైనది మరియు చాలా గందరగోళంగా ఉంటుంది.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: - మేము చూసిన మొదటి విషయం ఏమిటంటే, చాలా థ్రెడ్‌లు "కాన్ఫిగరేషన్ కాష్" అని పిలవబడే (అన్ని సర్వర్ కాన్ఫిగరేషన్‌లు నిల్వ చేయబడిన మెమరీ ప్రాంతం) కోసం పోటీపడతాయి. డేటాను సేకరించడానికి బాధ్యత వహించే థ్రెడ్‌లు ముఖ్యంగా చాలా బ్లాక్‌లను చేస్తాయి:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

... కాన్ఫిగరేషన్ వాటి పారామితులతో కొలమానాలను మాత్రమే కాకుండా, పోలర్‌లు తదుపరి ఏమి చేయాలనే దాని గురించి సమాచారాన్ని తీసుకునే క్యూలను కూడా నిల్వ చేస్తుంది. చాలా మంది పోలర్‌లు ఉన్నప్పుడు మరియు ఒకరు కాన్ఫిగరేషన్‌ను బ్లాక్ చేసినప్పుడు, ఇతరులు అభ్యర్థనల కోసం వేచి ఉన్నారు:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

పోలింగ్‌దారులు ఘర్షణ పడకూడదు

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అందువల్ల, మేము చేసిన మొదటి పని క్యూను 4 భాగాలుగా విభజించి, సురక్షితమైన పరిస్థితుల్లో ఈ క్యూలను, ఈ భాగాలను ఒకే సమయంలో నిరోధించడానికి పోలర్‌లను అనుమతించడం:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఇది కాన్ఫిగరేషన్ కాష్ కోసం పోటీని తొలగించింది మరియు పోలర్‌ల వేగం గణనీయంగా పెరిగింది. కానీ ప్రిప్రాసెసర్ మేనేజర్ ఉద్యోగాల వరుసను కూడబెట్టుకోవడం ప్రారంభించారనే వాస్తవాన్ని మేము ఎదుర్కొన్నాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ప్రీప్రాసెసర్ మేనేజర్ తప్పనిసరిగా ప్రాధాన్యత ఇవ్వగలగాలి

అతను పనితీరు లోపించిన సందర్భాల్లో ఇది జరిగింది. అప్పుడు అతను చేయగలిగిందల్లా డేటా సేకరణ ప్రక్రియల నుండి అభ్యర్థనలను కూడగట్టుకోవడం మరియు అది మొత్తం మెమరీని వినియోగించి క్రాష్ అయ్యే వరకు వాటి బఫర్‌ను జోడించడం:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఈ సమస్యను పరిష్కరించడానికి, మేము ప్రత్యేకంగా కార్మికులకు అంకితం చేసిన రెండవ సాకెట్‌ను జోడించాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అందువలన, ప్రిప్రాసెసర్ మేనేజర్ దాని పనికి ప్రాధాన్యతనిచ్చే అవకాశాన్ని కలిగి ఉన్నాడు మరియు బఫర్ పెరిగితే, పని తొలగింపును నెమ్మదిస్తుంది, ఈ బఫర్‌ను తీసుకునే అవకాశాన్ని కార్మికులకు ఇస్తుంది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

పనిలో పనికి పూర్తిగా అప్రధానమైన వనరు కోసం వారు పోటీ పడుతున్నందున, మందగమనానికి కార్మికులే ఒక కారణమని మేము కనుగొన్నాము. మేము ఈ సమస్యను బగ్-పరిష్కారంగా డాక్యుమెంట్ చేసాము మరియు Zabbix యొక్క కొత్త వెర్షన్‌లలో ఇది ఇప్పటికే పరిష్కరించబడింది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మేము సాకెట్ల సంఖ్యను పెంచుతాము - మేము ఫలితాన్ని పొందుతాము

ఇంకా, ఇది ఒక థ్రెడ్ అయినందున ప్రిప్రాసెసర్ మేనేజర్ కూడా అడ్డంకిగా మారింది. ఇది సెకనుకు గరిష్టంగా 70 వేల మెట్రిక్‌ల వేగంతో ప్రధాన వేగంపై ఆధారపడింది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అందువల్ల, మేము నాలుగు సెట్ల సాకెట్లతో కార్మికులను తయారు చేసాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

మరియు ఇది వేగాన్ని సుమారు 130 వేల మెట్రిక్‌లకు పెంచడానికి మాకు అనుమతి ఇచ్చింది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

చరిత్ర కాష్ కోసం పోటీ కనిపించిన వాస్తవం ద్వారా వృద్ధి యొక్క నాన్-లీనియారిటీ వివరించబడింది. 4 ప్రిప్రాసెసర్ మేనేజర్లు మరియు హిస్టరీ సింకర్లు దాని కోసం పోటీ పడ్డారు. ఈ సమయంలో, మేము టెస్ట్ మెషీన్‌లో సెకనుకు దాదాపు 130 వేల మెట్రిక్‌లను స్వీకరిస్తున్నాము, ప్రాసెసర్‌లో సుమారు 95% దానిని ఉపయోగించాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

సుమారు 2,5 నెలల క్రితం

snmp-కమ్యూనిటీ నుండి తిరస్కరణ NVPలను ఒకటిన్నర రెట్లు పెంచింది

MM: – మాక్స్, నాకు కొత్త టెస్ట్ కారు కావాలి! మేము ఇప్పుడు ప్రస్తుతానికి సరిపోము.

MCH: - ఇప్పుడు మీ దగ్గర ఏమి ఉంది?

MM: – ఇప్పుడు – 130k NVPలు మరియు షెల్ఫ్-రెడీ ప్రాసెసర్.

MCH: - వావ్! కూల్! ఆగండి, నాకు రెండు ప్రశ్నలు ఉన్నాయి. నా లెక్కల ప్రకారం, మన అవసరం సెకనుకు 15-20 వేల మెట్రిక్‌లు. మనకు ఇంకా ఎందుకు అవసరం?

MM: "నేను పనిని పూర్తి చేయాలనుకుంటున్నాను." ఈ వ్యవస్థ నుండి మనం ఎంత దూరం చేయవచ్చో చూడాలనుకుంటున్నాను.

MCH: - కానీ...

MM: "కానీ ఇది వ్యాపారానికి పనికిరానిది."

MCH: - అది స్పష్టమైనది. మరియు రెండవ ప్రశ్న: డెవలపర్ సహాయం లేకుండా మన స్వంతంగా ఇప్పుడు మనం కలిగి ఉన్న వాటికి మద్దతు ఇవ్వగలమా?

MM: - నేను అనుకోను. కాన్ఫిగరేషన్ కాష్ ఎలా పనిచేస్తుందో మార్చడం ఒక సమస్య. ఇది చాలా థ్రెడ్‌లలో మార్పులను ప్రభావితం చేస్తుంది మరియు నిర్వహించడం చాలా కష్టం. చాలా మటుకు, దానిని నిర్వహించడం చాలా కష్టం.

MCH: "అప్పుడు మాకు ఒక రకమైన ప్రత్యామ్నాయం కావాలి."

MM: - అటువంటి ఎంపిక ఉంది. కొత్త లాకింగ్ సిస్టమ్‌ను వదిలివేసేటప్పుడు మనం ఫాస్ట్ కోర్‌లకు మారవచ్చు. మేము ఇప్పటికీ 60-80 వేల మెట్రిక్‌ల పనితీరును పొందుతాము. అదే సమయంలో, మేము మిగిలిన అన్ని కోడ్‌లను వదిలివేయవచ్చు. క్లిక్‌హౌస్ మరియు అసమకాలిక పోలింగ్ పని చేస్తుంది. మరియు దానిని నిర్వహించడం సులభం అవుతుంది.

MCH: - అద్భుతం! ఇక్కడ ఆపమని నేను సూచిస్తున్నాను.

సర్వర్ వైపు ఆప్టిమైజ్ చేసిన తర్వాత, మేము చివరకు కొత్త కోడ్‌ను ఉత్పత్తిలోకి ప్రారంభించగలిగాము. మేము వేగవంతమైన కోర్లతో మెషీన్‌కు మారడానికి మరియు కోడ్ మార్పుల సంఖ్యను తగ్గించడానికి అనుకూలంగా కొన్ని మార్పులను వదిలివేసాము. మేము కాన్ఫిగరేషన్‌ను కూడా సరళీకృతం చేసాము మరియు డేటా ఐటెమ్‌లు అదనపు లాకింగ్‌ను పరిచయం చేస్తున్నందున, సాధ్యమైన చోట మాక్రోలను తొలగించాము.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ఉదాహరణకు, డాక్యుమెంటేషన్ మరియు ఉదాహరణలలో తరచుగా కనిపించే snmp-కమ్యూనిటీ మాక్రోను వదలివేయడం, మా విషయంలో NVPలను 1,5 రెట్లు మరింత వేగవంతం చేయడం సాధ్యపడింది.

ఉత్పత్తిలో రెండు రోజుల తర్వాత

సంఘటన చరిత్ర పాప్-అప్‌లను తీసివేస్తోంది

MCH: – మిషా, మేము రెండు రోజులుగా సిస్టమ్‌ని ఉపయోగిస్తున్నాము మరియు ప్రతిదీ పని చేస్తుంది. కానీ ప్రతిదీ పని చేసినప్పుడు మాత్రమే! మేము నెట్‌వర్క్‌లోని చాలా పెద్ద సెగ్మెంట్‌ను బదిలీ చేయడంతో పనిని ప్లాన్ చేసాము మరియు ఏమి పెరిగింది మరియు ఏమి చేయలేదని మేము మళ్ళీ మా చేతులతో తనిఖీ చేసాము.

MM: - ఉండకూడదు! మేము ప్రతిదీ 10 సార్లు తనిఖీ చేసాము. సర్వర్ పూర్తి నెట్‌వర్క్ లభ్యతను తక్షణమే నిర్వహిస్తుంది.

MCH: - అవును, నేను ప్రతిదీ అర్థం చేసుకున్నాను: సర్వర్, డేటాబేస్, టాప్, ఆస్టాట్, లాగ్‌లు - ప్రతిదీ వేగంగా ఉంది... కానీ మేము వెబ్ ఇంటర్‌ఫేస్‌ని చూస్తాము మరియు సర్వర్‌లో “షెల్ఫ్‌లో” ప్రాసెసర్ ఉంది మరియు ఇది:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: - అది స్పష్టమైనది. వెబ్ చూద్దాం. పెద్ద సంఖ్యలో సక్రియ సంఘటనలు ఉన్న పరిస్థితిలో, చాలా ప్రత్యక్ష విడ్జెట్‌లు చాలా నెమ్మదిగా పని చేయడం ప్రారంభించాయని మేము కనుగొన్నాము:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

దీనికి కారణం జాబితాలోని ప్రతి అంశానికి జనరేట్ చేయబడిన సంఘటన చరిత్ర పాప్-అప్‌ల తరం. అందువల్ల, మేము ఈ విండోల ఉత్పత్తిని విడిచిపెట్టాము (కోడ్‌లో 5 లైన్‌లను వ్యాఖ్యానించాము), మరియు ఇది మా సమస్యలను పరిష్కరించింది.

విడ్జెట్‌ల లోడ్ సమయం, పూర్తిగా అందుబాటులో లేనప్పటికీ, చాలా నిమిషాల నుండి మాకు ఆమోదయోగ్యమైన 10-15 సెకన్లకు తగ్గించబడింది మరియు సమయంపై క్లిక్ చేయడం ద్వారా చరిత్రను ఇప్పటికీ వీక్షించవచ్చు:

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

పని తరువాత. 2 నెలల క్రితం

MCH: - మిషా, మీరు వెళ్లిపోతున్నారా? మనం మాట్లాడాలి.

MM: - నేను ఉద్దేశించలేదు. Zabbixతో మళ్లీ ఏదైనా ఉందా?

MCH: - లేదు, విశ్రాంతి! నేను ఇప్పుడే చెప్పాలనుకుంటున్నాను: ప్రతిదీ పని చేస్తుంది, ధన్యవాదాలు! నాకు బీరు వచ్చింది.

Zabbix సమర్థవంతమైనది

Zabbix అనేది సార్వత్రిక మరియు గొప్ప వ్యవస్థ మరియు పనితీరు. ఇది బాక్స్ వెలుపల చిన్న ఇన్‌స్టాలేషన్‌ల కోసం ఉపయోగించబడుతుంది, కానీ అవసరాలు పెరిగేకొద్దీ, దానిని ఆప్టిమైజ్ చేయాలి. కొలమానాల యొక్క పెద్ద ఆర్కైవ్‌ను నిల్వ చేయడానికి, తగిన నిల్వను ఉపయోగించండి:

  • మీరు సాగే శోధనతో ఏకీకరణ రూపంలో అంతర్నిర్మిత సాధనాలను ఉపయోగించవచ్చు లేదా టెక్స్ట్ ఫైల్‌లకు చరిత్రను అప్‌లోడ్ చేయవచ్చు (వెర్షన్ XNUMX నుండి అందుబాటులో ఉంది);
  • మీరు క్లిక్‌హౌస్‌తో మా అనుభవం మరియు ఏకీకరణను సద్వినియోగం చేసుకోవచ్చు.

మెట్రిక్‌లను సేకరించే వేగాన్ని నాటకీయంగా పెంచడానికి, అసమకాలిక పద్ధతులను ఉపయోగించి వాటిని సేకరించి, వాటిని ట్రాపర్ ఇంటర్‌ఫేస్ ద్వారా Zabbix సర్వర్‌కు ప్రసారం చేయండి; లేదా మీరు Zabbix పోలర్‌లను అసమకాలికంగా చేయడానికి ప్యాచ్‌ని ఉపయోగించవచ్చు.

Zabbix C లో వ్రాయబడింది మరియు చాలా సమర్థవంతంగా ఉంటుంది. అనేక నిర్మాణ అడ్డంకులను పరిష్కరించడం వలన మీరు దాని పనితీరును మరింత పెంచుకోవచ్చు మరియు మా అనుభవంలో, ఒకే ప్రాసెసర్ మెషీన్‌లో 100 వేల కంటే ఎక్కువ కొలమానాలను పొందగలరు.

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

అదే Zabbix ప్యాచ్

MM: – నేను కొన్ని పాయింట్లను జోడించాలనుకుంటున్నాను. మొత్తం ప్రస్తుత నివేదిక, అన్ని పరీక్షలు, సంఖ్యలు మనం ఉపయోగించే కాన్ఫిగరేషన్ కోసం ఇవ్వబడ్డాయి. మేము ఇప్పుడు దాని నుండి సెకనుకు సుమారు 20 వేల మెట్రిక్‌లను తీసుకుంటున్నాము. ఇది మీ కోసం పని చేస్తుందో లేదో అర్థం చేసుకోవడానికి మీరు ప్రయత్నిస్తుంటే, మీరు పోల్చవచ్చు. ఈరోజు చర్చించబడినది GitHubలో ప్యాచ్ రూపంలో పోస్ట్ చేయబడింది: github.com/miklert/zabbix

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

ప్యాచ్ కలిగి ఉంటుంది:

  • క్లిక్‌హౌస్‌తో పూర్తి ఏకీకరణ (జబ్బిక్స్ సర్వర్ మరియు ఫ్రంటెండ్ రెండూ);
  • ప్రిప్రాసెసర్ మేనేజర్‌తో సమస్యలను పరిష్కరించడం;
  • అసమకాలిక పోలింగ్.

ప్యాచ్ ltsతో సహా అన్ని వెర్షన్ 4కి అనుకూలంగా ఉంటుంది. చాలా మటుకు, కనీస మార్పులతో ఇది వెర్షన్ 3.4లో పని చేస్తుంది.

మీ దృష్టిని ధన్యవాదాలు.

మీ ప్రశ్నలు

ప్రేక్షకుల నుండి ప్రశ్న (ఇకపై – A): – శుభ మధ్యాహ్నం! దయచేసి నాకు చెప్పండి, మీరు Zabbix టీమ్‌తో లేదా వారితో మీతో ఇంటెన్సివ్ ఇంటరాక్షన్ కోసం ప్లాన్‌లను కలిగి ఉన్నారా, తద్వారా ఇది ప్యాచ్ కాదు, Zabbix యొక్క సాధారణ ప్రవర్తన?

MM: – అవును, మేము ఖచ్చితంగా కొన్ని మార్పులకు కట్టుబడి ఉంటాము. ఏదో జరుగుతుంది, ఏదో ప్యాచ్‌లో ఉంటుంది.

మరియు: - అద్భుతమైన నివేదిక కోసం చాలా ధన్యవాదాలు! దయచేసి నాకు చెప్పండి, ప్యాచ్‌ని వర్తింపజేసిన తర్వాత, Zabbix నుండి మద్దతు అలాగే ఉంటుంది మరియు అధిక వెర్షన్‌లకు అప్‌డేట్ చేయడం ఎలా కొనసాగించాలి? మీ ప్యాచ్ తర్వాత Zabbixని 4.2, 5.0కి అప్‌డేట్ చేయడం సాధ్యమవుతుందా?

MM: - మద్దతు గురించి నేను ఏమీ చెప్పలేను. నేను Zabbix సాంకేతిక మద్దతు అయితే, ఇది వేరొకరి కోడ్ అయినందున నేను బహుశా వద్దు అని చెబుతాను. 4.2 కోడ్‌బేస్ విషయానికొస్తే, మా స్థానం: "మేము కాలక్రమేణా కదులుతాము మరియు తదుపరి సంస్కరణలో మమ్మల్ని అప్‌డేట్ చేస్తాము." అందువల్ల, కొంత సమయం వరకు మేము నవీకరించబడిన సంస్కరణల కోసం ప్యాచ్‌ను పోస్ట్ చేస్తాము. నేను ఇప్పటికే నివేదికలో చెప్పాను: సంస్కరణలతో మార్పుల సంఖ్య ఇప్పటికీ చాలా తక్కువగా ఉంది. 3.4 నుండి 4కి మారడానికి మాకు దాదాపు 15 నిమిషాలు పట్టిందని నేను భావిస్తున్నాను. అక్కడ ఏదో మార్పు జరిగింది, కానీ చాలా ముఖ్యమైనది కాదు.

మరియు: – కాబట్టి మీరు మీ ప్యాచ్‌కు మద్దతు ఇవ్వాలని ప్లాన్ చేస్తున్నారా మరియు మీరు దీన్ని ఉత్పత్తిలో సురక్షితంగా ఇన్‌స్టాల్ చేయగలరా మరియు భవిష్యత్తులో ఏదో ఒక విధంగా అప్‌డేట్‌లను స్వీకరించగలరా?

MM: - మేము దీన్ని గట్టిగా సిఫార్సు చేస్తున్నాము. ఇది మనకు చాలా సమస్యలను పరిష్కరిస్తుంది.

MCH: – మరోసారి, ఆర్కిటెక్చర్‌కు సంబంధం లేని మరియు నిరోధించడం లేదా క్యూలకు సంబంధించిన మార్పులు మాడ్యులర్‌గా ఉన్నాయని, అవి ప్రత్యేక మాడ్యూల్స్‌లో ఉన్నాయని నేను దృష్టిని ఆకర్షించాలనుకుంటున్నాను. చిన్న మార్పులతో కూడా మీరు వాటిని చాలా సులభంగా నిర్వహించవచ్చు.

MM: – మీకు వివరాలపై ఆసక్తి ఉంటే, “క్లిక్‌హౌస్” చరిత్ర లైబ్రరీ అని పిలవబడే దాన్ని ఉపయోగిస్తుంది. ఇది విప్పబడింది - ఇది ఎలాస్టిక్స్ మద్దతు యొక్క కాపీ, అంటే ఇది కాన్ఫిగర్ చేయబడింది. పోలింగ్ పోలర్‌లను మాత్రమే మారుస్తుంది. ఇది చాలా కాలం పని చేస్తుందని మేము నమ్ముతున్నాము.

మరియు: - చాలా ధన్యవాదాలు. నాకు చెప్పండి, చేసిన మార్పులకు సంబంధించిన ఏదైనా డాక్యుమెంటేషన్ ఉందా?

HighLoad++, Mikhail Makurov, Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ఒక సర్వర్‌లో

MM: – డాక్యుమెంటేషన్ ఒక పాచ్. సహజంగానే, క్లిక్‌హౌస్ పరిచయంతో, కొత్త రకాల పోలర్‌ల పరిచయంతో, కొత్త కాన్ఫిగరేషన్ ఎంపికలు తలెత్తుతాయి. చివరి స్లయిడ్‌లోని లింక్‌లో దీన్ని ఎలా ఉపయోగించాలో సంక్షిప్త వివరణ ఉంది.

fpingని nmapతో భర్తీ చేయడం గురించి

మరియు: - మీరు చివరకు దీన్ని ఎలా అమలు చేసారు? మీరు నిర్దిష్ట ఉదాహరణలను ఇవ్వగలరా: మీకు స్ట్రాపర్లు మరియు బాహ్య స్క్రిప్ట్ ఉందా? ఇంత త్వరగా ఇంత భారీ సంఖ్యలో హోస్ట్‌లను తనిఖీ చేయడం ఏమిటి? మీరు ఈ హోస్ట్‌లను ఎలా గని చేస్తారు? మనం వాటిని ఎలాగైనా ఎన్‌మ్యాప్‌కి తినిపించాలా, ఎక్కడి నుండైనా తెచ్చుకోవాలి, వాటిని పెట్టాలి, ఏదైనా అమలు చేయాలి?..

MM: - కూల్. చాలా సరైన ప్రశ్న! పాయింట్ ఇది. మేము ICMP తనిఖీల కోసం లైబ్రరీని (ICMP పింగ్, Zabbix భాగం) సవరించాము, ఇది ప్యాకెట్‌ల సంఖ్యను సూచిస్తుంది - ఒకటి (1), మరియు కోడ్ nmapని ఉపయోగించడానికి ప్రయత్నిస్తుంది. అంటే, ఇది జబ్బిక్స్ యొక్క అంతర్గత పని, ఇది పింగర్ యొక్క అంతర్గత పనిగా మారింది. దీని ప్రకారం, ట్రాపర్ యొక్క సమకాలీకరణ లేదా ఉపయోగం అవసరం లేదు. సిస్టమ్ చెక్కుచెదరకుండా ఉండటానికి మరియు రెండు డేటాబేస్ సిస్టమ్‌ల సమకాలీకరణతో వ్యవహరించాల్సిన అవసరం లేకుండా ఇది ఉద్దేశపూర్వకంగా జరిగింది: ఏమి తనిఖీ చేయాలి, పోలర్ ద్వారా అప్‌లోడ్ చేయాలి మరియు మా అప్‌లోడ్ విచ్ఛిన్నమైందా?.. ఇది చాలా సరళమైనది.

మరియు: – ఇది ప్రాక్సీలకు కూడా పని చేస్తుందా?

MM: - అవును, కానీ మేము తనిఖీ చేయలేదు. Zabbix మరియు సర్వర్ రెండింటిలోనూ పోలింగ్ కోడ్ ఒకే విధంగా ఉంటుంది. పని చేయాలి. నేను మరోసారి నొక్కి చెబుతున్నాను: సిస్టమ్ పనితీరు మనకు ప్రాక్సీ అవసరం లేదు.

MCH: - ప్రశ్నకు సరైన సమాధానం: "మీకు అలాంటి సిస్టమ్‌తో ప్రాక్సీ ఎందుకు అవసరం?" NAT కారణంగా లేదా ఏదో ఒక రకమైన స్లో ఛానెల్ ద్వారా పర్యవేక్షించడం వల్ల మాత్రమే...

మరియు: – మరియు నేను సరిగ్గా అర్థం చేసుకున్నట్లయితే, మీరు Zabbixని అలెర్టర్‌గా ఉపయోగిస్తారు. లేదా మీ గ్రాఫిక్స్ (ఆర్కైవ్ లేయర్ ఉన్న చోట) గ్రాఫానా వంటి మరొక సిస్టమ్‌కి తరలించబడిందా? లేదా మీరు ఈ కార్యాచరణను ఉపయోగించడం లేదా?

MM: – నేను మరోసారి నొక్కి చెబుతాను: మేము పూర్తి ఏకీకరణను సాధించాము. మేము క్లిక్‌హౌస్‌లోకి చరిత్రను అందిస్తున్నాము, కానీ అదే సమయంలో మేము php ఫ్రంటెండ్‌ని మార్చాము. Php ఫ్రంటెండ్ క్లిక్‌హౌస్‌కి వెళ్లి అక్కడ నుండి అన్ని గ్రాఫిక్‌లను చేస్తుంది. అదే సమయంలో, నిజం చెప్పాలంటే, అదే క్లిక్‌హౌస్ నుండి, అదే Zabbix డేటా నుండి ఇతర గ్రాఫిక్ డిస్‌ప్లే సిస్టమ్‌లలో డేటాను రూపొందించే భాగాన్ని మేము కలిగి ఉన్నాము.

MCH: - "గ్రాఫాన్" లో కూడా.

వనరుల కేటాయింపుపై ఎలా నిర్ణయాలు తీసుకున్నారు?

మరియు: – మీ లోపలి వంటగదిలో కొంత భాగాన్ని పంచుకోండి. ఉత్పత్తి యొక్క తీవ్రమైన ప్రాసెసింగ్ కోసం వనరులను కేటాయించాల్సిన అవసరం ఉందని నిర్ణయం ఎలా తీసుకోబడింది? ఇవి సాధారణంగా, కొన్ని ప్రమాదాలు. మరియు మీరు కొత్త సంస్కరణలకు మద్దతు ఇవ్వబోతున్న సందర్భంలో దయచేసి నాకు చెప్పండి: నిర్వహణ దృక్కోణం నుండి ఈ నిర్ణయం ఎలా సమర్థించబడుతోంది?

MM: - స్పష్టంగా, మేము చరిత్ర యొక్క నాటకాన్ని బాగా చెప్పలేదు. మేము ఏదైనా చేయవలసిన పరిస్థితిలో ఉన్నాము మరియు మేము తప్పనిసరిగా రెండు సమాంతర జట్లతో వెళ్ళాము:

  • ఒకటి కొత్త పద్ధతులను ఉపయోగించి మానిటరింగ్ సిస్టమ్‌ను ప్రారంభించడం: సేవగా మానిటర్ చేయడం, మేము మిళితం చేసే ఓపెన్ సోర్స్ సొల్యూషన్‌ల యొక్క ప్రామాణిక సెట్, ఆపై కొత్త మానిటరింగ్ సిస్టమ్‌తో పని చేయడానికి వ్యాపార ప్రక్రియను మార్చడానికి ప్రయత్నిస్తాము.
  • అదే సమయంలో, మాకు ఒక ఉత్సాహభరితమైన ప్రోగ్రామర్ ఉన్నాడు, అతను దీన్ని చేస్తున్నాడు (తన గురించి). అతను గెలిచినట్లే జరిగింది.

మరియు: - మరియు జట్టు పరిమాణం ఏమిటి?

MCH: - ఆమె మీ ముందు ఉంది.

మరియు: – కాబట్టి, ఎప్పటిలాగే, మీకు అభిరుచి అవసరమా?

MM: - అభిరుచి అంటే ఏమిటో నాకు తెలియదు.

మరియు: - ఈ సందర్భంలో, స్పష్టంగా, మీరు. చాలా ధన్యవాదాలు, మీరు అద్భుతంగా ఉన్నారు.

MM: - ధన్యవాదాలు.

Zabbix కోసం పాచెస్ గురించి

మరియు: – ప్రాక్సీలను ఉపయోగించే సిస్టమ్ కోసం (ఉదాహరణకు, కొన్ని పంపిణీ చేయబడిన సిస్టమ్‌లలో), పోలర్‌లు, ప్రాక్సీలు మరియు పాక్షికంగా Zabbix ప్రిప్రాసెసర్‌ను స్వీకరించడం మరియు ప్యాచ్ చేయడం సాధ్యమేనా; మరియు వారి పరస్పర చర్య? బహుళ ప్రాక్సీలతో సిస్టమ్ కోసం ఇప్పటికే ఉన్న డెవలప్‌మెంట్‌లను ఆప్టిమైజ్ చేయడం సాధ్యమేనా?

MM: – Zabbix సర్వర్ ప్రాక్సీని ఉపయోగించి సమీకరించబడిందని నాకు తెలుసు (కోడ్ కంపైల్ చేయబడింది మరియు పొందబడింది). మేము దీన్ని ఉత్పత్తిలో పరీక్షించలేదు. దీని గురించి నాకు ఖచ్చితంగా తెలియదు, కానీ ప్రాక్సీలో ప్రీప్రాసెసర్ మేనేజర్ ఉపయోగించబడలేదని నేను భావిస్తున్నాను. ప్రాక్సీ యొక్క పని ఏమిటంటే, Zabbix నుండి కొలమానాల సమితిని తీసుకొని, వాటిని విలీనం చేయడం (ఇది కాన్ఫిగరేషన్, స్థానిక డేటాబేస్‌ను కూడా రికార్డ్ చేస్తుంది) మరియు దానిని Zabbix సర్వర్‌కు తిరిగి ఇవ్వడం. సర్వర్ దానిని స్వీకరించినప్పుడు ప్రీప్రాసెసింగ్ చేస్తుంది.

ప్రాక్సీల పట్ల ఆసక్తిని అర్థం చేసుకోవచ్చు. మేము దానిని తనిఖీ చేస్తాము. ఇది ఆసక్తికరమైన అంశం.

మరియు: – ఆలోచన ఇది: మీరు పోలర్‌లను ప్యాచ్ చేయగలిగితే, మీరు వాటిని ప్రాక్సీలో ప్యాచ్ చేయవచ్చు మరియు సర్వర్‌తో పరస్పర చర్యను ప్యాచ్ చేయవచ్చు మరియు సర్వర్‌లో మాత్రమే ఈ ప్రయోజనాల కోసం ప్రీప్రాసెసర్‌ను స్వీకరించవచ్చు.

MM: - ఇది మరింత సులభం అని నేను అనుకుంటున్నాను. మీరు కోడ్‌ను తీసుకుని, ప్యాచ్‌ని వర్తింపజేయండి, ఆపై మీకు అవసరమైన విధంగా కాన్ఫిగర్ చేయండి - ప్రాక్సీ సర్వర్‌లను (ఉదాహరణకు, ODBCతో) సేకరించి, ప్యాచ్ చేసిన కోడ్‌ను సిస్టమ్‌లలో పంపిణీ చేయండి. అవసరమైన చోట - ప్రాక్సీని సేకరించండి, అవసరమైన చోట - సర్వర్.

మరియు: - చాలా మటుకు, మీరు అదనంగా సర్వర్‌కు ప్రాక్సీ ట్రాన్స్‌మిషన్‌ను ప్యాచ్ చేయాల్సిన అవసరం లేదా?

MCH: - లేదు, ఇది ప్రామాణికం.

MM: – నిజానికి, ఆలోచనలలో ఒకటి ధ్వనించలేదు. ఆలోచనల విస్ఫోటనం మరియు మార్పుల పరిమాణం మరియు మద్దతు సౌలభ్యం మధ్య మేము ఎల్లప్పుడూ సమతుల్యతను కొనసాగించాము.

కొన్ని ప్రకటనలు 🙂

మాతో ఉన్నందుకు ధన్యవాదాలు. మీరు మా కథనాలను ఇష్టపడుతున్నారా? మరింత ఆసక్తికరమైన కంటెంట్‌ని చూడాలనుకుంటున్నారా? ఆర్డర్ చేయడం ద్వారా లేదా స్నేహితులకు సిఫార్సు చేయడం ద్వారా మాకు మద్దతు ఇవ్వండి, $4.99 నుండి డెవలపర్‌ల కోసం క్లౌడ్ VPS, ఎంట్రీ-లెవల్ సర్వర్‌ల యొక్క ప్రత్యేకమైన అనలాగ్, ఇది మీ కోసం మా ద్వారా కనుగొనబడింది: $5 నుండి VPS (KVM) E2697-3 v6 (10 కోర్లు) 4GB DDR480 1GB SSD 19Gbps గురించి పూర్తి నిజం లేదా సర్వర్‌ను ఎలా భాగస్వామ్యం చేయాలి? (RAID1 మరియు RAID10తో అందుబాటులో ఉంది, గరిష్టంగా 24 కోర్లు మరియు 40GB DDR4 వరకు).

ఆమ్‌స్టర్‌డామ్‌లోని ఈక్వినిక్స్ టైర్ IV డేటా సెంటర్‌లో Dell R730xd 2x చౌకగా ఉందా? ఇక్కడ మాత్రమే $2 నుండి 2 x ఇంటెల్ టెట్రాడెకా-కోర్ జియాన్ 5x E2697-3v2.6 14GHz 64C 4GB DDR4 960x1GB SSD 100Gbps 199 TV నెదర్లాండ్స్‌లో! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 నుండి! గురించి చదవండి ఇన్‌ఫ్రాస్ట్రక్చర్ కార్పొరేషన్‌ను ఎలా నిర్మించాలి. ఒక పెన్నీకి 730 యూరోల విలువైన Dell R5xd E2650-4 v9000 సర్వర్‌ల వాడకంతో తరగతి?

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి