د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

راځئ چې د Kubernetes څارنې مفهوم وګورو، د Prometheus وسیلې سره آشنا شو، او د خبرتیا په اړه وغږیږو.

د څارنې موضوع پراخه ده؛ دا په یوه مقاله کې نشي پوښل کیدی. د دې متن موخه دا ده چې د وسایلو، مفکورو، او طریقو یوه عمومي کتنه وړاندې کړي.

د مقالې محتويات له دې څخه راوتلي دي د ښوونځي پرانیستې لیکچر "Slurm". که تاسو غواړئ بشپړ روزنه ترلاسه کړئ، د کورس لپاره لاسلیک وکړئ په Kubernetes کې د زیربنا نظارت او ننوتل.

د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

هغه څه چې د Kubernetes په کلستر کې څارل کیږي

د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

فزیکي سرورونه. که چیرې د Kubernetes کلستر په خپلو سرورونو کې ځای په ځای شوی وي، تاسو اړتیا لرئ د دوی روغتیا څارنه وکړئ. زبیکس دا دنده ترسره کوي؛ که تاسو د هغه سره کار کوئ، نو بیا انکار کولو ته اړتیا نشته، هیڅ شخړه به نه وي. دا زبیکس دی چې زموږ د سرورونو حالت څاري.

راځئ چې د کلستر په کچه نظارت ته لاړ شو.

د کنټرول الوتکې برخې: API، مهالویش کونکی او نور. لږترلږه، تاسو اړتیا لرئ چې څارنه وکړئ چې د سرور API یا etcd د 0 څخه ډیر دی. Etcd کولی شي ډیری میټریکونه چمتو کړي: په هغه ډیسکونو کې چې دا یې سپن کوي، د هغې د etcd کلستر روغتیا، او نور.

ډاکر ډیر وخت دمخه څرګند شوی او هرڅوک د دې ستونزو څخه ښه پوهیږي: ډیری کانټینرونه د کنګل کیدو او نورو ستونزو لامل کیږي. له همدې امله، ډاکر پخپله، د یو سیسټم په توګه، هم باید څارنه وشي، لږترلږه د شتون لپاره.

dns. که DNS په کلستر کې ناکام شي ، نو د کشف ټول خدمت به هم ناکام شي ، او له پوډونو څخه پوډونو ته زنګونه به کار ودروي. زما په عمل کې، داسې ستونزې شتون نلري، مګر دا پدې معنی نه ده چې د DNS وضعیت څارلو ته اړتیا نلري. د ځنډ غوښتنه او ځینې نور میټریکونه په CoreDNS کې تعقیب کیدی شي.

ننوتل. دا اړینه ده چې پروژې ته د ننوتلو نقطو په توګه د ننوتلو شتون (د انګریس کنټرولر په شمول) کنټرول کړئ.

د کلستر اصلي برخې جلا شوي - اوس راځئ چې ښکته لاړ شو، د خلاصون کچې ته.

داسې ښکاري چې غوښتنلیکونه په پوډونو کې ځي، پدې معنی چې دوی باید کنټرول شي، مګر په حقیقت کې دوی نه کوي. پوډونه لنډمهاله دي: نن دوی په یو سرور کار کوي، سبا په بل. نن د دوی څخه 10 دي، سبا 2. له همدې امله هیڅوک د پوډونو څارنه نه کوي. د مایکرو سرویس معمارۍ کې ، دا خورا مهم دي چې په بشپړ ډول د غوښتنلیک شتون کنټرول کړئ. په ځانګړې توګه، د خدماتو پای ټکي شتون وګورئ: ایا کوم څه کار کوي؟ که غوښتنلیک شتون ولري، نو د هغې تر شا څه پیښیږي، اوس څومره نقلونه شتون لري - دا د دویمې درجې پوښتنې دي. د انفرادي مواردو څارلو ته اړتیا نشته.

په وروستي کچه، تاسو اړتیا لرئ چې پخپله د غوښتنلیک عملیات وڅیړئ، د سوداګرۍ میټریکونه واخلئ: د امرونو شمیر، د کاروونکي چلند، او نور.

Prometheus

د کلستر د څارنې لپاره غوره سیسټم دی Prometheus. زه د هیڅ داسې وسیلې په اړه نه پوهیږم چې د کیفیت او کارولو اسانتیا له مخې د پرومیټیوس سره پرتله کولی شي. دا د چټک زیربنا لپاره خورا ښه دی، نو کله چې خلک وايي "کوبرنیټس څارنه" دوی معمولا د پرومیتیوس معنی لري.

