ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

ڪبرنيٽس مانيٽرنگ جي تصور تي غور ڪريو، پروميٿيوس ٽول سان واقف ٿيو، ۽ خبردار ڪرڻ بابت ڳالهايو.

مانيٽرنگ جو موضوع وڏو آهي، ان کي هڪ مضمون ۾ جدا نه ٿو ڪري سگهجي. هن متن جو مقصد اوزارن، تصورن ۽ طريقن جو هڪ جائزو مهيا ڪرڻ آهي.

مضمون جي مواد مان هڪ نچوض آهي اسڪول جو کليل ليڪچر "Slurm". جيڪڏهن توهان مڪمل ڪورس وٺڻ چاهيو ٿا - سائن اپ ڪريو هڪ ڪورس لاءِ ڪبرنيٽس ۾ انفراسٽرڪچر جي نگراني ۽ لاگنگ.

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

ڪبرنيٽس ڪلستر ۾ ڇا مانيٽر ڪيو ويو آهي

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

جسماني سرور. جيڪڏهن ڪبرنيٽس ڪلستر ان جي سرور تي لڳايو ويو آهي، توهان کي انهن جي صحت جي نگراني ڪرڻ جي ضرورت آهي. Zabbix هي ڪم سنڀاليندو آهي؛ جيڪڏهن توهان هن سان گڏ ڪم ڪيو، پوء توهان کي انڪار ڪرڻ جي ضرورت ناهي، اتي ڪو به تڪرار نه ٿيندو. اهو Zabbix آهي جيڪو اسان جي سرور جي حالت مانيٽر ڪري ٿو.

اچو ته ڪلستر جي سطح تي نگراني ڏانهن وڃو.

ڪنٽرول جهاز اجزاء: API، شيڊيولر ۽ ٻيا. گھٽ ۾ گھٽ، توھان کي پڪ ڪرڻ جي ضرورت آھي ته سرورز يا etcd جو API 0 کان وڌيڪ آھي. Etcd تمام گھڻا ميٽرڪ موٽائي سگھي ٿو: ڊسڪ جي ذريعي جنھن تي اھو گھمندو آھي، ان جي etcd ڪلستر جي صحت جي لحاظ کان، ۽ ٻيا.

Docker گهڻو وقت اڳ ظاهر ٿيو ۽ هرڪو پنهنجي مسئلن کان چڱي طرح واقف آهي: ڪيترائي ڪنٽينر منجمد ۽ ٻيا مسئلا پيدا ڪن ٿا. تنهن ڪري، Docker پاڻ، هڪ سسٽم جي طور تي، پڻ ڪنٽرول ڪيو وڃي، گهٽ ۾ گهٽ دستيابي لاء.

ڊي اين ايس. جيڪڏهن ڊي اين ايس ڪلستر ۾ بند ٿئي ٿي، ته پوء سڄي دريافت سروس ان کان پوء بند ٿي ويندي، پوڊ کان پوڊ تائين ڪالون ڪم ڪرڻ بند ٿي وينديون. منهنجي عمل ۾، اهڙا مسئلا نه هئا، پر هن جو مطلب اهو ناهي ته DNS جي حالت مانيٽر ڪرڻ جي ضرورت ناهي. درخواست جي ويڪرائي ۽ ڪجهه ٻيون ميٽرڪ ٽريڪ ڪري سگھجن ٿيون CoreDNS تي.

داخل ٿيڻ. اهو ضروري آهي ته داخلا جي دستيابي کي ڪنٽرول ڪرڻ (بشمول انگريس ڪنٽرولر) پروجيڪٽ جي داخلا پوائنٽن جي طور تي.

ڪلستر جي مکيه حصن کي ختم ڪيو ويو آهي - هاڻي اچو ته هيٺيون تجريد جي سطح ڏانهن وڃو.

اهو لڳي ٿو ته ايپليڪيشنون پوڊ ۾ هلن ٿيون، جنهن جو مطلب آهي ته انهن کي ڪنٽرول ڪرڻ جي ضرورت آهي، پر حقيقت ۾ اهي نه آهن. پوڊ عارضي آهن: اڄ اهي هڪ سرور تي هلندا آهن، سڀاڻي ٻئي تي؛ اڄ انهن مان 10 آهن، سڀاڻي 2. تنهن ڪري، ڪو به پوڊ جي نگراني نٿو ڪري. هڪ microservice فن تعمير جي اندر، اهو وڌيڪ ضروري آهي ته مڪمل طور تي ايپليڪيشن جي دستيابي کي ڪنٽرول ڪرڻ. خاص طور تي، سروس جي آخري پوائنٽ جي دستيابي جي جانچ ڪريو: ڇا ڪجھ ڪم ڪري ٿو؟ جيڪڏهن اپليڪيشن موجود آهي، ته پوء ان جي پويان ڇا ٿيندو، هاڻي ڪيتريون ئي نقل آهن - اهي ٻئي حڪم جا سوال آهن. انفرادي مثالن جي نگراني ڪرڻ جي ڪا ضرورت ناهي.

