HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

اگلی HighLoad++ کانفرنس 6 اور 7 اپریل 2020 کو سینٹ پیٹرزبرگ میں ہوگی تفصیلات اور ٹکٹ ссылке по. ہائی لوڈ++ ماسکو 2018۔ ہال "ماسکو"۔ 9 نومبر، 15:00۔ مقالہ جات اور پریزنٹیشن.

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

* مانیٹرنگ - آن لائن اور تجزیات۔
* ZABBIX پلیٹ فارم کی بنیادی حدود۔
* تجزیاتی اسٹوریج کو پیمانہ کرنے کا حل۔
* ZABBIX سرور کی اصلاح۔
* UI کی اصلاح۔
* 40k سے زیادہ NVPS کے بوجھ میں سسٹم کو چلانے کا تجربہ کریں۔
*مختصر نتائج۔

میخائل ماکوروف (اس کے بعد - ایم ایم): - سب کو سلام!

میکسم چرنیٹسوف (اس کے بعد - MCH): - صبح بخیر!

MM: - مجھے میکسم کا تعارف کروانے دو۔ میکس ایک باصلاحیت انجینئر ہے، بہترین نیٹ ورکر جسے میں جانتا ہوں۔ میکسم نیٹ ورکس اور خدمات، ان کی ترقی اور آپریشن میں ملوث ہے.

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

MCH: - اور میں آپ کو میخائل کے بارے میں بتانا چاہوں گا۔ میخائل ایک سی ڈویلپر ہے۔ اس نے ہماری کمپنی کے لیے ہائی لوڈ ٹریفک پروسیسنگ کے کئی حل لکھے۔ ہم یورال میں رہتے ہیں اور کام کرتے ہیں، سخت آدمیوں کے شہر چیلیابنسک میں، Intersvyaz کمپنی میں۔ ہماری کمپنی 16 شہروں میں دس لاکھ لوگوں کے لیے انٹرنیٹ اور کیبل ٹیلی ویژن کی خدمات فراہم کرنے والی ہے۔

MM: - اور یہ کہنے کے قابل ہے کہ Intersvyaz صرف ایک فراہم کنندہ سے کہیں زیادہ ہے، یہ ایک IT کمپنی ہے۔ ہمارے زیادہ تر حل ہمارے آئی ٹی ڈیپارٹمنٹ کے ذریعہ بنائے جاتے ہیں۔

اور: سرورز سے لے کر کال سینٹر اور موبائل ایپلیکیشن تک ٹریفک پر کارروائی کرتے ہیں۔ آئی ٹی ڈیپارٹمنٹ میں اب تقریباً 80 افراد ہیں جن کے پاس بہت، بہت متنوع صلاحیتیں ہیں۔

Zabbix اور اس کے فن تعمیر کے بارے میں

MCH: - اور اب میں ذاتی ریکارڈ قائم کرنے کی کوشش کروں گا اور ایک منٹ میں بتاؤں گا کہ Zabbix کیا ہے (اس کے بعد "Zabbix" کہا جاتا ہے)۔

Zabbix اپنے آپ کو ایک انٹرپرائز سطح کے آؤٹ آف دی باکس مانیٹرنگ سسٹم کے طور پر رکھتا ہے۔ اس میں بہت سی خصوصیات ہیں جو زندگی کو آسان بناتی ہیں: اعلی درجے کے اضافے کے اصول، انضمام کے لیے API، میزبانوں اور میٹرکس کی گروپ بندی اور خودکار شناخت۔ Zabbix کے پاس نام نہاد اسکیلنگ ٹولز ہیں - پراکسیز۔ Zabbix ایک اوپن سورس سسٹم ہے۔

فن تعمیر کے بارے میں مختصراً۔ ہم کہہ سکتے ہیں کہ یہ تین اجزاء پر مشتمل ہے:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

  • سرور سی میں لکھا گیا۔ دھاگوں کے درمیان پیچیدہ پروسیسنگ اور معلومات کی منتقلی کے ساتھ۔ تمام پروسیسنگ اس میں ہوتی ہے: وصول کرنے سے لے کر ڈیٹا بیس میں محفوظ کرنے تک۔
  • تمام ڈیٹا ڈیٹا بیس میں محفوظ ہے۔ Zabbix MySQL، PostreSQL اور اوریکل کو سپورٹ کرتا ہے۔
  • ویب انٹرفیس پی ایچ پی میں لکھا جاتا ہے۔ زیادہ تر سسٹمز پر یہ اپاچی سرور کے ساتھ آتا ہے، لیکن nginx + php کے ساتھ مل کر زیادہ مؤثر طریقے سے کام کرتا ہے۔

آج ہم Zabbix سے متعلق اپنی کمپنی کی زندگی کی ایک کہانی سنانا چاہیں گے...

Intersvyaz کمپنی کی زندگی سے ایک کہانی. ہمارے پاس کیا ہے اور ہمیں کیا چاہیے؟

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر
5 یا 6 ماہ پہلے۔ ایک دن کام کے بعد...

