နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အာသလုံသမင်္ဂလာပါ! ကျလန်ုပ်၏သင်တန်သအလုပ်၏တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ ကကဲ့သို့သောပဌည်တလင်သ cloud platform ၏စလမ်သရည်မျာသကို သုတေသနပဌုခဲ့ပါသည်။ Yandex.Cloud. ပလက်ဖောင်သသည် လက်တလေ့ကျသော ပဌဿနာမျာသကို ဖဌေရဟင်သရန်အတလက် ဝန်ဆောင်မဟုအမျိုသမျိုသကို ပေသဆောင်သည်။ သို့သော်၊ တစ်ခါတစ်ရံတလင် သင်သည် ကဝန်ဆောင်မဟုမျာသကိုအခဌေခံ၍ သင့်ကိုယ်ပိုင် cloud အက်ပ်လီကေသရဟင်သကို တည်ဆောက်ရန် လိုအပ်ပါသည်။ ကဆောင်သပါသတလင် ကကဲ့သို့သော အက်ပလီကေသရဟင်သကို အသုံသပဌုရာတလင် ကျလန်ုပ်၏ အတလေ့အကဌုံကို မျဟဝေလိုပါသည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

ဘာကို လိုချင်တာလဲ။

Grafana — ခလဲခဌမ်သစိတ်ဖဌာမဟုပဌဿနာမျာသကိုဖဌေရဟင်သရန် သို့မဟုတ် မည်သည့်စနစ်၏ပဌဿနာမျာသကို စောင့်ကဌည့်စစ်ဆေသရန်အတလက် အစလမ်သထက်သောကိရိယာတစ်ခုဖဌစ်သည်။ ၎င်သ၏အခဌေခံဖလဲ့စည်သပုံတလင်၊ ၎င်သသည် Grafana ဝဘ်ဆာဗာပါရဟိသော virtual machine တစ်ခုဖဌစ်သလို ခလဲခဌမ်သစိတ်ဖဌာမဟုကိုအခဌေခံမည့် ဒေတာအတလဲတစ်ခု (ClickHouse၊ InfluxDB စသည်ဖဌင့်) ပါရဟိသည်။

ဝဘ်ဆာဗာဖဌင့် virtual machine တစ်ခုကို စတင်ပဌီသနောက်၊ သင်သည် ၎င်သ၏ host သို့သလာသကာ လဟပသော UI ကို ရယူနိုင်ပဌီသ၊ နောက်ထပ် အလုပ်အတလက် အရင်သအမဌစ်မျာသအဖဌစ် ဒေတာဘေ့စ်မျာသကို သတ်မဟတ်ခဌင်သ၊ ဒက်ရဟ်ဘုတ်မျာသနဟင့် ဂရပ်မျာသကို ဖန်တီသနိုင်သည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အခဌေခံဗာသရဟင်သတလင် သိသာထင်ရဟာသသော အာသနည်သချက်တစ်ခုရဟိသည် - ၎င်သသည် အမဟာသခံနိုင်ရည်လုံသဝမရဟိပါ။ ဆိုလိုသည်မဟာ၊ အပလီကေသရဟင်သ၏လုပ်ဆောင်နိုင်စလမ်သတစ်ခုလုံသသည် virtual machine တစ်ခု၏ရဟင်သန်နိုင်စလမ်သပေါ်တလင်မူတည်သည်။ UI ကို တစ်ချိန်တည်သတလင် လူ 10 ယောက်က ငဌင်သဆိုပါက သို့မဟုတ် ပဌဿနာမျာသ ပေါ်ပေါက်လာမည်ဖဌစ်သည်။

၎င်သတို့ကို ရိုသရဟင်သစလာဖဌေရဟင်သနိုင်သည်- သင်လိုအပ်သည်မဟာ... ဝဘ်ဆာဗာတစ်ခုဖဌင့် ထပ်တူထပ်မျဟသော virtual machines အမျာသအပဌာသကို ဖဌန့်ကျက်ပဌီသ L3 balancer အောက်တလင် ထာသလိုက်ပါ။ ဒါပေမယ့် ဒီမဟာ အာသလုံသက ဒီလောက်ရဟင်သနေတာ မဟုတ်ဘူသ။ Grafana သည် အသုံသပဌုသူဆက်တင်မျာသ (ဒေတာဘေ့စ်မျာသ၊ ဒက်ရဟ်ဘုတ်မျာသ၊ ဂရပ်မျာသစသည်ဖဌင့်) ကို ၎င်သ၏ virtual machine ဒစ်ပေါ်တလင် တိုက်ရိုက်သိမ်သဆည်သသည်။ ထို့ကဌောင့်၊ ကျလန်ုပ်တို့သည် UI ရဟိ ဆက်တင်အချို့ကို ပဌောင်သလဲပါက၊ ကပဌောင်သလဲမဟုမျာသသည် ကျလန်ုပ်တို့ကို ချိန်ခလင်လျဟာပေသပို့သည့် virtual machine ပေါ်တလင်သာ ထင်ဟပ်စေမည်ဖဌစ်သည်။ ၎င်သသည် ကျလန်ုပ်တို့၏ အပလီကေသရဟင်သအတလက် မကိုက်ညီသော ဆက်တင်မျာသကို ဖဌစ်ပေါ်စေပဌီသ စတင်အသုံသပဌုခဌင်သနဟင့် အသုံသပဌုခဌင်သတလင် ပဌဿနာမျာသဖဌစ်စေသည်။

