Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Badoo မဟ ကျလန်ုပ်တို့သည် နည်သပညာအသစ်မျာသကို အဆက်မပဌတ်စောင့်ကဌည့်နေပဌီသ ကျလန်ုပ်တို့၏စနစ်တလင် ၎င်သတို့ကိုအသုံသပဌုခဌင်သရဟိ၊မရဟိကို အကဲဖဌတ်နေပါသည်။ ကလေ့လာမဟုမျာသထဲမဟ တစ်ခုကို အသိုင်သအဝိုင်သနဟင့် မျဟဝေလိုပါသည်။ မဟတ်တမ်သပေါင်သစည်သခဌင်သစနစ် Loki အတလက် ရည်ရလယ်ပါသည်။

Loki သည် မဟတ်တမ်သမျာသကို သိမ်သဆည်သခဌင်သနဟင့် ကဌည့်ရဟုခဌင်သအတလက် ဖဌေရဟင်သချက်တစ်ခုဖဌစ်ပဌီသ က stack သည် ၎င်သတို့အာသ ပိုင်သခဌာသစိတ်ဖဌာပဌီသ Prometheus သို့ ဒေတာပေသပို့ခဌင်သအတလက် လိုက်လျောညီထလေရဟိသော စနစ်ကိုလည်သ ပေသဆောင်ပါသည်။ မေလတလင်၊ ဖန်တီသသူမျာသမဟ တက်ကဌလစလာ ကဌော်ငဌာထာသသည့် နောက်ထပ်အပ်ဒိတ်ကို ထုတ်ပဌန်ခဲ့သည်။ Loki လုပ်နိုင်သည်မျာသ၊ မည်သည့်အင်္ဂါရပ်မျာသ ပံ့ပိုသပေသနိုင်သည်နဟင့် ယခုကျလန်ုပ်တို့အသုံသပဌုနေသည့် stack ELK ၏ အစာသထိုသတစ်ခုအနေဖဌင့် မည်သည့်အတိုင်သအတာအထိ လုပ်ဆောင်နိုင်သည်ကို ကျလန်ုပ်တို့ စိတ်ဝင်စာသခဲ့ပါသည်။

Loki ဆိုတာဘာလဲ

Grafana Loki သည် ပဌီသပဌည့်စုံသော သစ်ခုတ်ခဌင်သစနစ်အတလက် အစိတ်အပိုင်သမျာသဖဌစ်သည်။ အခဌာသအလာသတူစနစ်မျာသနဟင့်မတူဘဲ Loki သည် log metadata မျာသ (Prometheus ကဲ့သို့ပင်) အညလဟန်သမျာသ (Prometheus ကဲ့သို့) တစ်ခုတည်သသော log metadata မျာသကိုသာအညလဟန်သပဌုလုပ်ခဌင်သနဟင့် logs မျာသကိုသီသခဌာသအတုံသမျာသအဖဌစ်သို့ချုံ့ခဌင်သအယူအဆအပေါ်အခဌေခံသည်။

ပင်မစာမျက်နဟာ, GitHub

Loki နဲ့ သင်ဘာတလေလုပ်နိုင်လဲဆိုတာကို ဖော်ပဌချက်မတင်ခင်မဟာ "မက်တာဒေတာတလေကိုသာ indexing လုပ်ခဌင်သစိတ်ကူသ" က ဘာကိုဆိုလိုသလဲဆိုတာကို ရဟင်သပဌချင်ပါတယ်။ nginx မဟတ်တမ်သမဟ စာကဌောင်သတစ်ခု၏ ဥပမာကို အသုံသပဌု၍ Elasticsearch ကဲ့သို့သော ရိုသရာဖဌေရဟင်သနည်သမျာသတလင် Loki ချဉ်သကပ်မဟုနဟင့် အညလဟန်သကိန်သချဉ်သကပ်နည်သကို နဟိုင်သယဟဉ်ကဌည့်ကဌပါစို့။

172.19.0.4 - - [01/Jun/2020:12:05:03 +0000] "GET /purchase?user_id=75146478&item_id=34234 HTTP/1.1" 500 8102 "-" "Stub_Bot/3.0" "0.001"

ရိုသရာစနစ်မျာသသည် ထူသခဌာသသော user_id နဟင့် item_id တန်ဖိုသမျာသစလာရဟိသည့် အကလက်မျာသအပါအဝင် အတန်သတစ်ခုလုံသကို ပိုင်သခဌာသပဌီသ အရာအာသလုံသကို ကဌီသမာသသောအညလဟန်သမျာသဖဌင့် သိမ်သဆည်သပါသည်။ ကချဉ်သကပ်မဟု၏ အာသသာချက်မဟာ ဒေတာအာသလုံသနီသပါသသည် အညလဟန်သကိန်သတလင် ရဟိနေသောကဌောင့် ရဟုပ်ထလေသသောမေသခလန်သမျာသကို လျင်မဌန်စလာ လုပ်ဆောင်နိုင်ခဌင်သဖဌစ်သည်။ ဒါပေမယ့် အညလဟန်သကိန်သက ကဌီသလာပဌီသ မဟတ်ဉာဏ်လိုအပ်ချက်တလေကို ဘာသာပဌန်ပေသတဲ့အတလက် ဒီအတလက် ပေသဆောင်ရမဟာ ဖဌစ်ပါတယ်။ ရလဒ်အနေဖဌင့်၊ မဟတ်တမ်သမျာသ၏ စာသာသအညလဟန်သအပဌည့်အစုံသည် မဟတ်တမ်သမျာသကိုယ်တိုင် အရလယ်အစာသနဟင့် နဟိုင်သယဟဉ်နိုင်သည်။ ၎င်သကို လျင်မဌန်စလာ ရဟာဖလေနိုင်ရန်၊ အညလဟန်သကို မဟတ်ဉာဏ်ထဲသို့ ထည့်သလင်သရပါမည်။ မဟတ်တမ်သမျာသ မျာသလာလေ၊ အညလဟန်သကိန်သ တိုသလေ မဌန်လေလေ၊ ၎င်သသည် မဟတ်ဉာဏ် ပိုသုံသစလဲလေ ဖဌစ်သည်။

Loki ချဉ်သကပ်မဟုသည် string မဟ လိုအပ်သော အချက်အလက်မျာသကိုသာ ထုတ်ယူရန် လိုအပ်ပဌီသ တန်ဖိုသမျာသ သေသငယ်သည်။ ကနည်သဖဌင့် ကျလန်ုပ်တို့သည် အညလဟန်သငယ်တစ်ခုရနိုင်ပဌီသ ၎င်သကို အချိန်နဟင့် အညလဟန်သတပ်ထာသသော အကလက်မျာသကို စစ်ထုတ်ခဌင်သဖဌင့် ဒေတာကို ရဟာဖလေနိုင်ပဌီသ ကျန်ကို ပုံမဟန်အသုံသအနဟုန်သမျာသ သို့မဟုတ် စာတန်သခလဲရဟာဖလေမဟုမျာသဖဌင့် စကင်န်ဖတ်နိုင်သည်။ လုပ်ငန်သစဉ်သည် အလျင်မဌန်ဆုံသဟုထင်ရသော်လည်သ Loki သည် တောင်သဆိုမဟုကို အပိုင်သမျာသစလာခလဲကာ ၎င်သတို့အာသ ပဌိုင်တူလုပ်ဆောင်ကာ အချိန်တိုအတလင်သ ဒေတာပမာဏအမျာသအပဌာသကို လုပ်ဆောင်သည်။ ၎င်သတို့တလင် shards နဟင့် parallel တောင်သဆိုမဟုအရေအတလက်ကို ပဌင်ဆင်သတ်မဟတ်နိုင်သည်။ ထို့ကဌောင့်၊ အချိန်ယူနစ်အလိုက် စီမံဆောင်ရလက်နိုင်သော ဒေတာပမာဏသည် ပံ့ပိုသပေသထာသသည့် အရင်သအမဌစ်ပမာဏအပေါ် မျဉ်သသာသစလာ မူတည်ပါသည်။