MCH: - میشا، ہیلو! مجھے خوشی ہے کہ میں آپ کو پکڑنے میں کامیاب ہو گیا - ایک بات چیت ہے۔ ہمیں دوبارہ نگرانی کے ساتھ مسائل کا سامنا کرنا پڑا۔ ایک بڑے حادثے کے دوران، سب کچھ سست تھا اور نیٹ ورک کی حالت کے بارے میں کوئی معلومات نہیں تھی. بدقسمتی سے، ایسا پہلی بار نہیں ہوا ہے۔ مجھے آپکی مدد چاہیے. آئیے کسی بھی حالت میں اپنی نگرانی کا کام کریں!

MM: - لیکن آئیے پہلے ہم آہنگی کرتے ہیں۔ میں نے ایک دو سالوں میں وہاں نہیں دیکھا۔ جہاں تک مجھے یاد ہے، ہم نے ناگیوس کو چھوڑ دیا اور تقریباً 8 سال پہلے زیبکس پر چلے گئے۔ اور اب ایسا لگتا ہے کہ ہمارے پاس 6 طاقتور سرورز اور ایک درجن کے قریب پراکسی ہیں۔ کیا میں کچھ الجھا رہا ہوں؟

MCH: - تقریبا. 15 سرورز، جن میں سے کچھ ورچوئل مشینیں ہیں۔ سب سے اہم بات یہ ہے کہ یہ ہمیں اس وقت نہیں بچاتا جب ہمیں اس کی سب سے زیادہ ضرورت ہوتی ہے۔ ایک حادثے کی طرح - سرورز سست ہو جاتے ہیں اور آپ کچھ بھی نہیں دیکھ سکتے۔ ہم نے ترتیب کو بہتر بنانے کی کوشش کی، لیکن اس سے کارکردگی میں زیادہ سے زیادہ اضافہ نہیں ہوا۔

MM: - یہ بات واضح ہے. کیا آپ نے کچھ دیکھا، کیا آپ نے پہلے ہی تشخیص سے کچھ کھود لیا ہے؟

MCH: - پہلی چیز جس سے آپ کو نمٹنا ہے وہ ہے ڈیٹا بیس۔ MySQL مسلسل لوڈ ہوتا ہے، نئے میٹرکس کو اسٹور کرتا ہے، اور جب Zabbix واقعات کا ایک گروپ بنانا شروع کرتا ہے، ڈیٹا بیس لفظی طور پر چند گھنٹوں کے لیے اوور ڈرائیو میں چلا جاتا ہے۔ میں نے آپ کو کنفیگریشن کو بہتر بنانے کے بارے میں پہلے ہی بتایا تھا، لیکن لفظی طور پر اس سال انہوں نے ہارڈ ویئر کو اپ ڈیٹ کیا: سرورز کے پاس SSD RAIDs پر سو گیگا بائٹس سے زیادہ میموری اور ڈسک کی صفیں ہیں - طویل مدتی میں اسے لکیری طور پر بڑھانے کا کوئی فائدہ نہیں ہے۔ ہم کیا کریں؟

MM: - یہ بات واضح ہے. عام طور پر، MySQL ایک LTP ڈیٹا بیس ہے۔ بظاہر، یہ ہمارے سائز کے میٹرکس کے آرکائیو کو ذخیرہ کرنے کے لیے اب موزوں نہیں ہے۔ آئیے اس کا پتہ لگائیں۔

MCH: - چلو!

ہیکاتھون کے نتیجے میں زیبکس اور کلک ہاؤس کا انضمام

کچھ دیر بعد ہمیں دلچسپ ڈیٹا موصول ہوا:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

ہمارے ڈیٹا بیس میں زیادہ تر جگہ پر میٹرکس آرکائیو کا قبضہ تھا اور کنفیگریشن، ٹیمپلیٹس اور سیٹنگز کے لیے 1% سے کم استعمال کیا گیا تھا۔ اس وقت تک، ہم کلک ہاؤس پر مبنی بگ ڈیٹا حل کو ایک سال سے زیادہ عرصے سے چلا رہے تھے۔ تحریک کا رخ ہم پر واضح تھا۔ ہمارے موسم بہار کے ہیکاتھون میں، میں نے سرور اور فرنٹ اینڈ کے لیے Clickhouse کے ساتھ Zabbix کا انضمام لکھا۔ اس وقت، Zabbix کو ElasticSearch کے لیے پہلے سے ہی حمایت حاصل تھی، اور ہم نے ان کا موازنہ کرنے کا فیصلہ کیا۔

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

Clickhouse اور Elasticsearch کا موازنہ

MM: - موازنہ کے لیے، ہم نے وہی بوجھ پیدا کیا جیسا کہ Zabbix سرور فراہم کرتا ہے اور یہ دیکھا کہ سسٹم کس طرح برتاؤ کریں گے۔ ہم نے CURL کا استعمال کرتے ہوئے 1000 لائنوں کے بیچوں میں ڈیٹا لکھا۔ ہم نے پہلے سے فرض کر لیا تھا کہ کلک ہاؤس لوڈ پروفائل کے لیے زیادہ کارگر ہو گا جو Zabbix کرتا ہے۔ نتائج ہماری توقعات سے بھی بڑھ گئے:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