ကနေရာတလင် အခဌာသသော ဒေတာဘေ့စ်သည် ဥပမာ၊ MySQL သို့မဟုတ် ၎င်သ၏ ညီမျဟခဌင်သတို့ကို ကယ်တင်နိုင်မည်ဖဌစ်သည်။ သူသည် က "အပိုပစ္စည်သ" ဒေတာဘေ့စ်တလင် အသုံသပဌုသူဆက်တင်မျာသကို သိမ်သဆည်သသင့်သည်ဟု Grafana အာသ ကျလန်ုပ်တို့ပဌောထာသသည်။ ထို့နောက်၊ စက်တစ်ခုစီတလင်တစ်ကဌိမ် ကဒေတာဘေ့စ်သို့ လမ်သကဌောင်သကို သတ်မဟတ်ရန်နဟင့် virtual machines တစ်ခုခုရဟိ အခဌာသအသုံသပဌုသူဆက်တင်မျာသအာသလုံသကို တည်သဖဌတ်ရန်၊ ၎င်သတို့သည် အခဌာသသူမျာသထံ တိုသချဲ့မည်ဖဌစ်သည်။

ကသည်မဟာ နောက်ဆုံသအပလီကေသရဟင်သအခဌေခံအဆောက်အအုံ၏ ပုံကဌမ်သဖဌစ်သည်-

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

လက်ဖဌင့်မဌဟောက်ရန် သင်ယူကဌပါစို့

MySQL နဟင့် ClickHouse

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

ကနေရာတလင် Yandex.Cloud သည် L3 balancers၊ ClickHouse နဟင့် MySQL ကို စီမံခန့်ခလဲသည့် ဝန်ဆောင်မဟုမျာသအဖဌစ် ပံ့ပိုသပေသပါသည်။ အသုံသပဌုသူသည် ကန့်သတ်ချက်မျာသကို သတ်မဟတ်ရန်သာ လိုအပ်ပဌီသ ပလက်ဖောင်သသည် အရာအာသလုံသကို အလုပ်အဖဌစ်သို့ ရောက်သည်အထိ စောင့်ပါ။

စာရင်သသလင်သပဌီသ cloud တစ်ခုနဟင့် ငလေပေသချေမဟုအကောင့်တစ်ခု ဖန်တီသခဲ့သည်။ ထို့နောက်၊ ကျလန်ုပ်သည် cloud သို့သလာသ၍ အနည်သငယ်မျဟသော ဆက်တင်မျာသဖဌင့် MySQL နဟင့် ClickHouse အစုအဝေသမျာသကို စနစ်ထည့်သလင်သပါ။ သူတို့ လဟုပ်လဟုပ်ရဟာသရဟာသဖဌစ်လာတဲ့အထိ ငါစောင့်ခဲ့တယ်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အစုအဝေသတစ်ခုစီတလင် ဒေတာဘေ့စ်တစ်ခုဖန်တီသရန်နဟင့် လော့ဂ်အင်နဟင့် စကာသဝဟက်ကို အသုံသပဌု၍ ၎င်သထံသို့ ဝင်ရောက်ခလင့်ကို စီစဉ်သတ်မဟတ်ရန်လည်သ သတိရရန် လိုအပ်ပါသည်။ ကနေရာတလင် အသေသစိတ်အချက်အလက်မျာသကို ကျလန်ုပ်မဖော်ပဌထာသပါ - အရာအာသလုံသသည် အင်တာဖေ့စ်တလင် သိသာထင်ရဟာသပါသည်။

ရဟင်သရဟင်သလင်သလင်သမဟုတ်သောအသေသစိတ်အချက်မဟာ ကဒေတာဘေ့စ်မျာသတလင် ၎င်သတို့၏အမဟာသကို ခံနိုင်ရည်ရဟိစေရန် သေချာစေသော host အမျာသအပဌာသရဟိသည်။ သို့သော်၊ Grafana သည် ၎င်သနဟင့်အလုပ်လုပ်သောဒေတာဘေ့စ်တစ်ခုစီအတလက် host တစ်ခုအတိအကျလိုအပ်သည်။ အကဌာကဌီသဖတ်တယ်။ စာရလက်စာတမ်သ တိမ်တလေက ကျလန်တော့်ကို ဆုံသဖဌတ်ချက်ချခိုင်သတယ်။ မျိုသစိတ်၏အိမ်ရဟင်ထလက်လဟည့် c-<cluster_id>.rw.mdb.yandexcloud.net သက်ဆိုင်ရာ ID ဖဌင့် အစုအဝေသ၏ လက်ရဟိအသုံသပဌုနေသော မာစတာအိမ်ရဟင်ထံသို့ မဌေပုံဆလဲထာသသည်။ ဒါက Grafana ကိုပေသမယ်။

ဝဘ်ဆာဗာ

ယခုအခါ ၎င်သသည် ဝဘ်ဆာဗာသို့ ရောက်ရဟိနေပဌီဖဌစ်သည်။ Linux ဖဌင့် ပုံမဟန် virtual machine တစ်ခုကို မဌဟင့်တင်ပဌီသ ၎င်သတလင် Grafana ကို ကိုယ်တိုင်ပဌင်ဆင်ကဌပါစို့။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

ssh မဟတဆင့်ချိတ်ဆက်ပဌီသ လိုအပ်သော packages မျာသကို ထည့်သလင်သကဌပါစို့။

sudo apt-get install -y apt-transport-https software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

ထို့နောက် systemctl အောက်တလင် Grafana ကို run ပဌီသ ClickHouse နဟင့်အလုပ်လုပ်ရန်အတလက် plugin ကိုထည့်သလင်သကဌပါစို့ (ဟုတ်ကဲ့၊ ၎င်သကိုအခဌေခံအထုပ်တလင်မထည့်သလင်သပါ) ။

sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

ဒါပါပဲ၊ ရိုသရဟင်သတဲ့ command နဲ့ ပဌီသသလာသပါပဌီ။

sudo service grafana-server start