آخري سطح تي، توهان کي ايپليڪيشن جي آپريشن کي ڪنٽرول ڪرڻ جي ضرورت آهي، ڪاروباري ميٽرڪ وٺو: آرڊر جو تعداد، صارف جي رويي، وغيره.

Prometheus

ڪلستر جي نگراني لاء بهترين نظام آهي Prometheus. مون کي ڪنهن به اوزار جي خبر ناهي جيڪا معيار ۽ استعمال جي آسانيءَ جي لحاظ کان پروميٿيوس سان ملائي سگهي. اهو لچڪدار انفراسٽرڪچر لاءِ وڏو آهي، تنهن ڪري جڏهن اهي چوندا آهن ”ڪبرنيٽس مانيٽرنگ“، انهن جو مطلب عام طور تي پروميٿيوس آهي.

Prometheus سان شروع ڪرڻ لاءِ ڪجھ آپشن آھن: Helm استعمال ڪندي، توھان انسٽال ڪري سگھوٿا ھڪ باقاعده Prometheus يا Prometheus آپريٽر.

  1. باقاعده Prometheus. هن سان گڏ سڀ ڪجهه ٺيڪ آهي، پر توهان کي ConfigMap ترتيب ڏيڻ جي ضرورت آهي - حقيقت ۾، ٽيڪسٽ تي ٻڌل ڪنفيگريشن فائلون لکو، جيئن اسان اڳ ڪيو، مائڪرو سروس آرڪيٽيڪچر کان اڳ.
  2. Prometheus آپريٽر ٿورڙو وڌيڪ پکڙيل آهي، اندروني منطق جي لحاظ کان ٿورو وڌيڪ پيچيده، پر ان سان ڪم ڪرڻ آسان آهي: اتي الڳ شيون آهن، تجريد ڪلستر ۾ شامل ڪيا ويا آهن، تنهنڪري اهي ڪنٽرول ۽ ترتيب ڏيڻ لاء وڌيڪ آسان آهن.

پراڊڪٽ کي سمجهڻ لاءِ، مان سفارش ڪريان ٿو انسٽال ڪرڻ لاءِ باقاعده Prometheus پهرين. توهان کي هر شي کي ترتيب جي ذريعي ترتيب ڏيڻو پوندو، پر اهو فائدي وارو ٿيندو: توهان کي معلوم ٿيندو ته ڇا سان تعلق رکي ٿو ۽ اهو ڪيئن ترتيب ڏنو ويو آهي. Prometheus آپريٽر ۾، توهان فوري طور تي هڪ تجريد اعلي ڏانهن وڌيو، جيتوڻيڪ جيڪڏهن توهان چاهيو ٿا ته توهان پڻ کوٽائي ۾ ڳولي سگهو ٿا.

Prometheus ڪبرنيٽس سان چڱي طرح ضم ٿيل آهي: اهو API سرور سان رسائي ۽ ان سان رابطو ڪري سگهي ٿو.

Prometheus مشهور آهي، ڇو ته ايپليڪيشنن ۽ پروگرامنگ ٻولين جو هڪ وڏو تعداد ان کي سپورٽ ڪري ٿو. سپورٽ جي ضرورت آهي، ڇو ته پروميٿيوس جو پنهنجو ميٽرڪس فارميٽ آهي، ۽ ان کي منتقل ڪرڻ لاءِ، توهان کي يا ته ايپليڪيشن جي اندر لائبريري يا تيار ٿيل برآمد ڪندڙ جي ضرورت آهي. ۽ اهڙا ڪيترائي برآمد ڪندڙ آهن. مثال طور، اتي آهي PostgreSQL Exporter: اهو PostgreSQL کان ڊيٽا وٺي ٿو ۽ ان کي بدلائي ٿو Prometheus فارميٽ ۾ ته جيئن Prometheus ان سان ڪم ڪري سگهي.

Prometheus فن تعمير

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

Prometheus سرور پوئين پڄاڻي آهي، پروميٿيس جو دماغ. ميٽرڪ هتي محفوظ ۽ پروسيس ٿيل آهن.

ميٽرڪ ٽائيم سيريز ڊيٽابيس (TSDB) ۾ محفوظ ٿيل آهن. TSDB هڪ الڳ ڊيٽابيس نه آهي، پر گو ٻولي ۾ هڪ پيڪيج جيڪو Prometheus ۾ شامل ڪيو ويو آهي. عام طور تي ڳالهائڻ، هر شيء هڪ بائنري ۾ آهي.

