نظارت د بادل حلونو وده کولو خورا مهم برخه ګرځیدلې ځکه چې د توزیع شوي سیسټمونو پیچلتیا ډیریږي. دا اړینه ده چې د دوی چلند پوه شي. موږ د توزیع وړ وسیلو ته اړتیا لرو چې کولی شي د ټولو خدماتو څخه ډیټا راټول کړي - او متخصصینو ته د فعالیت تحلیل ، غلطۍ ښودلو ، شتون او لاګونو سره یو واحد انٹرفیس چمتو کړي.
دا ورته وسایل باید اغیزمن او ګټور وي. پدې مقاله کې به موږ دوه مشهور ټیکنالوژۍ سټیکونه وګورو: EFK (Elasticsearch) او PLG (Loki) او د دوی جوړښتونه او توپیرونه وڅیړو.
د EFK سټیک
تاسو ممکن دمخه د خورا مشهور ELK یا EFK په اړه اوریدلي وي. سټیک ډیری جلا برخې لري: Elasticsearch (د شیانو ذخیره)، Logstash یا FluentD (د لاګ راټولول او راټولول)، او کیبانا د لید لپاره.
یو عادي کاري جریان داسې ښکاري:
الیسټسیکټ - د لټون او ریښتیني وخت تحلیلونو سره د شیانو ذخیره توزیع شوې. د نیمه جوړ شوي ډیټا لکه لاګونو لپاره عالي حل. معلومات د JSON اسنادو په توګه خوندي شوي، په ریښتیني وخت کې لیست شوي او په کلستر نوډونو کې ویشل شوي. یو بدل شوی شاخص کارول کیږي، د بشپړ متن لټون لپاره ټول ځانګړي ټکي او اړوند اسناد لري، کوم چې په پایله کې د اپاچي لوسین لټون انجن پر بنسټ والړ دی.
روانی د ډیټا راټولونکی دی چې د راټولولو او مصرف کولو پرمهال ډیټا متحد کوي. دا هڅه کوي د امکان تر حده په JSON کې ډاټا تنظیم کړي. د دې جوړښت د توزیع وړ دی، نور هم شتون لري
کببا - د مختلف اضافي وړتیاو سره د Elasticsearch لپاره د ډیټا لید لید وسیله ، د بیلګې په توګه ، د وخت لړۍ تحلیل ، د ګراف تحلیل ، د ماشین زده کړه او نور ډیر څه.
د لچکدار لټون جوړښت
د Elasticsearch کلستر ډاټا د هغې په ټولو نوډونو کې ساتل کیږي. یو کلستر د ډیری نوډونو څخه جوړ دی ترڅو شتون او مقاومت ته وده ورکړي. هر نوډ کولی شي د کلستر ټول رولونه ترسره کړي، مګر په لویه پیمانه ځای پرځای کولو کې، نوډونه عموما انفرادي دندې ګمارل کیږي.
د کلستر نوډ ډولونه:
- ماسټر نوډ - کلستر اداره کوي، لږترلږه درې ته اړتیا ده، یو تل فعال وي؛
- د ډیټا نوډ - شاخص شوي ډاټا ذخیره کوي او د هغې سره مختلف دندې ترسره کوي؛
- د انجسټ نوډ - د شاخص کولو دمخه د معلوماتو بدلولو لپاره پایپ لاینونه تنظیموي؛
- د همغږۍ نوډ - د غوښتنې لارې کول، د لټون پروسس کولو پړاو کمول، د ډله ایز شاخص همغږي کول؛
- د خبرتیا نوډ - د خبرتیا دندې پیل کول؛
- د ماشین زده کړې نوډ - د ماشین زده کړې دندې پروسس کول.
لاندې ډیاګرام ښیې چې څنګه ډیټا ذخیره کیږي او په نوډونو کې تکرار کیږي ترڅو د ډیټا لوړ شتون ترلاسه کړي.
د هر نقل ډاټا په یو بدل شوي شاخص کې زیرمه کیږي، لاندې انځور ښیي چې دا څنګه پیښیږي:
د جوړولو
تفصیلات لیدل کیدی شي
$ helm install efk-stack stable/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics
د PLG سټیک
حیرانتیا مه کوئ که تاسو دا لنډیز ونه مومئ، ځکه چې دا د ګرافانا لوکي په نوم پیژندل کیږي. په هر حالت کې، دا سټیک شهرت ترلاسه کوي ځکه چې دا ثابت تخنیکي حلونه کاروي. تاسو ممکن دمخه د ګرافانا په اړه اوریدلي وي ، د لید لید مشهور وسیله. د دې جوړونکي، د پرومیتیس څخه الهام اخیستونکي، لوکي ته وده ورکړه، په افقی ډول د توزیع وړ، د لوړ فعالیت د log مجموعه سیسټم. لوکي یوازې میټاډاټا شاخص کوي ، نه پخپله ژورنالونه ، یو تخنیکي حل چې دا اجازه ورکوي کارول اسانه او ارزانه وي.
Promtail - د عملیاتي سیسټم څخه لوکي کلستر ته د لاګونو لیږلو لپاره اجنټ. ګرافانا د لوکي څخه د معلوماتو پراساس د لید لید وسیله ده.
لوکي د پرومیټیوس په څیر ورته اصولو باندې جوړ شوی، دا د کوبرنیټس لاګونو ذخیره کولو او تحلیل کولو لپاره مناسب دی.
د لوکي معمارۍ
لوکي یا هم د یوې پروسې یا څو پروسو په توګه پرمخ وړل کیدی شي، د افقی اندازه کولو لپاره اجازه ورکوي.
دا کولی شي د یو واحد غوښتنلیک یا د مایکرو خدمت په توګه هم کار وکړي. د یوې واحدې پروسې په توګه چلول کیدای شي د محلي پراختیا یا لږې څارنې لپاره ګټور وي. د صنعتي پلي کولو او د توزیع وړ کاري بار لپاره ، دا سپارښتنه کیږي چې د مایکرو سرویس اختیار وکاروئ. د معلوماتو د لیکلو او لوستلو لارې جلا شوي، نو دا د اړتیا سره سم په سمه توګه تنظیم او اندازه کیدی شي.
راځئ چې د لاګ راټولولو سیسټم جوړښت ته وګورو پرته له دې چې تفصیل ته لاړ شو:
او دلته توضیحات دی (د مایکرو سرویس جوړښت):
اجزا:
Promtail - یو اجنټ په نوډونو کې نصب شوی (د خدماتو د یوې سیټ په توګه)، دا له دندو څخه لاګونه لیرې کوي او د میټاډاټا ترلاسه کولو لپاره کوبرنیټس API ته لاسرسی لري چې لاګونه به ټاګ کړي. بیا دا لاګ اصلي لوکي خدمت ته لیږي. د میټاډاټا نقشه کول د پرومیټیوس په څیر ورته ټیګ کولو قواعد ملاتړ کوي.
ویشونکی- - د خدماتو توزیع کونکی چې د بفر په توګه کار کوي. د ملیونونو ریکارډونو پروسس کولو لپاره ، دا راتلونکی ډیټا بسته کوي ، دا په بلاکونو کې فشاروي کله چې راشي. ډیری ډیټا سینکونه په ورته وخت کې پرمخ ځي، مګر د یوې راتلونکی ډیټا جریان پورې تړلې لاګونه باید یوازې د دې ټولو بلاکونو لپاره یوازې په یوه کې څرګند شي. دا د سینکونو په حلقه کې تنظیم شوی او ترتیب شوي هشنګ. د غلطۍ زغم او بې ځایه کیدو لپاره، دا n ځله ترسره کیږي (3 که تنظیم شوی نه وي).
Ingester - د خدمت اخیستونکی. د ډیټا بلاکونه د لاګونو اضافه کولو سره فشار شوي راځي. کله چې بلاک کافي اندازه وي، بلاک ډیټابیس ته فلش کیږي. میټاډاټا شاخص ته ځي، او د لاګ بلاک څخه ډاټا چنکس ته ځي (معمولا د اعتراض ذخیره کول). د بیا تنظیم کولو وروسته، ترلاسه کونکی یو نوی بلاک رامینځته کوي چیرې چې نوي ننوتل به اضافه شي.
ډېرځليزې - ډیټابیس، DynamoDB، Cassandra، Google BigTable، او داسې نور.
ټوټې - په کمپریس شوي شکل کې د ننوتلو بلاکونه، معمولا د اعتراض ذخیره کې ساتل کیږي، د بیلګې په توګه، S3.
سوالګر - د لوستلو لاره چې ټول ناپاک کار کوي. دا د وخت حد او مهال ویش ته ګوري، او بیا د میچونو موندلو لپاره شاخص ته ګوري. بیا، دا د معلوماتو بلاکونه لولي او د پایلې ترلاسه کولو لپاره یې فلټر کوي.
اوس راځئ چې هرڅه په عمل کې وګورو.
د جوړولو
په Kubernetes کې د نصب کولو ترټولو اسانه لاره د هیلم کارول دي. موږ فرض کوو چې تاسو لا دمخه نصب او تنظیم کړی دی (
یو ذخیره اضافه کړئ او یو سټیک نصب کړئ.
$ helm repo add loki https://grafana.github.io/loki/charts
$ helm repo update
$ helm upgrade --install loki loki/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false
لاندې د مثال ډشبورډ دی چې د Etcd میټریکونو لپاره د پرومیټیوس او لوکي د Etcd پوډ لاګونو لپاره ډیټا ښیې.
اوس راځئ چې د دواړو سیسټمونو جوړښت په اړه بحث وکړو، او همدارنګه د دوی وړتیاوې یو له بل سره پرتله کړو.
پرتله کول
د پوښتنې ژبه
Elasticsearch د بشپړ متن لټون وړتیاوې چمتو کولو لپاره د پوښتنې DSL او Lucene پوښتنې ژبه کاروي. دا یو تاسیس شوی، پیاوړی د لټون انجن دی چې د پراخ آپریټر مالتړ سره. د دې سره، تاسو کولی شئ د شرایطو له مخې لټون وکړئ او د تړاو له مخې ترتیب کړئ.
د حلقې په بل اړخ کې LogQL دی، په لوکي کې کارول کیږي، د PromQL (د پرومیټیوس پوښتنې ژبه) ځای ناستی. دا د لاګ ډیټا فلټر کولو او غوره کولو لپاره د لاګ ټګونه کاروي. دا ممکنه ده چې ځینې چلونکي او ریاضي وکاروئ لکه څنګه چې تشریح شوي
څرنګه چې په لوکي کې پوښتنې د ټګونو سره تړلې دي، دوی د میټریکونو سره تړاو لري، او د پایلې په توګه، دوی د عملیاتي څارنې تنظیم کول اسانه دي.
د توزیع وړتیا
دواړه سټیکونه په افقی ډول د توزیع وړ دي ، مګر لوکي دا اسانه کوي ځکه چې دا د لوستلو او لیکلو جلا لارې او د مایکرو سرویس جوړښت لري. لوکي ستاسو د اړتیاو سره سم تنظیم کیدی شي او د لاګ ډیټا خورا لوی مقدار لپاره کارول کیدی شي.
څو اړخیزه
کلستر ملټي ټیننسی د OPEX په لنډیز کې یو عام موضوع ده، دواړه سټیکونه ملټي ټیننسی چمتو کوي. د Elasticsearch لپاره ډیری شتون لري
د لګښت
لوکي د دې حقیقت له امله خورا ارزانه دی چې دا د معلوماتو شاخص نه کوي ، یوازې میټاډاټا. دا لاسته راوړي
پایلې
د EFK سټیک د مختلف اهدافو لپاره کارول کیدی شي ، د تحلیلونو ، لید او پوښتنو لپاره اعظمي انعطاف او بډایه کبانا انٹرفیس چمتو کوي. دا د ماشین زده کړې وړتیاو لخوا نور هم وده کولی شي.
د لوکي سټیک د دې د میټاډاټا کشف میکانیزم له امله د کبرنیټس ایکوسیستم کې ګټور دی. تاسو کولی شئ په اسانۍ سره په ګرافانا او لاګونو کې د وخت لړۍ پراساس د څارنې لپاره ډاټا سره اړیکه ونیسئ.
کله چې دا د لګښت او اوږدې مودې لاګ ذخیره کولو خبره راځي ، لوکي د بادل حلونو کې د ننوتلو عالي نقطه ده.
په بازار کې ډیر بدیلونه شتون لري - ځینې ممکن ستاسو لپاره غوره وي. د مثال په توګه، GKE د Stackdriver ادغام لري چې د څارنې عالي حل وړاندې کوي. موږ دوی په دې مقاله کې زموږ په تحلیل کې شامل نه کړل.
سرچینې:
https://github.com/grafana/loki/blob/master/docs/overview/comparisons.md https://www.elastic.co/blog/found-elasticsearch-from-the-bottom-up https://www.elastic.co/blog/found-elasticsearch-in-production/
مقاله د حبر لپاره د کارمندانو لخوا ژباړل شوې او چمتو شوې
سرچینه: www.habr.com