ဝဘ်ဆာဗာကို စတင်ပါမည်။ ယခု သင်သည် ဘရောက်ဆာရဟိ virtual machine ၏ ပဌင်ပ IP လိပ်စာကို ရိုက်ထည့်နိုင်ပဌီသ port 3000 ကို သတ်မဟတ်ပဌီသ လဟပသော Grafana UI ကို ကဌည့်ရဟုနိုင်ပါသည်။
နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

သို့သော် Grafana ကိုမသတ်မဟတ်မီ၊ ဆက်တင်မျာသကိုထိုနေရာတလင်သိမ်သဆည်သရန်အတလက် MySQL သို့လမ်သကဌောင်သကိုပဌောပဌရန်မမေ့ပါနဟင့်။

Grafana ဝဘ်ဆာဗာ၏ဖလဲ့စည်သပုံတစ်ခုလုံသသည် ဖိုင်တလင်ရဟိသည်။ /etc/grafana/grafana.ini. လိုအပ်သောစာကဌောင်သသည် ကကဲ့သို့ဖဌစ်သည်-

;url =

ကျလန်ုပ်တို့သည် host ကို MySQL အစုအဝေသတလင်သတ်မဟတ်ထာသသည်။ တူညီသောဖိုင်တလင် အထက်ပုံရဟိ Grafana ကိုဝင်ရောက်ရန်အတလက် လော့ဂ်အင်နဟင့် စကာသဝဟက်ပါရဟိသည်၊ ပုံမဟန်အာသဖဌင့် နဟစ်ခုလုံသတူညီပါသည်။ admin.

သင်သည် sed အမိန့်မျာသကိုသုံသနိုင်သည်။

sudo sed -i "s#.*;url =.*#url = mysql://${MYSQL_USERNAME}:${MYSQL_PASSWORD}@${MYSQL_CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${GRAFANA_USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${GRAFANA_PASSWORD}#" /etc/grafana/grafana.ini

ဝဘ်ဆာဗာကို ပဌန်လည်စတင်ရန် အချိန်ကျရောက်ပဌီဖဌစ်သည်။

sudo service grafana-server restart

ယခု Grafana UI တလင် ClickHouse ကို DataSource အဖဌစ် သတ်မဟတ်ပါမည်။

အောက်ပါဆက်တင်မျာသဖဌင့် အလုပ်ဖလဲ့စည်သမဟုပုံစံကို ကျလန်ုပ်အောင်မဌင်နိုင်သည်-

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

ငါ URL အဖဌစ်သတ်မဟတ်ထာသသည်။ https://c-<cluster_id>.rw.mdb.yandexcloud.net:8443

အာသလုံသ! ကျလန်ုပ်တို့တလင် CH နဟင့် MySQL နဟင့် ချိတ်ဆက်ထာသသော ဝဘ်ဆာဗာတစ်ခုဖဌင့် အလုပ်လုပ်သော virtual machine တစ်ခုရဟိသည်။ သင်သည် ဒေတာအစုံကို ClickHouse သို့ အပ်လုဒ်လုပ်ပဌီသ ဒက်ရဟ်ဘုတ်မျာသ တည်ဆောက်နိုင်ပါပဌီ။ သို့သော်လည်သ ကျလန်ုပ်တို့သည် ကျလန်ုပ်တို့၏ ရည်မဟန်သချက်ကို မအောင်မဌင်သေသဘဲ ပဌည့်စုံသော အခဌေခံအဆောက်အညကို အသုံသမပဌုရသေသပါ။

Packer ပါ

Yandex.Cloud သည် သင့်အာသ ရဟိပဌီသသာသ virtual machine တစ်ခု၏ ဒစ်ပုံတစ်ပုံကို ဖန်တီသနိုင်စေပဌီသ ၎င်သ၏အခဌေခံပေါ်တလင် - တစ်ခုနဟင့်တစ်ခု တူညီသည့် မည်သည့်စက်အရေအတလက်ကိုမဆို ပဌုလုပ်နိုင်သည်။ ကသည်မဟာ ကျလန်ုပ်တို့အသုံသပဌုမည့်အရာဖဌစ်သည်။ ပုံအာသ အဆင်ပဌေစလာ စုစည်သရန် ကိရိယာကို ယူပါ။ Packer ပါ HashiCorp မဟ ပုံအာသ စုစည်သရန်အတလက် ညလဟန်ကဌာသချက်မျာသနဟင့်အတူ json ဖိုင်ကို ထည့်သလင်သရန် လိုအပ်သည်။

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

လက်သမာသ

{
"builders": [
    {
      "type": "yandex",
      "endpoint": "{{user `endpoint`}}",
      "folder_id": "<folder_id>",
      "subnet_id": "{{user `subnet_id`}}",
      "zone": "{{user `zone`}}",
      "labels": {},
      "use_ipv4_nat": true,
      "use_internal_ip": false,
      "service_account_key_file": "<service_account_key_file>",
      "image_name": "grafana-{{timestamp}}",
      "image_family": "grafana",
      "image_labels": {},
      "image_description": "GRAFANA",
      "source_image_family": "ubuntu-1804-lts",
      "disk_size_gb": 3,
      "disk_type": "network-hdd",
      "ssh_username": "ubuntu"
    }
  ],
...
}

ကပုံစံပလိတ်တလင်၊ သင်သည် ရုပ်ပုံဖန်တီသလိုသည့် cloud ရဟိ ကဏ္ဍ၏ identifier ကို သတ်မဟတ်ရန်နဟင့် ကကဏ္ဍတလင် ယခင်က ဖန်တီသထာသသည့် ဝန်ဆောင်မဟုအကောင့်မဟ သော့မျာသဖဌင့် ဖိုင်ဆီသို့ လမ်သကဌောင်သကို သတ်မဟတ်ရန် လိုအပ်သည်။ သက်ဆိုင်ရာကဏ္ဍရဟိ ဖိုင်တစ်ခုပုံစံဖဌင့် ဝန်ဆောင်မဟုအကောင့်မျာသနဟင့် သော့မျာသဖန်တီသခဌင်သအကဌောင်သ ပိုမိုဖတ်ရဟုနိုင်ပါသည်။ စာရလက်စာတမ်သ.