ڊگهي وقت تائين TSDB ۾ ڊيٽا ذخيرو نه ڪريو

Prometheus انفراسٽرڪچر ميٽرڪ جي ڊگهي مدت جي اسٽوريج لاء مناسب ناهي. ڊفالٽ برقرار رکڻ جي مدت 15 ڏينهن آهي. توهان هن حد کان وڌي سگهو ٿا، پر ذهن ۾ رکو: جيترو وڌيڪ ڊيٽا توهان TSDB ۾ ذخيرو ڪندا آهيو ۽ جيترو وقت توهان اهو ڪندا آهيو، اوترو وڌيڪ وسيلا استعمال ڪندا. Prometheus ۾ تاريخي ڊيٽا محفوظ ڪرڻ خراب عمل سمجهيو ويندو آهي.

جيڪڏهن توهان وٽ وڏي ٽرئفڪ آهي، ميٽرڪ جو تعداد سئو هزارين في سيڪنڊ آهي، پوء اهو بهتر آهي ته انهن جي اسٽوريج کي ڊسڪ اسپيس يا مدت جي لحاظ سان محدود ڪيو وڃي. عام طور تي، "گرم ڊيٽا" TSDB ۾ ذخيرو ٿيل آهي، صرف چند ڪلاڪن ۾ ميٽرڪس. ڊگھي اسٽوريج لاء، خارجي اسٽوريج انهن ڊيٽابيس ۾ استعمال ڪيو ويندو آهي جيڪي واقعي هن لاء مناسب آهن، مثال طور، InfluxDB، ClickHouse، وغيره. مون ClickHouse بابت وڌيڪ سٺا جائزو ڏٺا.

Prometheus سرور ماڊل تي ڪم ڪري ٿو ڇڪيو: هو ميٽرڪ لاءِ وڃي ٿو انهن آخري پوائنٽن ڏانهن جيڪي اسان هن کي ڏنيون آهن. هنن چيو: ”اي پي آءِ سرور ڏانهن وڃو“، ۽ هو اتي وڃي ٿو هر سيڪنڊ جو نمبر نمبر ۽ ميٽرڪ وٺي ٿو.

شين لاءِ هڪ مختصر زندگي (نوڪري يا ڪرون نوڪري) جيڪي اسڪراپنگ دورن جي وچ ۾ ظاهر ٿي سگهن ٿيون، اتي هڪ Pushgateway جزو آهي. مختصر مدت جي شين مان ميٽرڪ ان ۾ ڌڪيو ويو آهي: نوڪري وڌي وئي آهي، هڪ عمل ڪيو، ميٽرڪ کي Pushgateway ڏانهن موڪليو ۽ مڪمل ڪيو. ٿوري دير کان پوءِ، Prometheus پنهنجي رفتار سان هيٺ لهندو ۽ Pushgateway مان اهي ميٽرڪ کڻندو.

Prometheus ۾ اطلاعن کي ترتيب ڏيڻ لاءِ ھڪڙو الڳ حصو آھي - الرٽ مئنيجر. ۽ خبرداري جا ضابطا. مثال طور، توهان کي هڪ الرٽ ٺاهڻ جي ضرورت آهي جيڪڏهن سرور API 0 آهي. جڏهن واقعو فائر ٿئي ٿو، الرٽ کي الرٽ مئنيجر ڏانهن منتقل ڪيو ويندو آهي وڌيڪ ترسيل لاءِ. الرٽ مئنيجر وٽ ڪافي لچڪدار روٽنگ سيٽنگون آھن: الرٽ جو ھڪڙو گروپ ايڊمن جي ٽيليگرام چيٽ ڏانھن، ٻيو ڊولپرز جي چيٽ ڏانھن، ۽ ٽيون انفراسٽرڪچر ورڪرز جي چيٽ ڏانھن موڪلي سگھجي ٿو. نوٽيفڪيشن موڪلي سگھجن ٿا Slack، ٽيليگرام، اي ميل، ۽ ٻين چينلن تي.

۽ آخرڪار، مان توهان کي پروميٿيس قاتل فيچر بابت ٻڌايان ٿو - ڳولها. جڏهن Prometheus سان ڪم ڪري رهيا آهيو، توهان کي نگراني لاء شين جي مخصوص پتي کي بيان ڪرڻ جي ضرورت ناهي، اهو انهن جي قسم کي ترتيب ڏيڻ لاء ڪافي آهي. اهو آهي، توهان کي لکڻ جي ضرورت ناهي ته "هتي IP پتي آهي، هتي بندرگاهه آهي مانيٽر"، ان جي بدران، توهان کي اهو طئي ڪرڻو پوندو ته انهن شين کي ڳولڻ لاء ڪهڙا اصول (مقصد - مقصد). Prometheus پاڻ، ان تي منحصر ڪري ٿو ته ڪهڙيون شيون هن وقت سرگرم آهن، ضروري شيون ٺاهي ٿو ۽ انهن کي نگراني ۾ شامل ڪري ٿو.