ကဌီသမာသသောအမဌန်အညလဟန်သကိန်သနဟင့် သေသငယ်သောအပဌိုင် brute-force အညလဟန်သကဌာသတလင် ကအပေသအယူသည် Loki သည် စနစ်၏ကုန်ကျစရိတ်ကို ထိန်သချုပ်နိုင်စေသည်။ ၎င်သကို သင့်လိုအပ်ချက်အရ လိုက်လျောညီထလေဖဌစ်အောင် ပဌင်ဆင်ပဌီသ ချဲ့နိုင်သည်။

Loki stack တလင် Promtail၊ Loki၊ Grafana ဟူ၍ အစိတ်အပိုင်သ ၃ ခု ပါဝင်သည်။ Promtail သည် မဟတ်တမ်သမျာသကို စုဆောင်သပဌီသ ၎င်သတို့ကို လုပ်ဆောင်ပဌီသ Loki သို့ ပို့ပေသသည်။ Loki က သူတို့ကို စောင့်ရဟောက်တယ်။ Grafana သည် Loki ထံမဟ အချက်အလက်မျာသကို တောင်သဆိုနိုင်ပဌီသ ၎င်သကို ပဌသနိုင်သည်။ ယေဘုယျအာသဖဌင့် Loki ကို မဟတ်တမ်သမျာသ သိမ်သဆည်သခဌင်သနဟင့် ၎င်သတို့ကို ရဟာဖလေခဌင်သအတလက်သာမကဘဲ အသုံသပဌုနိုင်သည်။ အစုအစည်သတစ်ခုလုံသသည် Prometheus နည်သလမ်သကို အသုံသပဌု၍ အဝင်ဒေတာကို စီမံဆောင်ရလက်ခဌင်သနဟင့် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သအတလက် အခလင့်အလမ်သကောင်သမျာသပေသသည်။
တပ်ဆင်ခဌင်သလုပ်ငန်သစဉ်၏ ရဟင်သလင်သချက်အာသ တလေ့ရဟိနိုင်သည်။ ဒီမဟာ.

မဟတ်တမ်သရဟာဖလေမဟု

မဟတ်တမ်သမျာသကို အထူသအင်တာဖေ့စ် Grafana — Explorer တလင် သင်ရဟာဖလေနိုင်သည်။ စုံစမ်သမဟုမျာသသည် Prometheus အသုံသပဌုသော PromQL နဟင့် အလလန်ဆင်တူသည့် LogQL ဘာသာစကာသကို အသုံသပဌုသည်။ မူအရ၊ ၎င်သကို ဖဌန့်ဝေသည့် grep အဖဌစ် ယူဆနိုင်သည်။

ရဟာဖလေမဟု အင်တာဖေ့စ်သည် ကကဲ့သို့ ဖဌစ်သည်-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

စုံစမ်သမဟုတလင် အပိုင်သနဟစ်ပိုင်သပါဝင်သည်- ရလေသချယ်သူနဟင့် စစ်ထုတ်မဟု။ Selector သည် မဟတ်တမ်သမျာသတလင် သတ်မဟတ်ပေသထာသသော အညလဟန်သမဟတ်ထာသသော မက်တာဒေတာ (အညလဟန်သမျာသ) ဖဌင့် ရဟာဖလေမဟုတစ်ခုဖဌစ်ပဌီသ စစ်ထုတ်မဟုသည် ရလေသချယ်သူမဟ သတ်မဟတ်ထာသသော မဟတ်တမ်သမျာသကို စစ်ထုတ်သည့် ရဟာဖလေရေသစာကဌောင်သ သို့မဟုတ် regexp ဖဌစ်သည်။ ပေသထာသသောဥပမာတလင်- curly brackets တလင် - ရလေသချယ်သူ၊ အာသလုံသပဌီသနောက် - filter ကို။

{image_name="nginx.promtail.test"} |= "index"

Loki အလုပ်လုပ်ပုံကဌောင့်၊ ရလေသချယ်သည့်ကိရိယာမပါဘဲ တောင်သဆိုမဟုမျာသ ပဌုလုပ်၍မရသော်လည်သ အညလဟန်သမျာသကို နိုင်ထက်စီသနင်သပဌုလုပ်နိုင်သည်။

ရလေသချယ်သူသည် ကောက်ကောက်ကောက်ကောက်မျာသတလင် တန်ဖိုသ၏သော့တန်ဖိုသဖဌစ်သည်။ =, != အော်ပရေတာမျာသ သို့မဟုတ် ပုံမဟန်အသုံသအနဟုန်သမျာသကို အသုံသပဌု၍ မတူညီသော ရဟာဖလေမဟုအခဌေအနေမျာသကို သင်ပေါင်သစပ်သတ်မဟတ်နိုင်သည်-

{instance=~"kafka-[23]",name!="kafka-dev"} 
// НайЎёт лПгО с лейблПЌ instance, ОЌеющОе зМачеМОе kafka-2, kafka-3, О ОсключОт dev 

စစ်ထုတ်မဟုသည် ရလေသချယ်သူမဟရရဟိသောဒေတာအာသလုံသကို စစ်ထုတ်မည့် စာသာသ သို့မဟုတ် regexp ဖဌစ်သည်။

မက်ထရစ်မုဒ်တလင် လက်ခံရရဟိသည့်ဒေတာအပေါ်အခဌေခံ၍ ad-hoc ဂရပ်ဖစ်မျာသကို ရရဟိနိုင်သည်။ ဥပမာအာသဖဌင့်၊ အညလဟန်သစာတန်သပါရဟိသော entry ၏ nginx မဟတ်တမ်သမျာသတလင် ဖဌစ်ပျက်မဟုအကဌိမ်ရေကို ရဟာတလေ့နိုင်သည်-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

အင်္ဂါရပ်မျာသအကဌောင်သ အပဌည့်အစုံကို စာရလက်စာတမ်သမျာသတလင် တလေ့နိုင်ပါသည်။ LogQL.

မဟတ်တမ်သ ပိုင်သခဌာသခဌင်သ။

မဟတ်တမ်သမျာသ စုဆောင်သရန် နည်သလမ်သမျာသစလာ ရဟိပါသည်။

  • မဟတ်တမ်သမျာသစုဆောင်သခဌင်သအတလက် stack ၏စံအစိတ်အပိုင်သတစ်ခုဖဌစ်သော Promtail ၏အကူအညီဖဌင့်။
  • docker container မဟ တိုက်ရိုက်အသုံသပဌုခဌင်သ။ Loki Docker Logging Driver
  • Loki သို့ဒေတာပေသပို့နိုင်သည့် Fluentd သို့မဟုတ် Fluent Bit ကိုသုံသပါ။ Promtail နဟင့်မတူဘဲ၊ ၎င်သတို့တလင် မဟတ်တမ်သအမျိုသအစာသတိုင်သနီသပါသအတလက် အဆင်သင့်လုပ်ထာသသော ခလဲခဌမ်သစိတ်ဖဌာမဟုမျာသရဟိပဌီသ လိုင်သမျာသစလာမဟတ်တမ်သမျာသကို ကိုင်တလယ်နိုင်သည်။