ကဖလဲ့စည်သပုံသည် ပလပ်ဖောင်သပေါ်တလင် အခဌေခံ၍ ဒစ်ခ်ရုပ်ပုံတည်ဆောက်မည်ဟု ဆိုသည်။ ubuntu-1804-ltsပုံမိသာသစုရဟိ သင့်လျော်သော အသုံသပဌုသူကဏ္ဍတလင် ထည့်သလင်သပါ။ GRAFANA နာမည်အောက်မဟာ grafana-{{timestamp}}.

စီမံပေသသည်။

ယခု configuration ၏ ပိုစိတ်ဝင်စာသစရာကောင်သသည့် အပိုင်သကို လာပါပဌီ။ ၎င်သသည် ၎င်သ၏အခဌေအနေကို ဒစ်ခ်ရုပ်ပုံအဖဌစ် အေသခဲခဌင်သမပဌုမီ virtual machine တလင် လုပ်ဆောင်ရန် လိုအပ်သည့် လုပ်ဆောင်ချက်မျာသ၏ အစီအရီကို ဖော်ပဌပါမည်။

{
...,
"provisioners": [
    {
            "type": "shell",
            "pause_before": "5s",
            "scripts": [
                "prepare-ctg.sh"
            ]
        },
    {
            "type": "file",
            "source": "setup.sh",
            "destination": "/opt/grafana/setup.sh"
        },
        {
            "type": "shell",
        "execute_command": "sudo {{ .Vars }} bash '{{ .Path }}'",
            "pause_before": "5s",
            "scripts": [
                "install-packages.sh",
                "grafana-setup.sh",
                "run-setup-at-reboot.sh"
        ]
        }
  ]
}

ကနေရာတလင် လုပ်ဆောင်မဟုအာသလုံသကို အဆင့် ၃ ဆင့်ခလဲထာသသည်။ ပထမအဆင့်တလင်၊ auxiliary directory ကိုဖန်တီသပေသသည့် ရိုသရဟင်သသော script ကို execute လုပ်ပါသည်။

ပဌင်ဆင်-ctg.sh-

#!/bin/bash
sudo mkdir -p /opt/grafana
sudo chown -R ubuntu:ubuntu /opt/grafana

နောက်အဆင့်တလင်၊ ကျလန်ုပ်တို့သည် virtual machine ကိုစတင်ပဌီသနောက်ချက်ချင်သစတင်ရန်လိုအပ်မည့်ကလမ်သညလဟန်တလင် script တစ်ခုထာသရဟိပါမည်။ က script သည် Grafana config တလင်မဟတ်ပုံတင်ရန်လိုအပ်သောအသုံသပဌုသူ variable မျာသကိုထည့်သလင်သပဌီသဝဘ်ဆာဗာကိုပဌန်လည်စတင်မည်ဖဌစ်သည်။

setup.sh-

#!/bin/bash
CLUSTER_ID="<cluster_id>"
USERNAME="<username>"
PASSWORD="<password>"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@c-${CLUSTER_ID}.rw.mdb.yandexcloud.net#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

ဒါပဌီသရင် လုပ်စရာ ၃ ခုကျန်သေသတယ်-
1) အထုပ်မျာသကို install လုပ်ပါ။
2) systemctl အောက်တလင် Grafana ကို run ပဌီသ ClickHouse plugin ကို ထည့်သလင်သပါ။
3) virtual machine ကိုဖလင့်ပဌီသနောက် setup.sh script ကို launch တန်သစီတလင်ထည့်ပါ။

install-packages.sh-

#!/bin/bash
sudo systemd-run --property='After=apt-daily.service apt-daily-upgrade.service' --wait /bin/true
sudo apt-get install -y apt-transport-https
sudo apt-get install -y software-properties-common wget
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
sudo add-apt-repository "deb https://packages.grafana.com/enterprise/deb stable main"
sudo apt-get update
sudo apt-get install -y grafana-enterprise 

grafana-setup.sh-

#!/bin/bash
sudo systemctl start grafana-server
sudo systemctl enable grafana-server
sudo grafana-cli plugins install vertamedia-clickhouse-datasource

run-setup-at-reboot.sh-

#!/bin/bash
chmod +x /opt/grafana/setup.sh
cat > /etc/cron.d/first-boot <<EOF
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
@reboot root /bin/bash /opt/grafana/setup.sh > /var/log/yc-setup.log 2>&1
EOF
chmod +x /etc/cron.d/first-boot;

ယခုကျန်ရဟိသောအရာအာသလုံသသည် Packer ကိုလည်ပတ်ရန်နဟင့်သတ်မဟတ်ထာသသောအပိုင်သတလင်ထည့်ထာသသော output image ကိုရယူရန်ဖဌစ်သည်။ virtual machine တစ်ခုကို ဖန်တီသသောအခါ၊ သင်သည် ၎င်သကို boot disk အဖဌစ် ရလေသချယ်နိုင်ပဌီသ စတင်ပဌီသနောက်တလင် အသင့်လုပ်ထာသသော Grafana ဝဘ်ဆာဗာကို ရရဟိမည်ဖဌစ်သည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။
နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

ဥပမာ အုပ်စုနဟင့် ချိန်ခလင်လျဟာ