د پرومیتیوس سره د پیل کولو لپاره یو څو اختیارونه شتون لري: د هیلم په کارولو سره ، تاسو کولی شئ منظم پرومیتیوس یا پرومیتیس آپریټر نصب کړئ.

  1. منظم Prometheus. هرڅه د دې سره سم دي ، مګر تاسو اړتیا لرئ د ConfigMap تنظیم کړئ - په لازمي ډول ، د متن ترتیب کولو فایلونه ولیکئ ، لکه څنګه چې موږ دمخه د مایکروسافټ معمارۍ دمخه ترسره کړي.
  2. د پرومیتیس آپریټر یو څه ډیر پراخه دی ، په خپل داخلي منطق کې یو څه ډیر پیچلی دی ، مګر د دې سره کار کول اسانه دي: دلته جلا توکي شتون لري ، خلاصې کلستر ته اضافه شوي ، نو دوی د کنټرول او تنظیم کولو لپاره خورا اسانه دي.

د محصول پوهیدو لپاره ، زه وړاندیز کوم چې لومړی منظم پرومیټیوس نصب کړئ. تاسو باید د تشکیل له لارې هرڅه تنظیم کړئ ، مګر دا به ګټور وي: تاسو به پوه شئ چې څه شی پورې اړه لري او دا څنګه تنظیم شوی. په Prometheus Operator کې، تاسو سمدلاسه لوړ خلاصون ته ورشئ، که څه هم که تاسو وغواړئ، تاسو کولی شئ ژورو ته هم ورسوئ.

Prometheus د Kubernetes سره ښه مدغم دی: دا کولی شي د API سرور سره لاسرسی او تعامل وکړي.

Prometheus مشهور دی او د ډیری غوښتنلیکونو او برنامه کولو ژبو لخوا ملاتړ کیږي. ملاتړ ته اړتیا ده ځکه چې پرومیټیوس خپل میټریک فارمیټ لري، او د دې لیږدولو لپاره تاسو یا د غوښتنلیک دننه کتابتون یا چمتو شوي صادرونکي ته اړتیا لرئ. او دلته ډیر داسې صادرونکي شتون لري. د مثال په توګه، د PostgreSQL صادرونکی شتون لري: دا د PostgreSQL څخه ډاټا اخلي او د Prometheus بڼه کې یې بدلوي ترڅو Prometheus ورسره کار وکړي.

د پرومیتیوس معمارۍ

د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

پرومیتیوس سرور - دا د سرور برخه ده، د پرومیتیوس دماغ. دا هغه ځای دی چې میټریکونه زیرمه شوي او پروسس کیږي.

میټریکونه د وخت لړۍ ډیټابیس (TSDB) کې زیرمه شوي. TSDB یو جلا ډیټابیس ندی، مګر د Go کڅوړه چې په پرومیتیوس کې جوړه شوې ده. په لنډه توګه خبرې کول، هرڅه په یوه بائنری کې دي.

د اوږدې مودې لپاره په TSDB کې ډاټا مه ذخیره کوئ

د Prometheus زیربنا د میټریکونو د اوږدې مودې ذخیره کولو لپاره مناسبه نه ده. د ډیفالټ ذخیره کولو موده 15 ورځې ده. تاسو کولی شئ له دې حد څخه تیر شئ، مګر په یاد ولرئ: څومره چې تاسو په TSDB کې ډیر معلومات ذخیره کوئ او څومره چې تاسو دا کار کوئ، ډیرې سرچینې به یې مصرف کړي. په Prometheus کې د تاریخي معلوماتو ذخیره کول بد عمل ګڼل کیږي.

که تاسو لوی ټرافیک لرئ، د میټریکونو شمیر په هره ثانیه کې په سلګونو زرو کې وي، نو دا به غوره وي چې د ډیسک ځای یا دوره کې د دوی ذخیره محدود کړئ. عموما، TSDB "ګرم ډیټا" ذخیره کوي، میټریک په لفظي ډول د څو ساعتونو لپاره. د اوږدې مودې ذخیره کولو لپاره، بهرنۍ ذخیره په هغو ډیټابیسونو کې کارول کیږي چې واقعیا د دې لپاره مناسب دي، د بیلګې په توګه InfluxDB، ClickHouse، او داسې نور. ما د ClickHouse په اړه نور ښه بیاکتنې ولیدلې.

د پرومیټیوس سرور د ماډل سره سم کار کوي کشول: هغه پخپله د میټریک لپاره پای ټکي ته ځي چې موږ ورته ورکړ. دوی وویل: "د API سرور ته لاړ شئ،" او دا د ثانیو په هر نمبر کې ځي او میټریکونه اخلي.