اسی ٹیسٹ کے حالات کے تحت کلک ہاؤس نے تین گنا زیادہ ڈیٹا لکھا۔ ایک ہی وقت میں، ڈیٹا کو پڑھتے وقت دونوں نظاموں نے بہت مؤثر طریقے سے (ذرائع کی ایک چھوٹی سی مقدار) استعمال کی۔ لیکن ریکارڈنگ کرتے وقت Elastics کو بڑی مقدار میں پروسیسر کی ضرورت ہوتی ہے۔

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

مجموعی طور پر، کلک ہاؤس پروسیسر کی کھپت اور رفتار کے لحاظ سے Elastix سے نمایاں طور پر برتر تھا۔ ایک ہی وقت میں، ڈیٹا کمپریشن کی وجہ سے، کلک ہاؤس ہارڈ ڈرائیو پر 11 گنا کم استعمال کرتا ہے اور تقریباً 30 گنا کم ڈسک آپریشن کرتا ہے:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

MCH: - جی ہاں، ڈسک سب سسٹم کے ساتھ کلک ہاؤس کا کام بہت مؤثر طریقے سے نافذ کیا گیا ہے۔ آپ ڈیٹا بیس کے لیے بہت بڑی SATA ڈسکیں استعمال کر سکتے ہیں اور فی سیکنڈ لاکھوں لائنوں کی لکھنے کی رفتار حاصل کر سکتے ہیں۔ آؤٹ آف دی باکس سسٹم شارڈنگ، ریپلیکیشن کو سپورٹ کرتا ہے اور کنفیگر کرنا بہت آسان ہے۔ ہم سال بھر اس کے استعمال سے زیادہ مطمئن ہیں۔

وسائل کو بہتر بنانے کے لیے، آپ اپنے موجودہ مین ڈیٹا بیس کے ساتھ کلک ہاؤس انسٹال کر سکتے ہیں اور اس طرح CPU کا بہت سا وقت اور ڈسک آپریشنز بچا سکتے ہیں۔ ہم نے میٹرکس کے آرکائیو کو موجودہ کلک ہاؤس کلسٹرز میں منتقل کر دیا ہے:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

ہم نے مرکزی MySQL ڈیٹابیس کو اتنا ریلیف دیا کہ ہم اسے Zabbix سرور کے ساتھ ایک مشین پر جوڑ سکتے ہیں اور MySQL کے لیے وقف کردہ سرور کو ترک کر سکتے ہیں۔

زبکس میں پولنگ کیسے کام کرتی ہے؟

4 مہینے پہلے

MM: - ٹھیک ہے، کیا ہم بنیاد کے مسائل کو بھول سکتے ہیں؟

MCH: - یہ بات یقینی ہے! ایک اور مسئلہ جو ہمیں حل کرنے کی ضرورت ہے وہ ہے سست ڈیٹا اکٹھا کرنا۔ اب ہمارے تمام 15 پراکسی سرورز SNMP اور پولنگ کے عمل سے بھرے ہوئے ہیں۔ اور نئے اور نئے سرورز کو انسٹال کرنے کے علاوہ کوئی راستہ نہیں ہے۔

MM: - زبردست. لیکن پہلے یہ بتائیں کہ زبکس میں پولنگ کیسے کام کرتی ہے؟

MCH: - مختصراً، میٹرکس کی 20 اقسام اور انہیں حاصل کرنے کے درجن بھر طریقے ہیں۔ Zabbix یا تو "Request-response" موڈ میں ڈیٹا اکٹھا کر سکتا ہے، یا "Trapper Interface" کے ذریعے نئے ڈیٹا کا انتظار کر سکتا ہے۔

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

یہ بات قابل غور ہے کہ اصل زیبکس میں یہ طریقہ (ٹریپر) سب سے تیز ہے۔

لوڈ کی تقسیم کے لیے پراکسی سرورز ہیں:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

پراکسی زبکس سرور کے طور پر جمع کرنے کے وہی کام انجام دے سکتی ہیں، اس سے کام وصول کر کے اور جمع شدہ میٹرکس کو ٹریپر انٹرفیس کے ذریعے بھیجنا۔ یہ بوجھ کو تقسیم کرنے کا سرکاری طور پر تجویز کردہ طریقہ ہے۔ NAT یا سست چینل کے ذریعے کام کرنے والے ریموٹ انفراسٹرکچر کی نگرانی کے لیے پراکسی بھی مفید ہیں:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

MM: - فن تعمیر کے ساتھ سب کچھ واضح ہے۔ ہمیں ذرائع کو دیکھنے کی ضرورت ہے ...

ایک دو دن بعد

nmap fping جیتنے کی کہانی

MM: "مجھے لگتا ہے کہ میں نے کچھ کھود لیا ہے۔"

MCH: - مجھے بتاءو!