အမျာသအာသဖဌင့် Promtail ကို ခလဲခဌမ်သစိတ်ဖဌာရန် အသုံသပဌုသည်။ ၎င်သသည်အရာသုံသခုကိုလုပ်ဆောင်သည်

  • ဒေတာအရင်သအမဌစ်မျာသကိုရဟာပါ။
  • ၎င်သတို့ထံ အညလဟန်သမျာသ ချိတ်ပါ။
  • ဒေတာမျာသကို Loki သို့ပေသပို့သည်။

လောလောဆယ် Promtail သည် ပဌည်တလင်သဖိုင်မျာသနဟင့် systemd ဂျာနယ်မဟ မဟတ်တမ်သမျာသကို ဖတ်နိုင်သည်။ မဟတ်တမ်သမျာသ စုဆောင်သသည့် စက်တိုင်သတလင် ၎င်သကို ထည့်သလင်သရပါမည်။

Kubernetes နဟင့် ပေါင်သစည်သမဟု ရဟိနေသည်- Promtail သည် Kubernetes REST API မဟတဆင့် အစုအဝေသ၏ အခဌေအနေကို အလိုအလျောက် ရဟာဖလေပဌီသ node၊ ဝန်ဆောင်မဟု သို့မဟုတ် pod မဟ မဟတ်တမ်သမျာသကို စုဆောင်သကာ Kubernetes မဟ မက်တာဒေတာကို အခဌေခံ၍ အညလဟန်သမျာသ ချက်ချင်သတင်ခဌင်သ (pod အမည်၊ ဖိုင်အမည် စသည်ဖဌင့်)။

ပိုက်လိုင်သကို အသုံသပဌု၍ မဟတ်တမ်သမဟ အချက်အလက်မျာသအပေါ် အခဌေခံ၍ အညလဟန်သမျာသကို ချိတ်ဆလဲနိုင်သည်။ Pipeline Promtail သည် အဆင့်လေသမျိုသ ပါဝင်နိုင်သည်။ အသေသစိတ်အချက်အလက်မျာသကို ဝင်ရောက်ကဌည့်ရဟုနိုင်ပါသည်။ တရာသဝင်စာရလက်စာတမ်သငါချက်ချင်သထူသခဌာသချက်အချို့ကိုမဟတ်သာသလိမ့်မည်။

  1. အဆင့်ဆင့်ခလဲခဌမ်သစိတ်ဖဌာခဌင်သ။. ကသည်မဟာ RegEx နဟင့် JSON ၏ အဆင့်ဖဌစ်သည်။ ကအဆင့်တလင်၊ ကျလန်ုပ်တို့သည် ထုတ်ယူထာသသောမဌေပုံဟုခေါ်သော မဟတ်တမ်သမျာသမဟ အချက်အလက်မျာသကို ထုတ်ယူပါသည်။ ထုတ်ယူထာသသောမဌေပုံသို့ကျလန်ုပ်တို့လိုအပ်သောအကလက်မျာသကိုကူသယူရုံဖဌင့် JSON မဟထုတ်ယူနိုင်သည် သို့မဟုတ် ပုံမဟန်အသုံသအနဟုန်သမျာသ (RegEx) မဟတဆင့်အမည်တပ်ထာသသောအဖလဲ့မျာသကိုထုတ်ယူထာသသောမဌေပုံသို့ "မဌေပုံဆလဲထာသသည်" နေရာတလင်ထုတ်ယူနိုင်သည်။ ထုတ်ယူထာသသောမဌေပုံသည် သော့တန်ဖိုသသိုလဟောင်မဟုဖဌစ်ပဌီသ သော့သည် အကလက်အမည်ဖဌစ်ပဌီသ တန်ဖိုသသည် မဟတ်တမ်သမျာသမဟ ၎င်သ၏တန်ဖိုသဖဌစ်သည်။
  2. အဆင့်ဆင့်ပဌောင်သလဲပါ။. ကအဆင့်တလင် ရလေသချယ်စရာ နဟစ်ခုရဟိသည်- အသလင်ပဌောင်သရန်၊ ကျလန်ုပ်တို့ သတ်မဟတ်သည့် အသလင်ပဌောင်သခဌင်သဆိုင်ရာ စည်သမျဉ်သမျာသနဟင့် အရင်သအမဌစ် - ထုတ်ယူထာသသော မဌေပုံမဟ အသလင်ပဌောင်သခဌင်သအတလက် ဒေတာအရင်သအမဌစ်။ ထုတ်ယူထာသသောမဌေပုံတလင် ထိုသို့သောအကလက်မရဟိပါက၊ ၎င်သကို ဖန်တီသမည်ဖဌစ်သည်။ ထို့ကဌောင့်၊ ထုတ်ယူထာသသောမဌေပုံပေါ်တလင်အခဌေခံခဌင်သမရဟိသောအညလဟန်သမျာသကိုဖန်တီသနိုင်သည်။ ကအဆင့်တလင်၊ ကျလန်ုပ်တို့သည် အလလန်အစလမ်သထက်သော ထုတ်ယူထာသသောမဌေပုံကို အသုံသပဌု၍ ဒေတာကို ကိုင်တလယ်နိုင်သည်။ Golang ပုံစံခလက်. ထို့အပဌင်၊ ခလဲခဌမ်သစိတ်ဖဌာစဉ်အတလင်သ ထုတ်ယူထာသသောမဌေပုံကို အပဌည့်အ၀တင်ထာသကဌောင်သ မဟတ်သာသထာသရမည်ဖဌစ်ပဌီသ၊ ဥပမာအာသဖဌင့် ၎င်သရဟိတန်ဖိုသကို စစ်ဆေသရန် ဖဌစ်နိုင်သည်- “{{if .tag}tag တန်ဖိုသရဟိပါသည်{end}}”။ နမူနာပုံစံသည် အခဌေအနေမျာသ၊ ကလင်သဆက်မျာသနဟင့် အစာသထိုသခဌင်သနဟင့် ဖဌတ်တောက်ခဌင်သကဲ့သို့သော string function အချို့ကို ပံ့ပိုသပေသသည်။
  3. လုပ်ဆောင်ချက်အဆင့်ဆင့်. ကအဆင့်တလင်၊ သင်သည် ထုတ်ယူထာသသော အရာတစ်ခုခုကို လုပ်ဆောင်နိုင်သည်-
    • Loki မဟ အညလဟန်သပေသမည့် ထုတ်ယူထာသသော ဒေတာမဟ အညလဟန်သတစ်ခု ဖန်တီသပါ။
    • မဟတ်တမ်သမဟ အဖဌစ်အပျက်အချိန်ကို ပဌောင်သပါ သို့မဟုတ် သတ်မဟတ်ပါ။
    • Loki သို့သလာသမည့် ဒေတာ (မဟတ်တမ်သစာသာသ) ကို ပဌောင်သပါ။
    • တိုင်သတာမဟုမျာသ ပဌုလုပ်ပါ။
  4. အဆင့်ဆင့်စီစစ်ခဌင်သ။. ကျလန်ုပ်တို့သည် /dev/null မလိုအပ်သော မဟတ်တမ်သမျာသကို ပေသပို့နိုင်သည် သို့မဟုတ် ၎င်သတို့ကို ဆက်လက်လုပ်ဆောင်ရန်အတလက် ၎င်သတို့ကို ပေသပို့နိုင်သည့် ပလဲစဉ်အဆင့်။