د لنډ عمر لرونکي شیانو لپاره (دنده یا کرون دنده) چې ممکن د سکریپینګ دورې ترمینځ څرګند شي ، د پش ګیټ وے برخه شتون لري. د لنډ مهاله شیانو څخه میټریکونه پدې کې اچول کیږي: دنده راپورته شوه ، عمل بشپړ شو ، میټریکونه Pushgateway ته واستول او بشپړ شول. یو څه وخت وروسته ، پرومیټیوس به په خپل سرعت سره لاړ شي او دا میټریکونه به له Pushgateway څخه واخلي.

په Prometheus کې د خبرتیاو تنظیم کولو لپاره یو جلا برخه شتون لري - د خبرتیا مدیر. او د خبرتیا قواعد. د مثال په توګه، تاسو اړتیا لرئ یو خبرتیا رامینځته کړئ که چیرې د سرور API 0 وي. کله چې پیښه پیل شي، خبرتیا د نور لیږلو لپاره د خبرتیا مدیر ته لیږدول کیږي. د خبرتیا مدیر خورا انعطاف منونکي روټینګ تنظیمات لري: د خبرتیاو یوه ډله د مدیرانو ټیلیګرام چیٹ ته ، بله د پراختیا کونکو خبرو ته ، او دریمه د زیربنا کارمندانو خبرو ته لیږل کیدی شي. خبرتیاوې سلیک، ټیلیګرام، بریښنالیک او نورو چینلونو ته لیږل کیدی شي.

او په نهایت کې ، زه به تاسو ته د پرومیټیوس وژونکي ځانګړتیا په اړه ووایم - کشف کول. کله چې د Prometheus سره کار کوئ، تاسو اړتیا نلرئ د څارنې لپاره د شیانو ځانګړي پتې مشخص کړئ؛ دا د دوی ډول مشخص کولو لپاره کافي دی. دا دی، د لیکلو اړتیا نشته "دلته د IP پته ده، دلته بندر دی - مانیټر"، پرځای یې تاسو اړتیا لرئ د دې شیانو موندلو لپاره د کومو اصولو په واسطه وټاکئ (اهداف - اهداف). پرومیټیوس پخپله ، پدې پورې اړه لري چې کوم شیان اوس مهال فعال دي ، اړین توکي راوباسي او نظارت ته یې اضافه کوي.

دا طریقه د Kubernetes جوړښت سره ښه مناسبه ده، چیرته چې هر څه هم تیریږي: نن 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. پاتې - دا هغه وخت دی چې خبرتیا پیل شوې وه، مګر لیږل لاهم ندي ترسره شوي. ځنډ د شبکې ړنګولو لپاره د خساره ورکولو لپاره ټاکل شوی: که چیرې ټاکل شوی خدمت په یوه دقیقه کې لوړ شوی وي، نو بیا د الارم غږولو ته اړتیا نشته؛
  3. ډزې دریم حالت دی، کله چې خبرتیا روښانه شي او پیغامونه واستوي.

د وضعیت مینو کې به تاسو د پرومیټیوس څه شی په اړه معلوماتو ته لاسرسی ومومئ. د اهدافو لپاره یو لیږد هم شتون لري چې موږ یې پورته خبرې وکړې.

د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

د Prometheus انٹرفیس د لا زیاتو مفصلو کتنو لپاره، وګورئ د Kubernetes کلستر د څارنې په اړه د سلرم په لیکچر کې.

د ګرافانا سره یوځای کول

د پرومیټیوس ویب انٹرفیس کې به تاسو ښکلي او د پوهیدو وړ ګرافونه ونه مومئ چې له هغې څخه تاسو د کلستر حالت په اړه پایلې ترلاسه کولی شئ. د دوی د جوړولو لپاره، پرومیټیوس د ګرافانا سره یوځای کیږي. دا هغه ډشبورډونه دي چې موږ یې ترلاسه کوو.

د کوبرنیټس کلستر څارنه: د پرومیتیس ته یوه کتنه او پیژندنه

د Prometheus او Grafana د ادغام تنظیم کول ستونزمن ندي؛ لارښوونې په اسنادو کې موندل کیدی شي: د پرومیټیوس لپاره د ګرافانا ملاتړښه، زه به دا پای ته ورسوم.

په لاندې مقالو کې به موږ د څارنې موضوع ته دوام ورکړو: موږ به د ګرافانا لوکي او بدیل وسیلو په کارولو سره د لاګونو راټولولو او تحلیل په اړه وغږیږو.

لیکوال: مارسیل ابرایف، د کبرنیټ تصدیق شوی مدیر، په شرکت کې انجنیر تمرین کوي ساوتریج، سپیکر او د سلرم کورس جوړونکی.

سرچینه: www.habr.com

Add a comment