MM: - میں نے دریافت کیا کہ دستیابی کی جانچ کرتے وقت، Zabbix ایک وقت میں زیادہ سے زیادہ 128 میزبانوں کو چیک کرتا ہے۔ میں نے اس تعداد کو 500 تک بڑھانے اور ان کے پنگ (پنگ) میں انٹر پیکٹ وقفہ کو ہٹانے کی کوشش کی - اس سے کارکردگی دگنی ہوگئی۔ لیکن میں بڑی تعداد چاہتا ہوں۔

MCH: – اپنی مشق میں، مجھے کبھی کبھی ہزاروں میزبانوں کی دستیابی کو چیک کرنا پڑتا ہے، اور میں نے اس کے لیے nmap سے تیز کوئی چیز نہیں دیکھی۔ مجھے یقین ہے کہ یہ تیز ترین طریقہ ہے۔ آؤ اس کو آزماتے ہیں! ہمیں فی تکرار میزبانوں کی تعداد میں نمایاں اضافہ کرنے کی ضرورت ہے۔

MM: - پانچ سو سے زیادہ چیک کریں؟ 600؟

MCH: - کم از کم ایک دو ہزار۔

MM: - ٹھیک ہے. سب سے اہم بات جو میں کہنا چاہتا تھا وہ یہ ہے کہ میں نے محسوس کیا کہ زیبکس میں زیادہ تر پولنگ ہم آہنگی سے کی جاتی ہے۔ ہمیں یقینی طور پر اسے غیر مطابقت پذیر موڈ میں تبدیل کرنے کی ضرورت ہے۔ پھر ہم پولرز کے ذریعہ جمع کردہ میٹرکس کی تعداد کو ڈرامائی طور پر بڑھا سکتے ہیں، خاص طور پر اگر ہم فی تکرار میٹرکس کی تعداد میں اضافہ کریں۔

MCH: - زبردست! اور کب؟

MM: - ہمیشہ کی طرح، کل۔

MCH: - ہم نے fping اور nmap کے دونوں ورژن کا موازنہ کیا:

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

میزبانوں کی ایک بڑی تعداد پر، nmap کے پانچ گنا زیادہ موثر ہونے کی توقع تھی۔ چونکہ nmap صرف دستیابی اور رسپانس ٹائم کو چیک کرتا ہے، اس لیے ہم نے نقصانات کے حساب کتاب کو محرکات میں منتقل کر دیا اور دستیابی کی جانچ کے وقفوں کو نمایاں طور پر کم کر دیا۔ ہم نے nmap کے لیے میزبانوں کی زیادہ سے زیادہ تعداد تقریباً 4 ہزار فی تکرار پائی۔ Nmap نے ہمیں دستیابی چیک کی CPU لاگت کو تین گنا کم کرنے اور وقفہ کو 120 سیکنڈ سے کم کر کے 10 کرنے کی اجازت دی۔

پولنگ کی اصلاح

MM: "پھر ہم نے پولر کرنا شروع کیا۔ ہم بنیادی طور پر SNMP کا پتہ لگانے اور ایجنٹوں میں دلچسپی رکھتے تھے۔ Zabbix میں، پولنگ ہم آہنگی سے کی جاتی ہے اور نظام کی کارکردگی کو بڑھانے کے لیے خصوصی اقدامات کیے گئے ہیں۔ سنکرونس موڈ میں، میزبان کی عدم دستیابی پولنگ میں نمایاں کمی کا سبب بنتی ہے۔ ریاستوں کا ایک پورا نظام ہے، خاص عمل ہیں - نام نہاد ناقابل رسائی پولرز، جو صرف ناقابل رسائی میزبانوں کے ساتھ کام کرتے ہیں:

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-کمیونٹی کی طرف سے انکار نے NVPs میں ڈیڑھ گنا اضافہ کیا۔

MM: - میکس، مجھے ایک نئی ٹیسٹ کار کی ضرورت ہے! ہم اب موجودہ میں فٹ نہیں ہیں۔

MCH: - اب آپ کے پاس کیا ہے؟

MM: - اب - 130k NVPs اور شیلف کے لیے تیار پروسیسر۔

MCH: - زبردست! ٹھنڈا! رکو، میرے دو سوال ہیں۔ میرے حساب کے مطابق ہماری ضرورت 15-20 ہزار میٹرک فی سیکنڈ ہے۔ ہمیں مزید کیوں ضرورت ہے؟

MM: ’’میں کام ختم کرنا چاہتا ہوں۔‘‘ میں دیکھنا چاہوں گا کہ ہم اس نظام سے کتنا نچوڑ سکتے ہیں۔

MCH: - لیکن…

MM: "لیکن یہ کاروبار کے لیے بیکار ہے۔"

MCH: - یہ بات واضح ہے. اور دوسرا سوال: کیا ہم ڈویلپر کی مدد کے بغیر اپنے طور پر جو کچھ ہمارے پاس ہے اس کی حمایت کر سکتے ہیں؟

MM: - مجھے نہیں لگتا. کنفیگریشن کیشے کے کام کرنے کے طریقے کو تبدیل کرنا ایک مسئلہ ہے۔ یہ زیادہ تر دھاگوں میں تبدیلیوں کو متاثر کرتا ہے اور اسے برقرار رکھنا کافی مشکل ہے۔ زیادہ تر امکان ہے، اسے برقرار رکھنا بہت مشکل ہوگا۔