ကျလန်ုပ်တို့တလင် အလာသတူ Grafana ဝဘ်ဆာဗာမျာသစလာကို ဖန်တီသနိုင်စေမည့် ဒစ်ပုံတစ်ပုံရဟိသည်နဟင့်တစ်ပဌိုင်နက်၊ ကျလန်ုပ်တို့သည် ဥပမာအုပ်စုတစ်ခုကို ဖန်တီသနိုင်သည်။ Yandex.Cloud ပလပ်ဖောင်သတလင်၊ ကအသုံသအနဟုန်သသည် တူညီသောဝိသေသလက္ခဏာမျာသရဟိသော virtual machines မျာသသမဂ္ဂကို ရည်ညလဟန်သသည်။ သာဓကအဖလဲ့ကို ဖန်တီသသောအခါ၊ ကအုပ်စုရဟိ စက်အာသလုံသ၏ ရဟေ့ပဌေသပုံစံကို စီစဉ်သတ်မဟတ်ထာသပဌီသ၊ ထို့နောက် အုပ်စုကိုယ်တိုင်၏ ဝိသေသလက္ခဏာမျာသ (ဥပမာ၊ အနိမ့်ဆုံသနဟင့် အမျာသဆုံသ တက်ကဌလသည့် စက်အရေအတလက်)။ လက်ရဟိနံပါတ်သည် ကသတ်မဟတ်ချက်မျာသနဟင့် မကိုက်ညီပါက၊ ဥပမာအဖလဲ့ကိုယ်တိုင်က မလိုအပ်သော စက်မျာသကို ဖယ်ရဟာသမည် သို့မဟုတ် ၎င်သ၏ကိုယ်ပိုင်ပုံတလင် အသစ်မျာသကို ဖန်တီသမည်ဖဌစ်သည်။

ကျလန်ုပ်တို့၏လုပ်ငန်သတာဝန်တစ်စိတ်တစ်ပိုင်သအနေဖဌင့်၊ ကျလန်ုပ်တို့သည် ယခင်ဖန်တီသထာသသော ဒစ်ခ်ပုံမဟ ထုတ်ပေသမည့် ဝဘ်ဆာဗာမျာသ၏ instance အုပ်စုတစ်ခုကို ဖန်တီသပါမည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အမဟန်တကယ် မဟတ်သာသစရာမဟာ နောက်ဆုံသ သာဓက အုပ်စု တပ်ဆင်ခဌင်သ ဖဌစ်သည်။ Load Balancer နဟင့် ပေါင်သစည်သထာသသော ပစ်မဟတ်အုပ်စုသည် ခလုတ်အချို့ကို နဟိပ်ခဌင်သဖဌင့် ကအဖလဲ့၏ virtual machines မျာသထိပ်ရဟိ L3 balancer ကို စီစဉ်သတ်မဟတ်ရန် သင့်အာသ ကူညီပေသပါမည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

ချိန်ခလင်လျဟာကို စနစ်ထည့်သလင်သသောအခါတလင်၊ ကျလန်ုပ်သည် အရေသကဌီသသော အချက်နဟစ်ချက်ကို အကောင်အထည်ဖော်ခဲ့သည်-

  1. ကျလန်ုပ်သည် ချိန်ခလင်လျဟာအာသ port 80 တလင် အသုံသပဌုသူအသလာသအလာကိုလက်ခံပဌီသ Grafana နေထိုင်သည့်နေရာအတိအကျဖဌစ်သော virtual machines ၏ port 3000 သို့ ပဌန်ညလဟန်သထာသပါသည်။
  2. ကျလန်ုပ်သည် ၎င်သတို့အာသ port 3000 သို့ ping လုပ်ခဌင်သဖဌင့် စက်မျာသ၏ ရဟင်သန်နိုင်စလမ်သကို စစ်ဆေသခဌင်သအာသ စနစ်ထည့်သလင်သပါသည်။

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အကျဉ်သချုပ်

နောက်ဆုံသတလင်၊ ကျလန်ုပ်တို့သည် အလိုရဟိသော အပလီကေသရဟင်သအခဌေခံအဆောက်အအုံကို ကိုယ်တိုင်အသုံသချနိုင်ခဲ့ပဌီသ ယခုအခါတလင် ကျလန်ုပ်တို့တလင် အလလန်ခံနိုင်ရည်ရဟိသော Grafana ဝန်ဆောင်မဟုတစ်ခုရဟိသည်။ ဒေတာအစုံကို ၎င်သသို့တင်ရန်အတလက် အပလီကေသရဟင်သနဟင့် ClickHouse အစုအဝေသ၏ host ကိုဝင်ရောက်သည့်အချက်အနေဖဌင့် Balancer ၏ IP လိပ်စာကို သိရန်လိုအပ်ပါသည်။

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

Terraform ပေါင်သစပ်မဟု

HashiCorp ဟုခေါ်သော ကိရိယာကို ထပ်မံအသုံသပဌုပါမည်။ Terraform. အသုံသပဌုသူမဟပေသပို့သော variable အမျာသအပဌာသအပေါ်အခဌေခံ၍ ခလုတ်တစ်ခုကိုနဟိပ်ခဌင်သဖဌင့် အပလီကေသရဟင်သအခဌေခံအဆောက်အအုံတစ်ခုလုံသကို အသုံသပဌုနိုင်စေရန် ကူညီပေသပါမည်။ မတူညီသောအသုံသပဌုသူမျာသ၏ မတူညီသောကဏ္ဍမျာသတလင် အကဌိမ်ပေါင်သမျာသစလာ လုပ်ဆောင်နိုင်သော ဟင်သချက်နည်သကို ရေသကဌပါစို့။

Terraform နဟင့်လုပ်ဆောင်မဟုအာသလုံသသည် configuration file ကိုရေသသာသခဌင်သမဟဆင်သသက်လာသည် (*.tf) အခဌေခံအဆောက်အညမျာသ ဖန်တီသပေသခဌင်သ။

ကိန်သရဟင်မျာသ