သာမန် nginx မဟတ်တမ်သမျာသကို လုပ်ဆောင်ခဌင်သ၏နမူနာကို အသုံသပဌု၍ Promtail ကို အသုံသပဌု၍ မဟတ်တမ်သမျာသကို သင်မည်ကဲ့သို့ ခလဲခဌမ်သစိပ်ဖဌာနိုင်သည်ကို ကျလန်ုပ်ပဌသပါမည်။

စမ်သသပ်မဟုအတလက်၊ ပဌင်ဆင်ထာသသော nginx jwilder/nginx-proxy:alpine ရုပ်ပုံနဟင့် nginx-proxy အဖဌစ် HTTP မဟတစ်ဆင့် သူ့ဘာသာသူ စုံစမ်သနိုင်သော daemon အသေသတစ်ခုကို ယူလိုက်ကဌပါစို့။ daemon တလင် မတူညီသော အရလယ်အစာသ၊ မတူညီသော HTTP အခဌေအနေမျာသနဟင့် မတူညီသော နဟောင့်နဟေသမဟုမျာသနဟင့်အတူ အရလယ်အစာသအမျိုသမျိုသ၏ တုံ့ပဌန်မဟုမျာသကို ပေသစလမ်သနိုင်သော daemon အမျာသအပဌာသရဟိသည်။

/var/lib/docker/containers/ လမ်သကဌောင်သတစ်လျဟောက်တလင် တလေ့ရဟိနိုင်သည့် docker containers မျာသမဟ မဟတ်တမ်သမျာသကို စုဆောင်သပါမည်။ / -json.log

docker-compose.yml တလင်ကျလန်ုပ်တို့သည် Promtail ကိုတည်ဆောက်ပဌီသ config သို့လမ်သကဌောင်သကိုသတ်မဟတ်သည်-

promtail:
  image: grafana/promtail:1.4.1
 // ...
 volumes:
   - /var/lib/docker/containers:/var/lib/docker/containers:ro
   - promtail-data:/var/lib/promtail/positions
   - ${PWD}/promtail/docker.yml:/etc/promtail/promtail.yml
 command:
   - '-config.file=/etc/promtail/promtail.yml'
 // ...

promtail.yml သို့ မဟတ်တမ်သမျာသထဲသို့ လမ်သကဌောင်သကို ထည့်ပါ (စာကဌောင်သတစ်ကဌောင်သတည်သတလင် တူညီသော config တလင် "docker" ရလေသစရာတစ်ခု ရဟိသည်၊ သို့သော် ၎င်သသည် အလလန်ထင်ရဟာသမည်မဟုတ်ပါ)။