MCH: "پھر ہمیں کسی قسم کے متبادل کی ضرورت ہے۔"

MM: - اس طرح کا ایک اختیار ہے. ہم نئے لاکنگ سسٹم کو ترک کرتے ہوئے فاسٹ کور پر جا سکتے ہیں۔ ہمیں اب بھی 60-80 ہزار میٹرکس کی کارکردگی ملے گی۔ ایک ہی وقت میں، ہم باقی تمام کوڈ چھوڑ سکتے ہیں۔ کلک ہاؤس اور غیر مطابقت پذیر پولنگ کام کرے گی۔ اور اسے برقرار رکھنا آسان ہوگا۔

MCH: - حیرت انگیز! میرا مشورہ ہے کہ ہم یہاں رک جائیں۔

سرور سائیڈ کو بہتر بنانے کے بعد، ہم آخر کار نئے کوڈ کو پروڈکشن میں لانچ کرنے کے قابل ہو گئے۔ ہم نے تیز کور والی مشین پر سوئچ کرنے اور کوڈ کی تبدیلیوں کی تعداد کو کم کرنے کے حق میں کچھ تبدیلیاں ترک کر دیں۔ ہم نے کنفیگریشن کو بھی آسان بنا دیا ہے اور جہاں ممکن ہو ڈیٹا آئٹمز میں میکرو کو ختم کر دیا ہے، کیونکہ وہ اضافی لاکنگ متعارف کراتے ہیں۔

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

مثال کے طور پر، snmp-community macro کو ترک کرنا، جو اکثر دستاویزات اور مثالوں میں پایا جاتا ہے، ہمارے معاملے میں NVPs کو تقریباً 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: - Misha، تم جا رہے ہو؟ ہمیں بات کرنی ہے۔

MM: - میرا ارادہ نہیں تھا۔ Zabbix کے ساتھ دوبارہ کچھ؟

MCH: - نہیں، آرام کرو! میں صرف یہ کہنا چاہتا تھا: سب کچھ کام کرتا ہے، شکریہ! میرے پاس بیئر ہے

زیبکس موثر ہے۔

Zabbix ایک کافی عالمگیر اور بھرپور نظام اور فنکشن ہے۔ اسے باکس سے باہر چھوٹی تنصیبات کے لیے استعمال کیا جا سکتا ہے، لیکن جیسے جیسے ضرورتیں بڑھیں گی، اسے بہتر بنانا ہوگا۔ میٹرکس کا ایک بڑا ذخیرہ ذخیرہ کرنے کے لیے، ایک مناسب ذخیرہ استعمال کریں:

  • آپ Elasticsearch کے ساتھ انضمام کی شکل میں بلٹ ان ٹولز استعمال کر سکتے ہیں یا ٹیکسٹ فائلوں پر تاریخ اپ لوڈ کر سکتے ہیں (ورژن 4 سے دستیاب)؛
  • آپ کلک ہاؤس کے ساتھ ہمارے تجربے اور انضمام سے فائدہ اٹھا سکتے ہیں۔

میٹرکس کو جمع کرنے کی رفتار کو ڈرامائی طور پر بڑھانے کے لیے، غیر مطابقت پذیر طریقوں کا استعمال کرتے ہوئے انہیں جمع کریں اور انہیں ٹریپر انٹرفیس کے ذریعے Zabbix سرور پر منتقل کریں۔ یا آپ Zabbix پولرز کو غیر مطابقت پذیر بنانے کے لیے پیچ استعمال کر سکتے ہیں۔

Zabbix C میں لکھا گیا ہے اور کافی موثر ہے۔ متعدد تعمیراتی رکاوٹوں کو حل کرنے سے آپ اس کی کارکردگی کو مزید بڑھا سکتے ہیں اور ہمارے تجربے میں، ایک واحد پروسیسر مشین پر 100 ہزار سے زیادہ میٹرکس حاصل کر سکتے ہیں۔

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

وہی Zabbix پیچ

MM: - میں کچھ پوائنٹس شامل کرنا چاہتا ہوں۔ پوری موجودہ رپورٹ، تمام ٹیسٹ، نمبر اس ترتیب کے لیے دیے گئے ہیں جو ہم استعمال کرتے ہیں۔ اب ہم اس سے تقریباً 20 ہزار میٹرک فی سیکنڈ لے رہے ہیں۔ اگر آپ یہ سمجھنے کی کوشش کر رہے ہیں کہ آیا یہ آپ کے لیے کام کرے گا، تو آپ موازنہ کر سکتے ہیں۔ آج جو بات چیت ہوئی وہ گٹ ہب پر ایک پیچ کی شکل میں پوسٹ کی گئی ہے۔ github.com/miklert/zabbix

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

پیچ میں شامل ہیں:

  • کلک ہاؤس کے ساتھ مکمل انضمام (زابکس سرور اور فرنٹ اینڈ دونوں)؛
  • پری پروسیسر مینیجر کے ساتھ مسائل کو حل کرنا؛
  • غیر مطابقت پذیر پولنگ