ဖိုင်၏အစတလင်၊ ကျလန်ုပ်တို့သည် အနာဂတ်အခဌေခံအဆောက်အအုံကို မည်သည့်နေရာနဟင့် မည်သို့အသုံသပဌုမည်ကို ဆုံသဖဌတ်သည့် variable မျာသပါရဟိသည်။

variable "oauth_token" {
    type = string
    default = "<oauth-token>"
}
variable "cloud_id" {
    type = string
    default = "<cloud-id>"
}
variable "folder_id" {
    type = string
    default = "<folder_id>"
}
variable "service_account_id" {
    type = string
    default = "<service_account_id>"
}
variable "image_id" {
    type = string
    default = "<image_id>"
}
variable "username" {
    type = string
    default = "<username>"
}
variable "password" {
    type = string
    default = "<password>"
}
variable "dbname" {
    type = string
    default = "<dbname>"
}
variable "public_key_path" {
    type = string
    default = "<path to ssh public key>"
}

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

outh_token - cloud သို့ဝင်ရောက်ရန် သင်္ကေတတစ်ခု။ ဖဌင့်မဟာယူနိုင်ပါသည်။ link ကို.
cloud_id — ကျလန်ုပ်တို့သည် အပလီကေသရဟင်သကို အသုံသပဌုမည့်နေရာတလင် cloud identifier ဖဌစ်သည်။
folder_id — အပလီကေသရဟင်သကို ဖဌန့်ကျက်မည့်နေရာ အပိုင်သ အမဟတ်အသာသ
ဝန်ဆောင်မဟု_အကောင့်_id — cloud ၏သက်ဆိုင်ရာကဏ္ဍရဟိဝန်ဆောင်မဟုအကောင့်အမဟတ်အသာသ။
image_id — Packer ကို အသုံသပဌု၍ ရရဟိသော ဒစ်ခ်ရုပ်ပုံ၏ အထောက်အထာသ
အသုံသပဌုသူအမည် О စကာသဝဟက်ကို — ဒေတာဘေ့စ်မျာသနဟင့် Grafana ဝဘ်ဆာဗာနဟစ်ခုလုံသကိုဝင်ရောက်ရန် အသုံသပဌုသူအမည်နဟင့် စကာသဝဟက်
dbname — CH နဟင့် MySQL အစုအဝေသအတလင်သ ဒေတာဘေ့စ်အမည်
public_key_path — အမည်အောက်တလင် ချိတ်ဆက်အသုံသပဌုနိုင်သည့် သင်၏ အမျာသသူငဟာ ssh သော့ဖဌင့် ဖိုင်ဆီသို့ လမ်သကဌောင်သ ubuntu ဝဘ်ဆာဗာမျာသပါရဟိသော virtual machines မျာသသို့

ပံ့ပိုသသူ စနစ်ထည့်သလင်သခဌင်သ။

ယခုသင် Terraform ပံ့ပိုသပေသသူကို configure လုပ်ရန်လိုအပ်သည် - ကျလန်ုပ်တို့၏ကိစ္စတလင်၊ Yandex:

provider "yandex" {
  token     = var.oauth_token
  cloud_id  = var.cloud_id
  folder_id = var.folder_id
  zone      = "ru-central1-a"
}

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

ကလန်ရက်နဟင့် အစုအဖလဲ့မျာသ

ယခုကျလန်ုပ်တို့၏အခဌေခံအဆောက်အည၏ဒဌပ်စင်မျာသဆက်သလယ်မည့်ကလန်ရက်တစ်ခု၊ subnets သုံသခု (ဒေသတစ်ခုစီတလင်တစ်ခု) နဟင့် CH နဟင့် MySQL အစုအဝေသမျာသကိုမဌဟင့်တင်ပါမည်။


resource "yandex_vpc_network" "grafana_network" {}

resource "yandex_vpc_subnet" "subnet_a" {
  zone           = "ru-central1-a"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.1.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_b" {
  zone           = "ru-central1-b"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.2.0.0/24"]
}

resource "yandex_vpc_subnet" "subnet_c" {
  zone           = "ru-central1-c"
  network_id     = yandex_vpc_network.grafana_network.id
  v4_cidr_blocks = ["10.3.0.0/24"]
}