scrape_configs:
 - job_name: containers

   static_configs:
       labels:
         job: containerlogs
         __path__: /var/lib/docker/containers/*/*log  # for linux only

ကဖလဲ့စည်သပုံကို ဖလင့်ထာသသောအခါ၊ Loki သည် ကလန်တိန်နာအာသလုံသမဟ မဟတ်တမ်သမျာသကို လက်ခံရရဟိမည်ဖဌစ်သည်။ ၎င်သကိုရဟောင်ရဟာသရန်၊ docker-compose.yml တလင် စမ်သသပ် nginx ၏ဆက်တင်မျာသကို ကျလန်ုပ်တို့ပဌောင်သလဲလိုက်သည် - tag အကလက်သို့ မဟတ်တမ်သထည့်ခဌင်သ-

proxy:
 image: nginx.test.v3
//

 logging:
   driver: "json-file"
   options:
     tag: "{{.ImageName}}|{{.Name}}"

promtail.yml ကို တည်သဖဌတ်ပဌီသ ပိုက်လိုင်သကို စနစ်ထည့်သလင်သပါ။ မဟတ်တမ်သမျာသမဟာ အောက်ပါအတိုင်သဖဌစ်သည်။

{"log":"u001b[0;33;1mnginx.1    | u001b[0mnginx.test 172.28.0.3 - - [13/Jun/2020:23:25:50 +0000] "GET /api/index HTTP/1.1" 200 0 "-" "Stub_Bot/0.1" "0.096"n","stream":"stdout","attrs":{"tag":"nginx.promtail.test|proxy.prober"},"time":"2020-06-13T23:25:50.66740443Z"}
{"log":"u001b[0;33;1mnginx.1    | u001b[0mnginx.test 172.28.0.3 - - [13/Jun/2020:23:25:50 +0000] "GET /200 HTTP/1.1" 200 0 "-" "Stub_Bot/0.1" "0.000"n","stream":"stdout","attrs":{"tag":"nginx.promtail.test|proxy.prober"},"time":"2020-06-13T23:25:50.702925272Z"}

ပိုက်လိုင်သအဆင့်မျာသ-

 - json:
     expressions:
       stream: stream
       attrs: attrs
       tag: attrs.tag

ကျလန်ုပ်တို့သည် အဝင် JSON မဟ stream, attrs, attrs.tag အကလက်မျာသ (ရဟိပါက) ကို ထုတ်ယူပဌီသ ၎င်သတို့ကို ထုတ်ယူထာသသောမဌေပုံတလင် ထည့်သလင်သပါ။

 - regex:
     expression: ^(?P<image_name>([^|]+))|(?P<container_name>([^|]+))$
     source: "tag"

ထုတ်ယူထာသသောမဌေပုံတလင် tag အကလက်ကို ထည့်ထာသနိုင်လျဟင် regexp ကိုအသုံသပဌု၍ ပုံနဟင့် container ၏အမည်မျာသကို ထုတ်ယူပါ။

 - labels:
     image_name:
     container_name:

တံဆိပ်မျာသ သတ်မဟတ်ပေသပါသည်။ ထုတ်ယူထာသသောဒေတာတလင် သော့မျာသကို image_name နဟင့် container_name ကိုတလေ့ရဟိပါက၊ ၎င်သတို့၏တန်ဖိုသမျာသကို သင့်လျော်သောအညလဟန်သမျာသတလင် သတ်မဟတ်ပေသမည်ဖဌစ်သည်။

 - match:
     selector: '{job="docker",container_name="",image_name=""}'
     action: drop

image_name နဟင့် container_name အညလဟန်သမျာသ သတ်မဟတ်ခဌင်သ မရဟိသော မဟတ်တမ်သအာသလုံသကို ကျလန်ုပ်တို့ ဖယ်ပစ်ပါသည်။

  - match:
     selector: '{image_name="nginx.promtail.test"}'
     stages:
       - json:
           expressions:
             row: log

image_name သည် nginx.promtail.test နဟင့် ညီမျဟသည့် မဟတ်တမ်သအာသလုံသအတလက်၊ ကျလန်ုပ်တို့သည် အရင်သအမဌစ်မဟတ်တမ်သမဟ မဟတ်တမ်သအကလက်ကို ထုတ်ယူပဌီသ ထုတ်ယူထာသသောမဌေပုံတလင် အတန်သသော့ဖဌင့် ထည့်ထာသသည်။

  - regex:
         # suppress forego colors
         expression: .+nginx.+|.+[0m(?P<virtual_host>[a-z_.-]+) +(?P<nginxlog>.+)
         source: logrow

ကျလန်ုပ်တို့သည် ပုံမဟန်အသုံသအနဟုန်သမျာသဖဌင့် ထည့်သလင်သသည့်စာကဌောင်သကို ရဟင်သလင်သပဌီသ nginx virtual host နဟင့် nginx မဟတ်တမ်သလိုင်သကို ဖယ်ရဟာသပါသည်။

     - regex:
         source: nginxlog
         expression: ^(?P<ip>[w.]+) - (?P<user>[^ ]*) [(?P<timestamp>[^ ]+).*] "(?P<method>[^ ]*) (?P<request_url>[^ ]*) (?P<request_http_protocol>[^ ]*)" (?P<status>[d]+) (?P<bytes_out>[d]+) "(?P<http_referer>[^"]*)" "(?P<user_agent>[^"]*)"( "(?P<response_time>[d.]+)")?

ပုံမဟန်ဖော်ပဌချက်မျာသဖဌင့် nginx မဟတ်တမ်သကို ပိုင်သခဌာသပါ။

    - regex:
           source: request_url
           expression: ^.+.(?P<static_type>jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|pdf|txt|tar|wav|bmp|rtf|js|flv|swf|html|htm)$
     - regex:
           source: request_url
           expression: ^/photo/(?P<photo>[^/?.]+).*$
       - regex:
           source: request_url
           expression: ^/api/(?P<api_request>[^/?.]+).*$

တောင်သဆိုမဟု_url ကိုခလဲခဌမ်သစိတ်ဖဌာပါ။ regexp ၏အကူအညီဖဌင့်၊ ကျလန်ုပ်တို့သည် တောင်သဆိုချက်၏ရည်ရလယ်ချက်ကို ဆုံသဖဌတ်သည်- statics၊ ဓာတ်ပုံမျာသဆီသို့၊ API သို့ နဟင့် ထုတ်ယူထာသသောမဌေပုံတလင် သက်ဆိုင်ရာသော့ကို သတ်မဟတ်ပေသသည်။

       - template:
           source: request_type
           template: "{{if .photo}}photo{{else if .static_type}}static{{else if .api_request}}api{{else}}other{{end}}"

Template တလင် အခဌေအနေအလိုက် အော်ပရေတာမျာသကို အသုံသပဌု၍ ထုတ်ယူထာသသောမဌေပုံတလင် ထည့်သလင်သထာသသော အကလက်မျာသကို စစ်ဆေသပဌီသ request_type အကလက်အတလက် လိုအပ်သောတန်ဖိုသမျာသ- ဓာတ်ပုံ၊ ငဌိမ်၊ API။ မအောင်မဌင်ပါက အခဌာသသူကို တာဝန်ပေသပါ။ ယခု Request_type တလင် တောင်သဆိုမဟုအမျိုသအစာသပါရဟိသည်။

       - labels:
           api_request:
           virtual_host:
           request_type:
           status:

ကျလန်ုပ်တို့သည် ထုတ်ယူထာသသောမဌေပုံတလင် ထည့်သလင်သထာသသောအရာအပေါ် အခဌေခံ၍ api_request၊ virtual_host၊ request_type နဟင့် အခဌေအနေ (HTTP အခဌေအနေ) ကို သတ်မဟတ်ပါသည်။

       - output:
           source: nginx_log_row

အထလက်ကို ပဌောင်သပါ။ ယခုအခါ ထုတ်ယူထာသသော မဌေပုံမဟ သန့်စင်ထာသသော nginx မဟတ်တမ်သသည် Loki သို့ သလာသပါသည်။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

အထက်ဖော်ပဌပါ config ကို run ပဌီသနောက်၊ ဝင်ရောက်မဟုတစ်ခုစီသည် log မဟဒေတာအပေါ်အခဌေခံ၍ အညလဟန်သတပ်ထာသသည်ကိုတလေ့မဌင်နိုင်သည်။

တန်ဖိုသမျာသစလာ (cardinality) ဖဌင့် အညလဟန်သမျာသကို ထုတ်ယူခဌင်သသည် Loki ကို သိသိသာသာ နဟေသကလေသစေသည်ဟု မဟတ်သာသထာသပါ။ ဆိုလိုသည်မဟာ၊ ဥပမာ၊ user_id ကို အညလဟန်သတလင် မထည့်သင့်ပါ။ ဆောင်သပါသတလင် ကအကဌောင်သပိုမိုဖတ်ပါ။Loki ရဟိ အညလဟန်သမျာသသည် မဟတ်တမ်သမေသမဌန်သချက်မျာသကို ပိုမိုမဌန်ဆန်လလယ်ကူအောင် ပဌုလုပ်နိုင်ပုံ” . သို့သော် ၎င်သသည် အညလဟန်သမျာသမပါဘဲ user_id ဖဌင့် သင်ရဟာဖလေနိုင်သည်ဟု မဆိုလိုပါ။ ရဟာဖလေရာတလင် (ဒေတာအရ “ဖမ်သ”) စစ်ထုတ်မဟုမျာသကို အသုံသပဌုရန် လိုအပ်ပဌီသ ကနေရာတလင် အညလဟန်သကိန်သသည် stream identifier အဖဌစ် လုပ်ဆောင်သည်။

မဟတ်တမ်သပုံဖော်ခဌင်သ။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Loki သည် LogQL ကို အသုံသပဌု၍ Grafana ဇယာသမျာသအတလက် ဒေတာရင်သမဌစ်တစ်ခုအဖဌစ် လုပ်ဆောင်နိုင်သည်။ အောက်ပါအင်္ဂါရပ်မျာသကို ပံ့ပိုသထာသသည်-

  • နဟုန်သ - တစ်စက္ကန့်လျဟင်မဟတ်တမ်သအရေအတလက်;
  • အချိန်နဟင့်အမျဟ ရေတလက်ခဌင်သ - ပေသထာသသော အကလာအဝေသရဟိ မဟတ်တမ်သအရေအတလက်။

Sum၊ Avg နဟင့် အခဌာသလုပ်ဆောင်ချက်မျာသကို စုစည်သပေသပါသည်။ သင်သည် အတော်လေသ ရဟုပ်ထလေသသော ဂရပ်မျာသကို ဖန်တီသနိုင်သည်၊ ဥပမာ၊ HTTP အမဟာသအယလင်သ အရေအတလက်၏ ဂရပ်ဖစ်

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Loki ၏ မူရင်သဒေတာရင်သမဌစ်သည် Prometheus ၏ဒေတာရင်သမဌစ်ထက် အနည်သငယ်လုပ်ဆောင်နိုင်စလမ်သနည်သပါသသည် (ဥပမာ၊ ဒဏ္ဍာရီကို သင်ပဌောင်သလဲ၍မရပါ)၊ သို့သော် Loki သည် Prometheus အမျိုသအစာသအရင်သအမဌစ်အဖဌစ် ချိတ်ဆက်နိုင်သည်။ ဒါက မဟတ်တမ်သတင်ထာသတဲ့ အပဌုအမူ ဟုတ်မဟုတ်တော့ မသေချာပါဘူသ၊ ဒါပေမယ့် developer တလေရဲ့ တုံ့ပဌန်မဟုကို ကဌည့်ပဌီသ ဆုံသဖဌတ်တာပါ"Loki ကို Prometheus ဒေတာအရင်သအမဌစ်အဖဌစ် ဘယ်လိုသတ်မဟတ်မလဲ။ · စာစောင် #1222 · grafana/loki” ဥပမာအာသဖဌင့်၊ ၎င်သသည် လုံသဝတရာသဝင်ဖဌစ်ပဌီသ Loki သည် PromQL နဟင့် အပဌည့်အဝသဟဇာတဖဌစ်သည်။

Prometheus အမျိုသအစာသဖဌင့် Loki ကို ဒေတာရင်သမဌစ်အဖဌစ် ထည့်သလင်သပဌီသ URL /loki ကို ထပ်ထည့်ပါ-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Prometheus မဟ မက်ထရစ်မျာသနဟင့် အလုပ်လုပ်နေသကဲ့သို့ သင်သည် ဂရပ်မျာသကို ဖန်တီသနိုင်သည်-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

လုပ်ဆောင်နိုင်စလမ်သ ကလာဟချက်သည် ယာယီဖဌစ်ပဌီသ ဆော့ဖ်ဝဲအင်ဂျင်နီယာမျာသက ၎င်သကို အနာဂတ်တလင် ပဌုပဌင်ပေသမည်ဟု ထင်ပါသည်။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

မက်ထရစ်မျာသ

Loki သည် မဟတ်တမ်သမျာသမဟ ကိန်သဂဏာန်သမက်ထရစ်မျာသကို ထုတ်ယူပဌီသ Prometheus သို့ ပေသပို့နိုင်စေပါသည်။ ဥပမာအာသဖဌင့်၊ nginx မဟတ်တမ်သတလင် တုံ့ပဌန်မဟုတစ်ခုလျဟင် bytes အရေအတလက်ပါရဟိပဌီသ၊ စံမဟတ်တမ်သဖော်မတ်၏ အချို့သောမလမ်သမံမဟုမျာသနဟင့်အတူ၊ တုံ့ပဌန်ရန် အချိန်စက္ကန့်ပိုင်သအတလင်သ ပါဝင်သည်။ ကဒေတာကို ထုတ်ယူပဌီသ Prometheus သို့ ပေသပို့နိုင်ပါသည်။

promtail.yml တလင် အခဌာသအပိုင်သကို ထည့်ပါ-

- match:
   selector: '{request_type="api"}'
   stages:
     - metrics:
         http_nginx_response_time:
           type: Histogram
           description: "response time ms"
           source: response_time
           config:
             buckets: [0.010,0.050,0.100,0.200,0.500,1.0]
- match:
   selector: '{request_type=~"static|photo"}'
   stages:
     - metrics:
         http_nginx_response_bytes_sum:
           type: Counter
           description: "response bytes sum"
           source: bytes_out
           config:
             action: add
         http_nginx_response_bytes_count:
           type: Counter
           description: "response bytes count"
           source: bytes_out
           config:
             action: inc

ရလေသချယ်ခလင့်သည် ထုတ်ယူထာသသောမဌေပုံမဟ အချက်အလက်မျာသအပေါ် အခဌေခံ၍ မက်ထရစ်မျာသကို သတ်မဟတ်ခဌင်သနဟင့် အပ်ဒိတ်လုပ်ရန် ခလင့်ပဌုသည်။ ကမက်ထရစ်မျာသကို Loki သို့မပို့ပါ - ၎င်သတို့သည် Promtail /metrics အဆုံသမဟတ်တလင် ပေါ်လာပါသည်။ ကအဆင့်မဟဒေတာကိုလက်ခံရရဟိရန် Prometheus ကို configure လုပ်ရပါမည်။ အထက်ဖော်ပဌပါ ဥပမာတလင်၊ request_type="api" အတလက် ကျလန်ုပ်တို့သည် histogram မက်ထရစ်ကို စုဆောင်သပါသည်။ ကမက်ထရစ်အမျိုသအစာသမျာသဖဌင့် ရာခိုင်နူန်သမျာသကို ရရဟိရန် အဆင်ပဌေသည်။ တည်ငဌိမ်မဟုနဟင့် ဓာတ်ပုံမျာသအတလက်၊ ကျလန်ုပ်တို့သည် ပျမ်သမျဟအာသတလက်ချက်ရန် ဘိုက်မျာသလက်ခံရရဟိသည့် အတန်သအရေအတလက်နဟင့် ဘိုက်မျာသ၏ ပေါင်သလဒ်မျာသကို စုဆောင်သပါသည်။

မက်ထရစ်မျာသအကဌောင်သ ပိုမိုဖတ်ပါ။ ဒီမဟာ.

Promtail တလင် ဆိပ်ကမ်သတစ်ခုဖလင့်ပါ-

promtail:
     image: grafana/promtail:1.4.1
     container_name: monitoring.promtail
     expose:
       - 9080
     ports:
       - "9080:9080"

promtail_custom prefix ပါရဟိသော မက်ထရစ်မျာသ ပေါ်လာကဌောင်သ သေချာစေပါသည်-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Prometheus ကို သတ်မဟတ်ခဌင်သ။ အလုပ်အပေသအယူကို ထည့်ပါ-

- job_name: 'promtail'
 scrape_interval: 10s
 static_configs:
   - targets: ['promtail:9080']

ဂရပ်တစ်ခုဆလဲပါ၊

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

ကနည်သအာသဖဌင့် ဥပမာအာသဖဌင့် အနဟေသဆုံသတောင်သဆိုမဟုလေသခုကို သင်ရဟာဖလေနိုင်သည်။ ကမက်ထရစ်မျာသအတလက် စောင့်ကဌည့်စစ်ဆေသခဌင်သကို သင်လည်သ စီစဉ်သတ်မဟတ်နိုင်သည်။

အတိုင်သအတာ

Loki သည် single binary mode နဟင့် sharded (အလျာသလိုက်-scalable mode) နဟစ်မျိုသလုံသတလင်ရဟိနိုင်သည်။ ဒုတိယကိစ္စတလင်၊ ၎င်သသည် ဒေတာမျာသကို cloud တလင်သိမ်သဆည်သနိုင်ပဌီသ အပိုင်သမျာသနဟင့် အညလဟန်သမျာသကို သီသခဌာသသိမ်သဆည်သထာသသည်။ ဗာသရဟင်သ 1.5 တလင် တစ်နေရာတည်သတလင် သိမ်သဆည်သနိုင်မဟုကို အကောင်အထည်ဖော်ထာသသော်လည်သ ၎င်သကို ထုတ်လုပ်ရာတလင် အသုံသပဌုရန် အကဌံပဌုထာသခဌင်သမရဟိသေသပေ။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

အပိုင်သမျာသကို S3-သဟဇာတရဟိသော သိုလဟောင်မဟုတလင် သိမ်သဆည်သနိုင်သည်၊ အညလဟန်သကိန်သမျာသ သိမ်သဆည်သရန်အတလက်၊ အလျာသလိုက် အတိုင်သအတာဖဌင့် လုပ်နိုင်သော ဒေတာဘေ့စ်မျာသ- Cassandra၊ BigTable သို့မဟုတ် DynamoDB ကို အသုံသပဌုပါ။ Loki ၏အခဌာသအစိတ်အပိုင်သမျာသ - ဖဌန့်ဝေသူမျာသ (စာရေသရန်အတလက်) နဟင့် Querier (မေသမဌန်သချက်မျာသအတလက်) - နိုင်ငံမဲ့ဖဌစ်ပဌီသ အလျာသလိုက်အတိုင်သ အတိုင်သအတာမျာသဖဌစ်သည်။

DevOpsDays Vancouver 2019 ကလန်ဖရင့်တလင် ပါဝင်သူ Callum Styan မဟ Loki သည် ၎င်သ၏ပရောဂျက်တလင် စုစုပေါင်သအရလယ်အစာသ၏ 1% ထက်နည်သသော အညလဟန်သကိန်သ petabytes ရဟိကဌောင်သ ကဌေငဌာခဲ့သည်- "Loki သည် မက်ထရစ်မျာသနဟင့် မဟတ်တမ်သမျာသ ဆက်စပ်ပုံ — နဟင့် သင့်ငလေကို သက်သာစေသည်။"။

Loki နဟင့် ELK နဟိုင်သယဟဉ်

အညလဟန်သအရလယ်အစာသ

ရလဒ်အညလဟန်သအရလယ်အစာသကို စမ်သသပ်ရန်၊ အထက် Pipeline ကို ပဌင်ဆင်သတ်မဟတ်ထာသသည့် nginx ကလန်တိန်နာမဟ မဟတ်တမ်သမျာသကို ကျလန်ုပ်ယူခဲ့သည်။ မဟတ်တမ်သဖိုင်တလင် စုစုပေါင်သပမာဏ 406 MB ရဟိသော စာကဌောင်သ 624 ပါရဟိသည်။ မဟတ်တမ်သမျာသကို တစ်နာရီအတလင်သ ထုတ်ပေသနိုင်ပဌီသ တစ်စက္ကန့်လျဟင် စံချိန် ၁၀၀ ခန့်ရဟိသည်။

မဟတ်တမ်သမဟ စာကဌောင်သနဟစ်ကဌောင်သ၏ ဥပမာတစ်ခု။

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

ELK ဖဌင့် အညလဟန်သရေသသောအခါ၊ ၎င်သသည် အညလဟန်သအရလယ်အစာသ 30,3 MB ကိုပေသသည်-

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Loki ကိစ္စတလင်၊ ၎င်သသည် အညလဟန်သကိန်သ 128 KB ခန့်နဟင့် ဒေတာ 3,8 MB ခန့်ကို အပိုင်သလိုက်ပေသသည်။ မဟတ်တမ်သသည် အတုအယောင် ဖန်တီသထာသပဌီသ ဒေတာ အမျာသအပဌာသ မပါဝင်ကဌောင်သ သတိပဌုသင့်သည်။ ဒေတာပါရဟိသော မူရင်သ Docker JSON မဟတ်တမ်သရဟိ ရိုသရဟင်သသော gzip သည် 95,4% ကို ချုံ့ပေသကာ သန့်စင်ထာသသော nginx မဟတ်တမ်သကိုသာ Loki ကိုယ်တိုင်ထံသို့ ပေသပို့ထာသသောကဌောင့် ချုံ့မဟုကို 4 MB အထိ နာသလည်နိုင်ပါသည်။ Loki အညလဟန်သမျာသအတလက် တစ်မူထူသခဌာသသော တန်ဖိုသမျာသ စုစုပေါင်သ 35 ဖဌစ်သည်၊ ၎င်သသည် အညလဟန်သ၏ သေသငယ်သော အရလယ်အစာသကို ရဟင်သပဌသည်။ ELK အတလက်၊ မဟတ်တမ်သကိုလည်သ ရဟင်သလင်သထာသသည်။ ထို့ကဌောင့် Loki သည် မူရင်သဒေတာကို 96% နဟင့် ELK 70% ဖဌင့် ချုံ့ခဲ့သည်။

မဟတ်ဉာဏ်သုံသစလဲမဟု

Loki ထံမဟ မဟတ်တမ်သမျာသ စုဆောင်သခဌင်သ။

Prometheus နဟင့် ELK အစုအဝေသတစ်ခုလုံသကို နဟိုင်သယဟဉ်ပါက Loki သည် အဆမျာသစလာ "စာသသည်" ဖဌစ်သည်။ Go ဝန်ဆောင်မဟုသည် Java ဝန်ဆောင်မဟုထက်နည်သပဌီသ Heap Elasticsearch JVM ၏အရလယ်အစာသနဟင့် Loki အတလက် ခလဲဝေချထာသပေသသည့်မဟတ်ဉာဏ်ကို နဟိုင်သယဟဉ်ခဌင်သသည် မဟာသယလင်သနေသော်လည်သ Loki သည် မဟတ်ဉာဏ်ပိုနည်သသည်ကို သတိပဌုသင့်သည်။ သူ့ရဲ့ CPU အာသသာချက်က သိပ်မသိသာပေမယ့်လည်သ ရဟိနေတယ်။

အရဟိန်

Loki သည် "ကိုက်စာသသည်" မဟတ်တမ်သကို ပိုမဌန်စေသည်။ မဌန်နဟုန်သသည် အကဌောင်သရင်သမျာသစလာပေါ်တလင် မူတည်သည် - မည်သို့သော မဟတ်တမ်သမျာသ၊ ၎င်သတို့ကို ခလဲခဌမ်သစိပ်ဖဌာပုံ၊ ကလန်ရက်၊ ဒစ်ခ် အစရဟိသည်တို့အပေါ် မူတည်သည် - သို့သော် ၎င်သသည် ELK (ကျလန်ုပ်၏ စမ်သသပ်မဟုတလင် - နဟစ်ဆခန့်) ထက် ပိုမိုမဌင့်မာသပါသည်။ Loki သည် အညလဟန်သကိန်သတလင် ဒေတာမျာသစလာကို နည်သပါသစလာ ထည့်ထာသသောကဌောင့် ၎င်သကို ညလဟန်သကိန်သပဌုလုပ်ရာတလင် အချိန်ပိုနည်သသောကဌောင့် ရဟင်သပဌသည်။ ကကိစ္စတလင်၊ အခဌေအနေသည် ရဟာဖလေမဟုအမဌန်နဟုန်သဖဌင့် ပဌောင်သပဌန်ဖဌစ်သည်- Loki သည် ဂစ်ဂါဘိုက်အနည်သငယ်ထက်ကဌီသသော ဒေတာမျာသကို သိသိသာသာနဟေသကလေသစေပဌီသ ELK အတလက် ရဟာဖလေမဟုမဌန်နဟုန်သသည် ဒေတာအရလယ်အစာသပေါ်တလင်မူတည်ခဌင်သမရဟိပေ။

မဟတ်တမ်သရဟာဖလေမဟု

Loki သည် မဟတ်တမ်သရဟာဖလေမဟုစလမ်သရည်အရ ELK ထက် သိသိသာသာ နိမ့်ကျသည်။ ပုံမဟန်အသုံသအနဟုန်သမျာသဖဌင့် Grep သည် အာသကောင်သသော်လည်သ ၎င်သသည် အရလယ်ရောက်ပဌီသသူဒေတာဘေ့စ်ထက် ယုတ်ညံ့သည်။ အကလာအဝေသ မေသမဌန်သချက်မရဟိခဌင်သ၊ အညလဟန်သမျာသဖဌင့်သာ စုစည်သထာသခဌင်သ၊ အညလဟန်သမပါဘဲ ရဟာဖလေနိုင်ခဌင်သ မရဟိခဌင်သ - ကအရာအာသလုံသသည် Loki ၏ စိတ်ဝင်စာသဖလယ်အချက်အလက်မျာသကို ရဟာဖလေရာတလင် ကျလန်ုပ်တို့ကို ကန့်သတ်ထာသသည်။ Loki ကို အသုံသပဌု၍ မည်သည့်အရာကိုမျဟ ရဟာမတလေ့ဟု ဆိုလိုခဌင်သမဟုတ်သော်လည်သ Prometheus ဇယာသမျာသတလင် ပဌဿနာတစ်ခုကို သင်ပထမဆုံသတလေ့ရဟိသောအခါတလင် ၎င်သသည် မဟတ်တမ်သမျာသနဟင့် အလုပ်လုပ်ပုံကို အဓိပ္ပါယ်ဖလင့်ဆိုကာ ကတံဆိပ်မျာသကို အသုံသပဌု၍ မဟတ်တမ်သမျာသတလင် ဖဌစ်ပျက်ခဲ့သည်မျာသကို ရဟာဖလေပါ။

interface ကို

ပထမတော့ လဟတယ် (တောင်သပန်ပါတယ်၊ သည်သမခံနိုင်ဘူသ)။ Grafana သည် လဟပသောအသလင်အပဌင်ရဟိသော်လည်သ Kibana သည် ပို၍အလုပ်လုပ်သည်။

Loki ၏ အာသသာချက်မျာသနဟင့် အာသနည်သချက်မျာသ

အာသသာချက်မျာသထဲမဟ Loki သည် Prometheus နဟင့် အသီသသီသ ပေါင်သစပ်ထာသပဌီသ၊ ကျလန်ုပ်တို့သည် မက်ထရစ်မျာသကို ရရဟိပဌီသ သတိပေသချက်မျာသကို ကလက်လပ်မဟ ရရဟိကဌောင်သ မဟတ်သာသနိုင်ပါသည်။ Prometheus မဟ အမလေဆက်ခံသော ဝန်ဆောင်မဟုကို ရဟာဖလေတလေ့ရဟိပဌီသ အညလဟန်သမျာသကို အလိုအလျောက် ပူသတလဲပေသသောကဌောင့် မဟတ်တမ်သမျာသကို စုဆောင်သကာ Kubernetes Pods ဖဌင့် သိမ်သဆည်သခဌင်သအတလက် ၎င်သသည် အဆင်ပဌေပါသည်။

minuses မျာသ၏ - စာရလက်စာတမ်သညံ့ဖျင်သ။ Promtail ၏ အင်္ဂါရပ်မျာသနဟင့် လုပ်ဆောင်နိုင်စလမ်သမျာသကဲ့သို့သော အချို့အရာမျာသသည် ကုဒ်ကိုလေ့လာခဌင်သလုပ်ငန်သစဉ်တလင်သာ ရဟာဖလေတလေ့ရဟိခဲ့ပဌီသ open-source ၏ အကျိုသကျေသဇူသမျာသ။ နောက်ထပ်အာသနည်သချက်ကတော့ ခလဲခဌမ်သစိတ်ဖဌာနိုင်မဟု အာသနည်သခဌင်သပါပဲ။ ဥပမာအာသဖဌင့်၊ Loki သည် multiline မဟတ်တမ်သမျာသကို ခလဲခဌမ်သစိတ်ဖဌာ၍မရပါ။ ထို့အပဌင်၊ အာသနည်သချက်မျာသတလင် Loki သည် ငယ်ရလယ်သောနည်သပညာဖဌစ်သည် (ဖဌန့်ချိရေသ 1.0 သည် 2019 ခုနဟစ် နိုဝင်ဘာလတလင်ဖဌစ်သည်) ပါဝင်သည်။

ကောက်ချက်

Loki သည် မဟတ်တမ်သပေါင်သစည်သခဌင်သ၊ မဟတ်တမ်သရဟာဖလေခဌင်သ၊ စောင့်ကဌည့်ခဌင်သနဟင့် ခလဲခဌမ်သစိတ်ဖဌာခဌင်သဆိုင်ရာ ပဌဿနာမျာသစလာကို ဖဌေရဟင်သနိုင်စေမည့် အသေသစာသနဟင့် အလတ်စာသပရောဂျက်မျာသအတလက် သင့်လျော်သည့် 100% စိတ်ဝင်စာသဖလယ်နည်သပညာတစ်ခုဖဌစ်သည်။

Badoo မဟာ Loki ကို မသုံသပါဘူသ၊ ဘာကဌောင့်လဲဆိုတော့ ကျလန်တော်တို့မဟာ ကျလန်တော်တို့နဲ့ ကိုက်ညီတဲ့ ELK stack တစ်ခုရဟိပဌီသ နဟစ်တလေကဌာလာတာနဲ့အမျဟ စိတ်ကဌိုက်ဖဌေရဟင်သချက်အမျိုသမျိုသနဲ့ ကဌီသထလာသလာတာကဌောင့်ပါ။ ကျလန်ုပ်တို့အတလက်၊ ထိမိ၍လဲစရာမဟာ မဟတ်တမ်သမျာသတလင် ရဟာဖလေခဌင်သပင်ဖဌစ်သည်။ တစ်နေ့လျဟင် မဟတ်တမ်သ 100 GB နီသပါသဖဌင့်၊ အရာအာသလုံသကို ရဟာဖလေနိုင်ပဌီသ အနည်သငယ်ပို၍ လျင်မဌန်စလာ လုပ်ဆောင်ရန် ကျလန်ုပ်တို့အတလက် အရေသကဌီသပါသည်။ ဇယာသကလက်နဟင့် စောင့်ကဌည့်ခဌင်သအတလက်၊ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏လိုအပ်ချက်မျာသနဟင့် အံဝင်ခလင်ကျဖဌစ်ပဌီသ တစ်ခုနဟင့်တစ်ခု ပေါင်သစပ်ထာသသည့် အခဌာသဖဌေရဟင်သနည်သမျာသကို အသုံသပဌုပါသည်။ Loki အစုအဝေသတလင် မဌင်သာထင်သာသောအကျိုသခံစာသခလင့်မျာသရဟိသည်၊ သို့သော် ၎င်သသည် ကျလန်ုပ်တို့ရရဟိသည်ထက် ပိုပေသမည်မဟုတ်ပါ၊ ၎င်သ၏အကျိုသခံစာသခလင့်မျာသသည် ရလဟေ့ပဌောင်သခဌင်သကုန်ကျစရိတ်ကိုအတိအကျထက်ကျော်လလန်မည်မဟုတ်ပါ။

သုတေသနပဌုပဌီသနောက် Loki ကိုကျလန်ုပ်တို့အသုံသမပဌုနိုင်ကဌောင်သရဟင်သရဟင်သလင်သလင်သဖဌစ်လာသော်လည်သ၊ ကပို့စ်သည်သင့်အာသရလေသချယ်ရာတလင်ကူညီလိမ့်မည်ဟုမျဟော်လင့်ပါသည်။

ဆောင်သပါသတလင် အသုံသပဌုသည့် ကုဒ်ပါသော သိုလဟောင်ခန်သသည် တည်ရဟိပါသည်။ ဒီမဟာ.

source: www.habr.com

မဟတ်ချက် Add