پیچ تمام ورژن 4 کے ساتھ مطابقت رکھتا ہے، بشمول lts۔ زیادہ تر امکان ہے کہ یہ کم سے کم تبدیلیوں کے ساتھ ورژن 3.4 پر کام کرے گا۔

آپ کی توجہ کے لئے آپ کا شکریہ.

آپ کے سوالات

سامعین سے سوال (اس کے بعد - A): - گڈ آفٹرن! براہ کرم مجھے بتائیں، کیا آپ کے پاس زیبکس ٹیم کے ساتھ یا ان کے ساتھ آپ کے ساتھ گہرا تعامل کرنے کا منصوبہ ہے، تاکہ یہ کوئی پیچ نہیں، بلکہ زیبکس کا نارمل سلوک ہو؟

MM: - ہاں، ہم کچھ تبدیلیاں ضرور کریں گے۔ کچھ تو ہو گا، کچھ پیوند ہی رہے گا۔

اور: - بہترین رپورٹ کے لیے آپ کا بہت بہت شکریہ! براہ کرم مجھے بتائیں، پیچ لگانے کے بعد، Zabbix سے تعاون باقی رہے گا اور اعلی ورژن میں اپ ڈیٹ کرنا کیسے جاری رکھا جائے؟ کیا آپ کے پیچ کے بعد Zabbix کو 4.2، 5.0 پر اپ ڈیٹ کرنا ممکن ہوگا؟

MM: - میں حمایت کے بارے میں کچھ نہیں کہہ سکتا۔ اگر میں Zabbix تکنیکی معاون ہوتا، تو میں شاید نہیں کہتا، کیونکہ یہ کسی اور کا کوڈ ہے۔ جہاں تک 4.2 کوڈبیس کا تعلق ہے، ہماری پوزیشن یہ ہے: "ہم وقت کے ساتھ آگے بڑھیں گے، اور ہم اگلے ورژن پر خود کو اپ ڈیٹ کریں گے۔" لہذا، کچھ وقت کے لئے ہم اپ ڈیٹ شدہ ورژن کے لئے ایک پیچ پوسٹ کریں گے. میں نے پہلے ہی رپورٹ میں کہا تھا: ورژن کے ساتھ تبدیلیوں کی تعداد اب بھی بہت کم ہے۔ میرے خیال میں 3.4 سے 4 کی منتقلی میں ہمیں تقریباً 15 منٹ لگے۔ وہاں کچھ بدلا، لیکن بہت اہم نہیں۔

اور: - تو آپ اپنے پیچ کو سپورٹ کرنے کا ارادہ رکھتے ہیں اور آپ اسے محفوظ طریقے سے پروڈکشن میں انسٹال کر سکتے ہیں اور مستقبل میں کسی طرح اپ ڈیٹس حاصل کر سکتے ہیں؟

MM: - ہم اس کی سختی سے سفارش کرتے ہیں۔ اس سے ہمارے بہت سے مسائل حل ہو جاتے ہیں۔

MCH: - ایک بار پھر، میں اس حقیقت کی طرف توجہ مبذول کرانا چاہوں گا کہ وہ تبدیلیاں جو فن تعمیر سے متعلق نہیں ہیں اور نہ ہی بلاک کرنے یا قطاروں سے متعلق ہیں ماڈیولر ہیں، وہ الگ الگ ماڈیولز میں ہیں۔ معمولی تبدیلیوں کے ساتھ بھی آپ انہیں آسانی سے برقرار رکھ سکتے ہیں۔

MM: - اگر آپ تفصیلات میں دلچسپی رکھتے ہیں، تو "کلک ہاؤس" نام نہاد ہسٹری لائبریری کا استعمال کرتا ہے۔ یہ کھلا ہوا ہے - یہ Elastics سپورٹ کی ایک کاپی ہے، یعنی یہ قابل ترتیب ہے۔ پولنگ صرف پولرز کو تبدیل کرتی ہے۔ ہمیں یقین ہے کہ یہ طویل عرصے تک کام کرے گا۔

اور: - بہت شکریہ. مجھے بتائیں، کیا تبدیلیوں کی کوئی دستاویز موجود ہے؟

HighLoad++، Mikhail Makurov، Maxim Chernetsov (Intersvyaz): Zabbix, 100kNVPS ایک سرور پر

MM: - دستاویزات ایک پیچ ہے۔ ظاہر ہے، کلک ہاؤس کے تعارف کے ساتھ، نئی قسم کے پولرز کے تعارف کے ساتھ، نئے ترتیب کے اختیارات پیدا ہوتے ہیں. پچھلی سلائیڈ کے لنک میں اسے استعمال کرنے کے طریقے کی مختصر تفصیل ہے۔

fping کو nmap سے تبدیل کرنے کے بارے میں

اور: - آپ نے آخر کار اسے کیسے نافذ کیا؟ کیا آپ مخصوص مثالیں دے سکتے ہیں: کیا آپ کے پاس اسٹریپر اور ایک بیرونی اسکرپٹ ہے؟ اتنی جلدی میزبانوں کی اتنی بڑی تعداد کو چیک کرنے سے آخر کیا ہوتا ہے؟ آپ ان میزبانوں کو کیسے مانتے ہیں؟ کیا ہمیں انہیں کسی نہ کسی طرح nmap کرنے، انہیں کہیں سے لانے، اندر ڈالنے، کچھ چلانے کے لیے کھانا کھلانے کی ضرورت ہے؟