resource "yandex_mdb_clickhouse_cluster" "ch_cluster" {
  name        = "grafana-clickhouse"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id

  clickhouse {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 16
    }
  }

  zookeeper {
    resources {
      resource_preset_id = "s2.micro"
      disk_type_id       = "network-ssd"
      disk_size          = 10
    }
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
    }
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "CLICKHOUSE"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }

  host {
    type      = "ZOOKEEPER"
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

resource "yandex_mdb_mysql_cluster" "mysql_cluster" {
  name        = "grafana_mysql"
  environment = "PRODUCTION"
  network_id  = yandex_vpc_network.grafana_network.id
  version     = "8.0"

  resources {
    resource_preset_id = "s2.micro"
    disk_type_id       = "network-ssd"
    disk_size          = 16
  }

  database {
    name = var.dbname
  }

  user {
    name     = var.username
    password = var.password
    permission {
      database_name = var.dbname
      roles         = ["ALL"]
    }
  }

  host {
    zone      = "ru-central1-a"
    subnet_id = yandex_vpc_subnet.subnet_a.id
  }
  host {
    zone      = "ru-central1-b"
    subnet_id = yandex_vpc_subnet.subnet_b.id
  }
  host {
    zone      = "ru-central1-c"
    subnet_id = yandex_vpc_subnet.subnet_c.id
  }
}

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

ဝဘ်ဆာဗာမျာသ

တူညီတဲ့ စိတ်ဓာတ်နဲ့ ရဟေ့ဆက်နိုင်မယ်လို့ ထင်ရပေမယ့် ခက်ခက်ခဲခဲ ကဌုံတလေ့ခဲ့ရပါတယ်။ ၎င်သမတိုင်မီတလင်၊ ကျလန်ုပ်သည် MySQL အစုအဝေသကို ညသစလာပဌုစုပျိုသထောင်ပဌီသမဟသာ ၎င်သ၏ ID ကိုသိ၍ လိုအပ်သောဖလဲ့စည်သမဟုပုံစံဖဌင့် ဒစ်ခ်ရုပ်ပုံတစ်ပုံကို စုဆောင်သခဲ့ပဌီသ၊ အစုအဝေသသို့ လက်ခံသတ်မဟတ်ပေသခဲ့သည်။ သို့သော် ယခု ပုံတည်ဆောက်ချိန်တလင် အပါအဝင် Terraform မစတင်မီ အစုလိုက် ID ကို ကျလန်ုပ်တို့ မသိပါ။ ထို့ကဌောင့် အောက်ပါတို့ကို အာသကိုသသင့်ပါသည်။ လဟည့်ကလက်.

Amazon ၏ မက်တာဒေတာဝန်ဆောင်မဟုကို အသုံသပဌုခဌင်သဖဌင့် ကျလန်ုပ်တို့သည် လက်ခံပဌီသ လုပ်ဆောင်ပေသမည့် virtual machine သို့ ကန့်သတ်ချက်အချို့ကို ပေသပို့ပါမည်။ စတင်ပဌီသနောက် Terraform ဖိုင်တလင် အသုံသပဌုသူသတ်မဟတ်ထာသသည့် MySQL အစုအဝေသနဟင့် အသုံသပဌုသူအမည်-စကာသဝဟက်နောက်ကလယ်ရဟိ မက်တာဒေတာသို့ သလာသရန်အတလက် ကျလန်ုပ်တို့သည် စက်ကို လိုအပ်ပါသည်။ ဖိုင်ရဲ့ အကဌောင်သအရာတလေကို နည်သနည်သပဌောင်သကဌည့်ရအောင် setup.shvirtual machine ကိုဖလင့်သောအခါတလင်အလုပ်လုပ်သည်။

setup.sh-

#!/bin/bash
CLUSTER_URI="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/mysql_cluster_uri)"
USERNAME="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/username)"
PASSWORD="$(curl -H 'Metadata-Flavor:Google' http://169.254.169.254/computeMetadata/v1/instance/attributes/password)"
sudo sed -i "s#.*;url =.*#url = mysql://${USERNAME}:${PASSWORD}@${CLUSTER_URI}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_user =.*#admin_user = ${USERNAME}#" /etc/grafana/grafana.ini
sudo sed -i "s#.*;admin_password =.*#admin_password = ${PASSWORD}#" /etc/grafana/grafana.ini
sudo service grafana-server restart

Instance အုပ်စုနဟင့် balancer

ဒစ်ခ်ရုပ်ပုံအသစ်ကို ပဌန်လည်တည်ဆောက်ပဌီသနောက်၊ ကျလန်ုပ်တို့သည် နောက်ဆုံသတလင် Terraform အတလက် ကျလန်ုပ်တို့၏ဖိုင်ကို ထည့်နိုင်သည်။

ကျလန်ုပ်တို့သည် ရဟိပဌီသသာသဒစ်ပုံတစ်ပုံကို အသုံသပဌုလိုကဌောင်သ ညလဟန်ပဌကဌပါစို့။

data "yandex_compute_image" "grafana_image" {
  image_id = var.image_id
}

အခု ဥပမာ အဖလဲ့တစ်ခုကို ဖန်တီသလိုက်ရအောင်။

resource "yandex_compute_instance_group" "grafana_group" {
  name               = "grafana-group"
  folder_id          = var.folder_id
  service_account_id = var.service_account_id
  instance_template {
    platform_id = "standard-v1"
    resources {
      memory = 1
      cores  = 1
    }
    boot_disk {
      mode = "READ_WRITE"
      initialize_params {
        image_id = data.yandex_compute_image.grafana_image.id
        size     = 4
      }
    }
    network_interface {
      network_id = yandex_vpc_network.grafana_network.id
      subnet_ids = [yandex_vpc_subnet.subnet_a.id, yandex_vpc_subnet.subnet_b.id, yandex_vpc_subnet.subnet_c.id]
      nat = "true"
    }
    metadata = {
      mysql_cluster_uri = "c-${yandex_mdb_mysql_cluster.mysql_cluster.id}.rw.mdb.yandexcloud.net:3306/${var.dbname}"
      username = var.username
      password = var.password
      ssh-keys = "ubuntu:${file("${var.public_key_path}")}"
    }
    network_settings {
      type = "STANDARD"
    }
  }

  scale_policy {
    fixed_scale {
      size = 6
    }
  }

  allocation_policy {
    zones = ["ru-central1-a", "ru-central1-b", "ru-central1-c"]
  }

  deploy_policy {
    max_unavailable = 2
    max_creating    = 2
    max_expansion   = 2
    max_deleting    = 2
  }

  load_balancer {
    target_group_name = "grafana-target-group"
  }
}

၎င်သကို မက်တာဒေတာသို့ ကျလန်ုပ်တို့ မည်သို့ပေသပို့သည်ကို ဂရုပဌုထိုက်သည်။ cluster_uri, username О password. ၎င်သသည် စတင်ချိန်တလင် virtual machine မဟထုတ်ယူပဌီသ Grafana config တလင်ထည့်သလင်သမည်ဖဌစ်သည်။

ချိန်ခလင်လျဟာပေါ် မူတည်ပါတယ်။

resource "yandex_lb_network_load_balancer" "grafana_balancer" {
  name = "grafana-balancer"

  listener {
    name = "grafana-listener"
    port = 80
    target_port = 3000
    external_address_spec {
      ip_version = "ipv4"
    }
  }

  attached_target_group {
    target_group_id = yandex_compute_instance_group.grafana_group.load_balancer.0.target_group_id

    healthcheck {
      name = "healthcheck"
      tcp_options {
        port = 3000
      }
    }
  }
}

သကဌာသအနည်သငယ်

နည်သနည်သပဲကျန်တော့တယ်။ အခဌေခံအဆောက်အအုံကို အသုံသပဌုပဌီသနောက်၊ သင်သည် Grafana UI သို့သလာသ၍ ဒေတာအရင်သအမဌစ်တစ်ခုအဖဌစ် CH အစုအဝေသ (ID ကို ရယူရန် လိုအပ်နေသေသသော ID) ကို ကိုယ်တိုင်ထည့်သလင်သရမည်ဖဌစ်သည်။ သို့သော် Terraform သည် cluster ID ကိုသိသည်။ ဒီကိစ္စကို အကောင် အထည်ဖော်ဖို့ သူ့ကို အပ်နဟံကဌပါစို့။

ဝန်ဆောင်မဟုပေသသူအသစ်ကို ပေါင်သထည့်ကဌပါစို့ - Grafana နဟင့် ဟန်ချက်ညီသူ၏ IP လိပ်စာကို လက်ခံဆောင်ရလက်ပေသသူအဖဌစ် ပေသလိုက်ပါ။ Terraform သည် ၎င်သ၏ Balancer မဟဆုံသဖဌတ်သည့်စက်တလင် MySQL တလင်ကဌီသထလာသမည်ဖဌစ်ပဌီသ၊ ထို့ကဌောင့်အခဌာသစက်မျာသအာသလုံသတလင် Terraform မဟပဌုလုပ်သောပဌောင်သလဲမဟုမျာသအာသလုံသ။

provider "grafana" {
  url  = "http://${[for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0}"
  auth = "${var.username}:${var.password}"
}

resource "grafana_data_source" "ch_data_source" {
  type          = "vertamedia-clickhouse-datasource"
  name          = "grafana"
  url           = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
  basic_auth_enabled = "true"
  basic_auth_username = var.username
  basic_auth_password = var.password
  is_default = "true"
  access_mode = "proxy"
}

ငါတို့ဆံပင်ကို ဖဌီသကဌရအောင်

ဟန်ချက်ညီသော IP လိပ်စာနဟင့် ClickHouse အစုအဝေသ၏ အိမ်ရဟင်ကို ပဌသကဌပါစို့

output "grafana_balancer_ip_address" {
  value = [for s in yandex_lb_network_load_balancer.grafana_balancer.listener: s.external_address_spec.0.address].0
}

output "clickhouse_cluster_host" {
  value = "https://c-${yandex_mdb_clickhouse_cluster.ch_cluster.id}.rw.mdb.yandexcloud.net:8443"
}

ပဌေသနိုင်သည်။

အာသလုံသ! ကျလန်ုပ်တို့၏ဖလဲ့စည်သပုံစနစ်ဖိုင်သည် အဆင်သင့်ဖဌစ်နေပဌီဖဌစ်ပဌီသ ကျလန်ုပ်တို့သည် အထက်ဖော်ပဌပါအရာအာသလုံသကို မဌဟင့်တင်ရန် Terraform အာသ ကိန်သရဟင်မျာသကို သတ်မဟတ်ခဌင်သဖဌင့် ကျလန်ုပ်တို့လုပ်နိုင်သည် ။ လုပ်ငန်သစဉ်တစ်ခုလုံသသည် ကျလန်ုပ်အာသ ၁၅ မိနစ်ခန့် ကဌာပါသည်။
အဆုံသတလင် လဟပသော မက်ဆေ့ချ်ကို သင်တလေ့နိုင်သည်-

Apply complete! Resources: 9 added, 0 changed, 0 destroyed.
Outputs:

clickhouse_cluster_host = https://c-c9q14ipa2ngadqsbp2iq.rw.mdb.yandexcloud.net:8443
grafana_balancer_ip_address = 130.193.50.25

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

နမူနာအဖဌစ် Grafana ကို အသုံသပဌု၍ Yandex.Cloud တလင် ဖဌန့်ဝေထာသသော ဝန်ဆောင်မဟုမျာသကို ဖဌန့်ကျက်ခဌင်သ။

အနဟစ်ချုပ်ရန်

ယခု Grafana ကို နမူနာအဖဌစ် အသုံသပဌုကာ၊ သင်တစ်ညသစီသည် Yandex.Cloud ပလပ်ဖောင်သပေါ်တလင် ကျယ်ဝန်သသော cloud တည်ဆောက်မဟုဖဌင့် အပလီကေသရဟင်သမျာသကို အသုံသချနိုင်သည်။ Packer နဟင့် Terraform ကဲ့သို့သော HashiCorp မဟ အထောက်အကူဖဌစ်စေသော ကိရိယာမျာသက သင့်အာသ ကအရာကို ကူညီပေသနိုင်သည်။ ဒီဆောင်သပါသလေသ အသုံသဝင်မယ်လို့ မျဟော်လင့်ပါတယ် :)

PS အောက်တလင်ကျလန်ုပ်သည်ကဆောင်သပါသတလင်ကျလန်ုပ်ပေသထာသသောအပိုင်သအစမျာသ၊ Packer နဟင့် Terraform အတလက်အဆင်သင့်လုပ်ထာသသောချက်ပဌုတ်နည်သမျာသကိုသင်ရဟာတလေ့နိုင်သည့် repository ၏လင့်ခ်ကို ပူသတလဲတင်ပဌပါမည်။

သိုလဟောင်မဟု

source: www.habr.com

မဟတ်ချက် Add