اهو طريقو ڪبرنيٽس جي جوڙجڪ سان چڱيءَ طرح ٺهڪي اچي ٿو، جتي هر شيءِ فلوٽ ٿئي ٿي: اڄ 10 سرور آهن، سڀاڻي 3. هر دفعي سرور جي IP پتي جي وضاحت نه ڪرڻ جي لاءِ، هنن هڪ ڀيرو لکيو ته ان کي ڪيئن ڳولهجي- ۽ دريافت ڪندي. .

Prometheus ٻولي سڏيو ويندو آهي PromQL. هن ٻولي کي استعمال ڪندي، توهان حاصل ڪري سگهو ٿا قدرن جا مخصوص ميٽرڪس ۽ پوءِ انهن کي تبديل ڪري، انهن جي بنياد تي تجزياتي حساب ڪتاب ٺاهي.

https://prometheus.io/docs/prometheus/latest/querying/basics/

Простой запрос

    container_memory_usage_bytes

Математические операции

    container_memory_usage_bytes / 1024 / 1024

Встроенные функции

    sum(container_memory_usage_bytes) / 1024 / 1024

Уточнение запроса

    100 - avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m]) * 100)

Prometheus ويب انٽرفيس

Prometheus جو پنهنجو، انتهائي گهٽ ۾ گهٽ ويب انٽرفيس آهي. صرف ڊيبگ يا مظاهري لاءِ مناسب.

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

ايڪسپريس لائن ۾، توهان PromQL ٻولي ۾ هڪ سوال لکي سگهو ٿا.

انتباہ واري ٽيب ۾ خبرداري جا قاعدا شامل آهن، ۽ انهن جون ٽي حالتون آهن:

  1. غير فعال - جيڪڏهن خبرداري هن وقت فعال نه آهي، اهو آهي، هر شيء ان سان ٺيڪ آهي، ۽ اهو ڪم نه ڪيو؛
  2. Pending - اھو آھي جيڪڏھن خبرداري ڪم ڪيو، پر موڪلڻ اڃا گذريو نه آھي. دير نيٽ ورڪ بلڪنگ جي معاوضي لاءِ مقرر ڪئي وئي آهي: جيڪڏهن مخصوص خدمت هڪ منٽ اندر وڌي وئي آهي، ته پوءِ الارم اڃا نه وڄڻ گهرجي؛
  3. فائرنگ ٽين حيثيت آهي جڏهن الرٽ روشن ٿئي ٿو ۽ پيغام موڪلي ٿو.

اسٽيٽس مينيو ۾ توهان کي معلومات تائين رسائي ملندي ته پروميٿيس ڇا آهي. ھدف (ھدف) جي منتقلي پڻ آھي، جنھن بابت اسان مٿي ڳالھايو آھي.

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

Prometheus انٽرفيس جي وڌيڪ تفصيلي جائزو لاءِ، ڏسو ڪبرنيٽس ڪلستر جي نگراني تي سلرم جي ليڪچر ۾.

Grafana سان انضمام

Prometheus ويب انٽرفيس ۾، توهان کي خوبصورت ۽ سمجھڻ وارا گراف نه ملندا جن مان توهان ڪلستر جي حالت بابت نتيجو ڪڍي سگهو ٿا. انھن کي تعمير ڪرڻ لاء، Prometheus Grafana سان گڏ آھي. اسان کي اهڙا ڊيش بورڊ ملن ٿا.

ڪبرنيٽس ڪلستر جي نگراني: پروميٿيوس جو هڪ جائزو ۽ تعارف

Prometheus ۽ Grafana انضمام کي ترتيب ڏيڻ بلڪل ڏکيو ناهي، توهان دستاويزن ۾ هدايتون ڳولي سگهو ٿا: پروميٿيوس لاءِ گرافانا سپورٽخير، مان هن سان ختم ڪندس.

هيٺين مضمونن ۾، اسان نگراني جي موضوع کي جاري رکنداسين: اسان گرافانا لوڪي ۽ متبادل اوزار استعمال ڪندي لاگ گڏ ڪرڻ ۽ تجزيو ڪرڻ بابت ڳالهائينداسين.

ليکڪ: مارسل ابرايف، تصديق ٿيل ڪبرنيٽس ايڊمنسٽريٽر، ڪمپني ۾ مشق ڪندڙ انجنيئر سائبربر، اسپيڪر ۽ ڪورس ڊولپر Slurm.

جو ذريعو: www.habr.com

تبصرو شامل ڪريو