MM: - ٹھنڈا. ایک بہت درست سوال! بات یہ ہے۔ ہم نے ICMP چیک کے لیے لائبریری (ICMP پنگ، Zabbix کا حصہ) میں ترمیم کی، جو پیکٹوں کی تعداد کی نشاندہی کرتی ہے - ایک (1)، اور کوڈ nmap استعمال کرنے کی کوشش کرتا ہے۔ یعنی یہ زبکس کا اندرونی کام ہے جو پنگر کا اندرونی کام بن گیا ہے۔ اس کے مطابق، ہم وقت سازی یا ٹریپر کے استعمال کی ضرورت نہیں ہے۔ یہ جان بوجھ کر کیا گیا تاکہ سسٹم کو برقرار رکھا جا سکے اور اسے دو ڈیٹا بیس سسٹمز کی ہم آہنگی سے نمٹنے کی ضرورت نہ پڑے: کیا چیک کیا جائے، پولر کے ذریعے اپ لوڈ کیا جائے، اور کیا ہمارا اپ لوڈ ٹوٹ گیا ہے؟... یہ بہت آسان ہے۔

اور: - کیا یہ پراکسیوں کے لیے بھی کام کرتا ہے؟

MM: - ہاں، لیکن ہم نے چیک نہیں کیا۔ زبکس اور سرور دونوں میں پولنگ کوڈ یکساں ہے۔ کام کرنا چاہیے۔ میں ایک بار پھر زور دیتا ہوں: سسٹم کی کارکردگی ایسی ہے کہ ہمیں پراکسی کی ضرورت نہیں ہے۔

MCH: - سوال کا صحیح جواب ہے: "آپ کو ایسے نظام کے ساتھ پراکسی کی ضرورت کیوں ہے؟" صرف NAT یا کسی قسم کے سست چینل کے ذریعے نگرانی کی وجہ سے...

اور: - اور اگر میں صحیح طور پر سمجھتا ہوں تو آپ Zabbix کو الرٹر کے طور پر استعمال کرتے ہیں۔ یا کیا آپ کے گرافکس (جہاں محفوظ شدہ دستاویزات کی پرت ہے) کو کسی دوسرے سسٹم میں منتقل کر دیا گیا ہے، جیسے کہ گرافانا؟ یا آپ اس فعالیت کو استعمال نہیں کر رہے ہیں؟

MM: - میں ایک بار پھر زور دوں گا: ہم نے مکمل انضمام حاصل کر لیا ہے۔ ہم کلک ہاؤس میں تاریخ ڈال رہے ہیں، لیکن اسی وقت ہم نے پی ایچ پی فرنٹ اینڈ کو تبدیل کر دیا ہے۔ پی ایچ پی فرنٹ اینڈ کلک ہاؤس جاتا ہے اور وہاں سے تمام گرافکس کرتا ہے۔ ایک ہی وقت میں، سچ پوچھیں تو، ہمارے پاس ایک حصہ ہے جو ایک ہی کلک ہاؤس سے دوسرے گرافک ڈسپلے سسٹمز میں ڈیٹا بناتا ہے، اسی Zabbix ڈیٹا سے۔

MCH: - "گرافان" میں بھی۔

وسائل کی تقسیم کے بارے میں فیصلے کیسے ہوئے؟

اور: - اپنے اندرونی باورچی خانے کا تھوڑا سا اشتراک کریں۔ یہ فیصلہ کیسے کیا گیا کہ پروڈکٹ کی سنجیدہ پروسیسنگ کے لیے وسائل مختص کرنا ضروری تھا؟ یہ، عام طور پر، بعض خطرات ہیں. اور براہ کرم مجھے اس حقیقت کے تناظر میں بتائیں کہ آپ نئے ورژن کی حمایت کرنے جا رہے ہیں: یہ فیصلہ انتظامی نقطہ نظر سے کس طرح جائز ہے؟

MM: - بظاہر، ہم نے تاریخ کے ڈرامے کو اچھی طرح سے نہیں بتایا۔ ہم نے خود کو ایسی صورت حال میں پایا جہاں کچھ کرنا تھا، اور ہم بنیادی طور پر دو متوازی ٹیموں کے ساتھ گئے:

  • ایک نئے طریقوں کا استعمال کرتے ہوئے ایک نگرانی کا نظام شروع کر رہا تھا: ایک سروس کے طور پر نگرانی، اوپن سورس حل کا ایک معیاری سیٹ جسے ہم یکجا کرتے ہیں اور پھر نئے مانیٹرنگ سسٹم کے ساتھ کام کرنے کے لیے کاروباری عمل کو تبدیل کرنے کی کوشش کرتے ہیں۔
  • اسی وقت، ہمارے پاس ایک پرجوش پروگرامر تھا جو یہ (اپنے بارے میں) کر رہا تھا۔ ایسا ہوا کہ وہ جیت گیا۔

اور: - اور ٹیم کا سائز کیا ہے؟

MCH: - وہ آپ کے سامنے ہے.

اور: - تو، ہمیشہ کی طرح، آپ کو ایک پرجوش کی ضرورت ہے؟

MM: - مجھے نہیں معلوم کہ پرجوش کیا ہے۔

اور: - اس معاملے میں، بظاہر، آپ. آپ کا بہت بہت شکریہ، آپ بہت اچھے ہیں۔

MM: - آپ کا شکریہ.

Zabbix کے لیے پیچ کے بارے میں

اور: - ایک ایسے نظام کے لیے جو پراکسی استعمال کرتا ہے (مثال کے طور پر، کچھ تقسیم شدہ نظاموں میں)، کیا یہ ممکن ہے کہ خود زبکس کے پولرز، پراکسیز اور جزوی طور پر پری پروسیسر کو اپنانا اور پیچ کرنا؛ اور ان کا تعامل؟ کیا ایک سے زیادہ پراکسی والے سسٹم کے لیے موجودہ پیش رفت کو بہتر بنانا ممکن ہے؟

MM: - میں جانتا ہوں کہ Zabbix سرور کو ایک پراکسی کا استعمال کرتے ہوئے جمع کیا گیا ہے (کوڈ مرتب اور حاصل کیا گیا ہے)۔ ہم نے پیداوار میں اس کا تجربہ نہیں کیا ہے۔ مجھے اس کے بارے میں یقین نہیں ہے، لیکن میرے خیال میں پراکسی میں پری پروسیسر مینیجر استعمال نہیں ہوتا ہے۔ پراکسی کا کام Zabbix سے میٹرکس کا ایک سیٹ لینا، انہیں ضم کرنا (یہ کنفیگریشن، مقامی ڈیٹا بیس کو بھی ریکارڈ کرتا ہے) اور اسے Zabbix سرور کو واپس دینا ہے۔ جب سرور اسے وصول کرے گا تو خود ہی پری پروسیسنگ کرے گا۔

پراکسیوں میں دلچسپی سمجھ میں آتی ہے۔ ہم اسے چیک کریں گے۔ یہ ایک دلچسپ موضوع ہے۔

اور: - خیال یہ تھا: اگر آپ پولرز کو پیچ کر سکتے ہیں، تو آپ انہیں پراکسی پر پیچ کر سکتے ہیں اور سرور کے ساتھ تعامل کو پیچ کر سکتے ہیں، اور صرف سرور پر ان مقاصد کے لیے پری پروسیسر کو ڈھال سکتے ہیں۔

MM: - میرے خیال میں یہ اور بھی آسان ہے۔ آپ کوڈ لیتے ہیں، ایک پیچ لگاتے ہیں، پھر اسے اپنی ضرورت کے مطابق ترتیب دیتے ہیں - پراکسی سرورز جمع کریں (مثال کے طور پر، ODBC کے ساتھ) اور پیچ شدہ کوڈ کو سسٹمز میں تقسیم کریں۔ جہاں ضروری ہو - ایک پراکسی جمع کریں، جہاں ضروری ہو - ایک سرور۔

اور: - زیادہ امکان ہے، آپ کو اضافی طور پر سرور پر پراکسی ٹرانسمیشن کو پیچ نہیں کرنا پڑے گا؟

MCH: - نہیں، یہ معیاری ہے.

MM: - حقیقت میں، خیالات میں سے ایک آواز نہیں آئی. ہم نے ہمیشہ خیالات کے دھماکے اور تبدیلیوں کی مقدار اور مدد میں آسانی کے درمیان توازن برقرار رکھا ہے۔

کچھ اشتہارات 🙂

ہمارے ساتھ رہنے کے لیے آپ کا شکریہ۔ کیا آپ کو ہمارے مضامین پسند ہیں؟ مزید دلچسپ مواد دیکھنا چاہتے ہیں؟ آرڈر دے کر یا دوستوں کو مشورہ دے کر ہمارا ساتھ دیں، کلاؤڈ VPS برائے ڈویلپرز $4.99 سے, انٹری لیول سرورز کا ایک انوکھا اینالاگ، جو ہم نے آپ کے لیے ایجاد کیا تھا: VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps کے بارے میں پوری حقیقت $19 سے یا سرور کا اشتراک کیسے کریں؟ (RAID1 اور RAID10 کے ساتھ دستیاب، 24 کور تک اور 40GB DDR4 تک)۔

ایمسٹرڈیم میں Equinix Tier IV ڈیٹا سینٹر میں Dell R730xd 2 گنا سستا؟ صرف یہاں 2x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV $199 سے نیدرلینڈ میں! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - $99 سے! کے بارے میں پڑھا انفراسٹرکچر کارپوریشن کو کیسے بنایا جائے۔ ڈیل R730xd E5-2650 v4 سرورز کے استعمال کے ساتھ کلاس جس کی مالیت 9000 یورو ہے؟

ماخذ: www.habr.com

نیا تبصرہ شامل کریں