ইভেন্টর্কের সাথে Google ক্লাউডে ডেটাডগ মনিটরিং সতর্কতা (পর্ব 1)

১. ভূমিকা

cb762f29e9183a3f.png3c7ca8629bc25d9c.png

ইভেন্টআর্ক বিভিন্ন উৎস থেকে আসা ইভেন্টের সাথে গুগল ক্লাউড পরিষেবাগুলোকে সংযুক্ত করা সহজ করে তোলে। এটি আপনাকে ইভেন্ট-চালিত আর্কিটেকচার তৈরি করতে দেয়, যেখানে মাইক্রোসার্ভিসগুলো শিথিলভাবে সংযুক্ত এবং বিতরণকৃত থাকে। এটি আপনার জন্য ইভেন্ট গ্রহণ, বিতরণ, নিরাপত্তা, অনুমোদন এবং ত্রুটি-পরিচালনার দায়িত্বও পালন করে, যা ডেভেলপারদের কর্মদক্ষতা এবং অ্যাপ্লিকেশনের স্থিতিস্থাপকতা বৃদ্ধি করে।

ডেটাডগ হলো ক্লাউড অ্যাপ্লিকেশনের জন্য একটি মনিটরিং ও নিরাপত্তা প্ল্যাটফর্ম। এটি আপনার অ্যাপ্লিকেশন, পরিকাঠামো এবং থার্ড-পার্টি পরিষেবাগুলোকে পর্যবেক্ষণযোগ্য করে তুলতে এন্ড-টু-এন্ড ট্রেস, মেট্রিক্স এবং লগ একত্রিত করে।

এই প্রথম কোডল্যাবে, আপনি শিখবেন কিভাবে ইভেন্টআর্ক ব্যবহার করে একটি সাধারণ ডেটাডগ মনিটরিং অ্যালার্ট গুগল ক্লাউডে রাউট করতে হয়।

আপনি যা শিখবেন

  • Datadog প্রোভাইডারকে কীভাবে খুঁজে বের করবেন।
  • Datadog প্রোভাইডারের সাথে কীভাবে একটি চ্যানেল সেটআপ করবেন।
  • ইভেন্ট লগ করার জন্য কীভাবে একটি ওয়ার্কফ্লো তৈরি করবেন।
  • চ্যানেল ব্যবহার করে কীভাবে একটি ইভেন্টআর্ক ট্রিগার তৈরি করবেন।
  • কীভাবে একটি ডেটাডগ মনিটর তৈরি করবেন।
  • Datadog মনিটর, Eventarc ট্রিগার এবং ওয়ার্কফ্লো কীভাবে পরীক্ষা করবেন।

২. সেটআপ এবং প্রয়োজনীয়তা

স্ব-গতিতে পরিবেশ সেটআপ

  1. Google Cloud Console- এ সাইন-ইন করুন এবং একটি নতুন প্রজেক্ট তৈরি করুন অথবা বিদ্যমান কোনো প্রজেক্ট পুনরায় ব্যবহার করুন। যদি আপনার আগে থেকে Gmail বা Google Workspace অ্যাকাউন্ট না থাকে, তবে আপনাকে অবশ্যই একটি তৈরি করতে হবে।

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • প্রজেক্টের নামটি হলো এই প্রজেক্টের অংশগ্রহণকারীদের প্রদর্শিত নাম। এটি একটি ক্যারেক্টার স্ট্রিং যা গুগল এপিআই ব্যবহার করে না। আপনি যেকোনো সময় এটি আপডেট করতে পারেন।
  • সমস্ত গুগল ক্লাউড প্রজেক্ট জুড়ে প্রজেক্ট আইডি অবশ্যই অনন্য হতে হবে এবং এটি অপরিবর্তনীয় (একবার সেট করার পর পরিবর্তন করা যাবে না)। ক্লাউড কনসোল স্বয়ংক্রিয়ভাবে একটি অনন্য স্ট্রিং তৈরি করে; সাধারণত এটি কী তা নিয়ে আপনার মাথা ঘামানোর দরকার নেই। বেশিরভাগ কোডল্যাবে, আপনাকে প্রজেক্ট আইডি উল্লেখ করতে হবে (এটি সাধারণত PROJECT_ID হিসাবে চিহ্নিত করা হয়)। তৈরি করা আইডিটি আপনার পছন্দ না হলে, আপনি এলোমেলোভাবে আরেকটি তৈরি করতে পারেন। বিকল্পভাবে, আপনি নিজের আইডি দিয়ে চেষ্টা করে দেখতে পারেন যে সেটি উপলব্ধ আছে কিনা। এই ধাপের পরে এটি পরিবর্তন করা যাবে না এবং প্রজেক্টের পুরো সময়কাল জুড়ে এটি অপরিবর্তিত থাকবে।
  • আপনার অবগতির জন্য জানাচ্ছি যে, তৃতীয় একটি ভ্যালু রয়েছে, যা হলো প্রজেক্ট নাম্বার এবং কিছু এপিআই এটি ব্যবহার করে। ডকুমেন্টেশনে এই তিনটি ভ্যালু সম্পর্কে আরও বিস্তারিত জানুন।
  1. এরপর, ক্লাউড রিসোর্স/এপিআই ব্যবহার করার জন্য আপনাকে ক্লাউড কনসোলে বিলিং চালু করতে হবে। এই কোডল্যাবটি সম্পন্ন করতে খুব বেশি খরচ হওয়ার কথা নয়, এমনকি আদৌ কোনো খরচ নাও হতে পারে। এই টিউটোরিয়ালের পর যাতে কোনো বিলিং না হয়, সেজন্য রিসোর্সগুলো বন্ধ করতে আপনি আপনার তৈরি করা রিসোর্সগুলো অথবা পুরো প্রজেক্টটিই ডিলিট করে দিতে পারেন। গুগল ক্লাউডের নতুন ব্যবহারকারীরা ৩০০ মার্কিন ডলারের ফ্রি ট্রায়াল প্রোগ্রামের জন্য যোগ্য।

ক্লাউড শেল শুরু করুন

যদিও গুগল ক্লাউড আপনার ল্যাপটপ থেকে দূরবর্তীভাবে পরিচালনা করা যায়, এই কোডল্যাবে আপনি গুগল ক্লাউড শেল ব্যবহার করবেন, যা ক্লাউডে চালিত একটি কমান্ড লাইন পরিবেশ।

গুগল ক্লাউড কনসোল থেকে, উপরের ডানদিকের টুলবারে থাকা ক্লাউড শেল আইকনটিতে ক্লিক করুন:

55efc1aaa7a4d3ad.png

পরিবেশটি প্রস্তুত করতে এবং এর সাথে সংযোগ স্থাপন করতে মাত্র কয়েক মুহূর্ত সময় লাগবে। এটি শেষ হলে, আপনি এইরকম কিছু দেখতে পাবেন:

7ffe5cbb04455448.png

এই ভার্চুয়াল মেশিনটিতে আপনার প্রয়োজনীয় সমস্ত ডেভেলপমেন্ট টুলস লোড করা আছে। এটি একটি স্থায়ী ৫ জিবি হোম ডিরেক্টরি প্রদান করে এবং গুগল ক্লাউডে চলে, যা নেটওয়ার্ক পারফরম্যান্স ও অথেনটিকেশনকে ব্যাপকভাবে উন্নত করে। এই কোডল্যাবে আপনার সমস্ত কাজ একটি ব্রাউজারের মধ্যেই করা যাবে। আপনাকে কিছুই ইনস্টল করতে হবে না।

gcloud সেট আপ করুন

ক্লাউড শেলে আপনার প্রজেক্ট আইডি সেট করুন এবং এটিকে PROJECT_ID ভেরিয়েবল হিসেবে সংরক্ষণ করুন।

এছাড়াও, একটি REGION ভেরিয়েবল us-central1 এ সেট করুন। এটি সেই অঞ্চল যেখানে আপনি পরবর্তীতে রিসোর্স তৈরি করবেন।

PROJECT_ID=[YOUR-PROJECT-ID]
REGION=us-central1
gcloud config set core/project $PROJECT_ID

এপিআই সক্ষম করুন

সকল প্রয়োজনীয় পরিষেবা সক্রিয় করুন:

gcloud services enable \
  eventarc.googleapis.com \
  eventarcpublishing.googleapis.com \
  workflows.googleapis.com \
  workflowexecutions.googleapis.com

৩. ডেটাডগ প্রদানকারীকে খুঁজে বের করুন।

ইভেন্টআর্ক প্রোভাইডার হলো এমন একটি পরিষেবা বা সত্তা যা সরাসরি গুগল ক্লাউডে ইভেন্ট পাঠাতে পারে, যা পরবর্তীতে আপনার প্রোজেক্টে পাঠানো হয়। ডেটাডগের মতো থার্ড-পার্টি প্রোভাইডাররা হলো নন-গুগল ক্লাউড প্রোভাইডার, যারা ইভেন্টআর্কের মাধ্যমে গুগল ক্লাউডের সাথে ইন্টিগ্রেটেড থাকে।

ক্লাউড শেলে, গুগল ক্লাউড এবং থার্ড-পার্টি প্রোভাইডারদের তালিকা দেখতে নিম্নলিখিত কমান্ডটি চালান:

gcloud eventarc providers list

এখানে গুগল ক্লাউড ও থার্ড-পার্টি প্রোভাইডার এবং তারা যেসব স্থানে উপলব্ধ, তার একটি তালিকা দেওয়া হলো:

NAME: storage.googleapis.com
LOCATION: asia

NAME: cloudaudit.googleapis.com
LOCATION: asia

NAME: pubsub.googleapis.com
LOCATION: asia

...

এই কমান্ডটি ব্যবহার করে আপনি তৃতীয় পক্ষের প্রদানকারীদের তালিকাটি সীমিত করতে পারেন:

gcloud eventarc providers list --filter='eventTypes.type!~^google*'

আপনি তালিকায় Datadog দেখতে পাবেন:

NAME: datadog
LOCATION: us-central1

Datadog প্রোভাইডারটি কোন কোন ইভেন্ট সমর্থন করে তা দেখতে, আপনি এর বর্ণনাও দিতে পারেন:

gcloud eventarc providers describe datadog --location $REGION

displayName: Datadog
eventTypes:
- type: datadog.v1.alert
name: projects/project-id/locations/us-central1/providers/datadog

৪. একটি চ্যানেল সেটআপ করুন

আপনার প্রজেক্টকে কোনো প্রোভাইডারের সাথে সংযুক্ত করতে একটি চ্যানেল সেট আপ করতে হবে। এর জন্য একটি চ্যানেল তৈরি করা, চ্যানেলের বিবরণ সংগ্রহ করা এবং সেই বিবরণ প্রোভাইডারের কাছে পাঠানো প্রয়োজন। প্রোভাইডার একবার চ্যানেলের সাথে সংযোগ স্থাপন করলে, সে আপনার প্রজেক্টে ইভেন্ট পাঠানো শুরু করতে পারে।

একটি চ্যানেল তৈরি করুন

আপনি gcloud ব্যবহার করে Datadog প্রোভাইডারের জন্য একটি চ্যানেল তৈরি করতে পারেন:

CHANNEL_NAME=datadog-channel
gcloud eventarc channels create $CHANNEL_NAME \
   --provider datadog \
   --location $REGION

আপনি গুগল ক্লাউড কনসোলের ইভেন্টআর্ক পেজের চ্যানেল সেকশন থেকেও এটি তৈরি করতে পারেন:

d03a7173b25e5ea6.png

চ্যানেলের বিবরণ পুনরুদ্ধার করুন

চ্যানেলটি তৈরি হয়ে গেলে, gcloud থেকে চ্যানেলটির বিবরণ সংগ্রহ করুন:

gcloud eventarc channels describe $CHANNEL_NAME --location $REGION

আউটপুটটি নিম্নলিখিতের অনুরূপ হওয়া উচিত:

activationToken: so5g4Kdasda7y2MSasdaGn8njB2
createTime: '2022-03-09T09:53:42.428978603Z'
name: projects/project-id/locations/us-central1/channels/datadog-channel
provider: projects/project-id/locations/us-central1/providers/datadog
pubsubTopic: projects/project-id/topics/eventarc-channel-us-central1-datadog-channel-077
state: PENDING
uid: 183d3323-8cas-4e95-8d72-7d8c8b27cf9e
updateTime: '2022-03-09T09:53:48.290217299Z'

একইভাবে, আপনি গুগল ক্লাউড কনসোল থেকে চ্যানেলটি দেখতে পারেন:

80d8b2b6a46cb4c5.png

চ্যানেলের অবস্থা চ্যানেলটির স্থিতাবস্থা নির্দেশ করে। এটি নিম্নলিখিতগুলির মধ্যে একটি হতে পারে:

  • PENDING — চ্যানেলটি সফলভাবে তৈরি করা হয়েছে এবং প্রোভাইডারের সাথে সংযোগ স্থাপনের জন্য একটি অ্যাক্টিভেশন টোকেন উপলব্ধ আছে। চ্যানেলটির অবস্থা PENDING থেকে ACTIVE এ পরিবর্তন করতে হলে, চ্যানেলটি তৈরির ২৪ ঘণ্টার মধ্যে টোকেনটি প্রোভাইডারকে দিতে হবে এবং সংযোগ স্থাপনের জন্য ব্যবহার করতে হবে।
  • ACTIVE — চ্যানেলটি প্রোভাইডারের সাথে সফলভাবে সংযুক্ত হয়েছে। একটি ACTIVE চ্যানেল প্রোভাইডারের কাছ থেকে ইভেন্ট গ্রহণ এবং রাউট করার জন্য প্রস্তুত থাকে।
  • INACTIVE — চ্যানেলটি ইভেন্ট গ্রহণ করতে বা পুনরায় সক্রিয় করা যাবে না। প্রোভাইডার হয় এই চ্যানেল থেকে সংযোগ বিচ্ছিন্ন, অথবা চ্যানেল অ্যাক্টিভেশন টোকেনের মেয়াদ শেষ হয়ে গেছে এবং প্রোভাইডার সংযুক্ত নেই। কোনো প্রোভাইডারের সাথে পুনরায় সংযোগ স্থাপন করতে, আপনাকে অবশ্যই সেই প্রোভাইডারের জন্য একটি নতুন চ্যানেল তৈরি করতে হবে।

অ্যাক্টিভেশন টোকেন হলো একটি একবার ব্যবহারযোগ্য ও সময়-সীমাবদ্ধ টোকেন, যা একজন প্রোভাইডার এবং একজন সাবস্ক্রাইবারের প্রজেক্টের মধ্যে সংযোগ স্থাপন করতে ব্যবহৃত হয়। চ্যানেল তৈরির সময় নির্বাচিত শুধুমাত্র একটি নির্দিষ্ট প্রোভাইডারই এই টোকেনটি ব্যবহার করতে পারেন। চ্যানেল তৈরির পর টোকেনটি ২৪ ঘণ্টার জন্য বৈধ থাকে। ২৪ ঘণ্টা পর চ্যানেলটি INACTIVE হয়ে যায়।

প্রোভাইডারকে চ্যানেলের বিবরণ পাঠান

আপনাকে ডেটাডগ প্রোভাইডারের কাছে নিম্নলিখিত চ্যানেলের বিবরণ পাঠাতে হবে:

  • চ্যানেলের নাম (যেমন, projects/project-id/locations/us-central1/channels/datadog-channel )
  • অ্যাক্টিভেশন টোকেন (যেমন, so5g4Kdasda7y2MSasdaGn8njB2 )

Datadog-এ লগইন করুন, ইন্টিগ্রেশন পেজে যান এবং নিশ্চিত করুন যে Google Eventarc ইন্টিগ্রেশনটি ইনস্টল করা আছে:

9736bd517e1fa19a.png

Google Eventarc-এর কনফিগারেশন বিভাগে, সম্পূর্ণ চ্যানেলের নাম এবং অ্যাক্টিভেশন টোকেনটি প্রবেশ করান:

a17f522075cdd92e.png

এখন আপনি চ্যানেলগুলোর তালিকায় চ্যানেলটি দেখতে পাবেন এবং কয়েক সেকেন্ড পর গুগল ক্লাউড কনসোলেও চ্যানেলটি সক্রিয় হয়ে যাবে।

8399d528ccbd4c20.png

এখন আপনি চ্যানেলটি ব্যবহার করার জন্য প্রস্তুত!

৫. একটি ওয়ার্কফ্লো তৈরি করুন

প্রোভাইডার থেকে ইভেন্ট গ্রহণ করার জন্য আপনার গুগল ক্লাউডে একটি ডেস্টিনেশন প্রয়োজন। ইভেন্টআর্ক ক্লাউড রান, ওয়ার্কফ্লো, কুবারনেটিস সার্ভিসের মতো বেশ কিছু ইভেন্ট ডেস্টিনেশন সমর্থন করে। এক্ষেত্রে, প্রাপ্ত ইভেন্টগুলো সহজে লগ করার জন্য একটি ওয়ার্কফ্লো ডেপ্লয় করুন।

নিম্নলিখিত বিষয়বস্তু সহ একটি workflow-datadog1.yaml ফাইল তৈরি করুন:

main:
  params: [event]
  steps:
  - logStep:
      call: sys.log
      args:
        data: ${event}

উল্লেখ্য যে, ওয়ার্কফ্লোটি একটি প্যারামিটার হিসেবে একটি ইভেন্ট গ্রহণ করছে। এই ইভেন্টটি ডেটাডগ মনিটরিং থেকে ইভেন্টআর্ক (Eventarc)-এর মাধ্যমে আসবে। ইভেন্টটি গ্রহণ করার পর, ওয়ার্কফ্লোটি কেবল প্রাপ্ত ইভেন্টটি লগ করে রাখে।

ওয়ার্কফ্লোটি স্থাপন করুন:

WORKFLOW_NAME=workflow-datadog1
gcloud workflows deploy $WORKFLOW_NAME \
  --source workflow-datadog1.yaml \
  --location $REGION

ওয়ার্কফ্লোটি ডেপ্লয় করা হয়েছে কিন্তু এখনও চালু হয়নি। ডেটাডগ অ্যালার্ট পেলে এটি একটি ইভেন্টআর্ক ট্রিগারের মাধ্যমে এক্সিকিউট হবে।

৬. একটি ইভেন্টআর্ক ট্রিগার তৈরি করুন

আপনি এখন একটি ইভেন্টআর্ক ট্রিগারের মাধ্যমে ডেটাডগ প্রোভাইডার থেকে ওয়ার্কফ্লো-এর সাথে ইভেন্ট সংযুক্ত করতে প্রস্তুত।

পরিষেবা অ্যাকাউন্ট কনফিগার করুন

ট্রিগার তৈরি করার সময় eventarc.eventReceiver রোলসহ একটি সার্ভিস অ্যাকাউন্ট প্রয়োজন। আপনি একটি ডেডিকেটেড সার্ভিস অ্যাকাউন্ট তৈরি করতে পারেন অথবা ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্টটি ব্যবহার করতে পারেন।

সরলতার জন্য, ডিফল্ট কম্পিউট সার্ভিস অ্যাকাউন্ট ব্যবহার করুন এবং eventarc.eventReceiver রোলটি মঞ্জুর করুন:

PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')

gcloud projects add-iam-policy-binding $PROJECT_ID \
    --member serviceAccount:$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
    --role roles/eventarc.eventReceiver

একটি ট্রিগার তৈরি করুন

Datadog চ্যানেল, ইভেন্ট টাইপ এবং একটি ওয়ার্কফ্লো ডেস্টিনেশন সহ একটি ট্রিগার তৈরি করুন:

gcloud eventarc triggers create datadog-trigger1 \
  --location $REGION \
  --destination-workflow $WORKFLOW_NAME \
  --destination-workflow-location $REGION \
  --channel $CHANNEL_NAME \
  --event-filters type=datadog.v1.alert \
  --service-account $PROJECT_NUMBER-compute@developer.gserviceaccount.com

নতুন তৈরি করা ট্রিগারটি সক্রিয় আছে কিনা তা দেখতে আপনি ট্রিগারগুলো তালিকাভুক্ত করতে পারেন:

gcloud eventarc triggers list --location $REGION

NAME: datadog-trigger1
TYPE: datadog.v1.alert
DESTINATION: Workflows: workflow-datadog1
ACTIVE: Yes

৭. একটি ডেটাডগ মনিটর তৈরি করুন

এখন আপনি একটি ডেটাডগ মনিটর তৈরি করবেন এবং সেটিকে ইভেন্টার্কের সাথে সংযুক্ত করবেন।

এটি ডিফল্ট মান সহ একটি 'হ্যালো ওয়ার্ল্ড' ধরনের মনিটর হবে। মনিটরিং অ্যালার্ট তৈরি করার জন্য আপনাকে এটি ম্যানুয়ালি ট্রিগার করতে হবে, যা ফলস্বরূপ গুগল ক্লাউডে একটি ইভেন্টআর্ক ইভেন্ট তৈরি করবে।

Datadog-এ একটি মনিটর তৈরি করতে, Datadog-এ লগ ইন করুন । প্রধান মেনুতে Monitors উপর মাউস রাখুন এবং সাব-মেনু থেকে New Monitor ক্লিক করুন। এখানে অনেক ধরনের মনিটর রয়েছে। Metric মনিটর টাইপটি বেছে নিন।

New Monitor পেজে, ধাপ ১ এবং ২-এর জন্য ডিফল্ট সেটিংস অপরিবর্তিত রাখুন।

  • ধাপ ৩-এ, Alert threshold ১-এ সেট করুন।
  • ধাপ ৪-এ, মনিটরের নাম হিসেবে Test monitor for Eventarc সেট করুন এবং Notify your team ' @eventarc_<your-project-id>_<your-region>_<your-channel-name> এ সেট করুন।

পরবর্তী ধাপের জন্য মনিটর পেজটি খোলা রাখুন, যেখানে আপনি মনিটরটি পরীক্ষা করবেন।

৮. মনিটর এবং ট্রিগার পরীক্ষা করুন

Datadog মনিটর এবং Eventarc ট্রিগার পরীক্ষা করার জন্য, আপনাকে ম্যানুয়ালি মনিটরটি ট্রিগার করতে হবে।

মনিটর তৈরির পেজের একদম নিচে, Test Notifications বাটনে ক্লিক করুন:

32ccf1cc47b01150.png

তারপর, Run Test বাটনে ক্লিক করুন:

7f2ff70ec673007b.png

এটি মনিটরে অবস্থার পরিবর্তনকে অনুকরণ করবে এবং একটি ইভেন্টআর্ক ইভেন্ট ট্রিগার করবে।

workflow-datadog1 ওয়ার্কফ্লোটি পরীক্ষা করুন। আপনি দেখতে পাবেন যে সেখানে একটি নতুন এক্সিকিউশন হয়েছে:

adf7cd97ca2e8da7.png

এক্সিকিউশনের বিবরণ যাচাই করুন। ওয়ার্কফ্লো-এর ইনপুটে এবং লগগুলিতেও মনিটরিং অ্যালার্ট থেকে তৈরি হওয়া datadog.v1.alert ইভেন্ট টাইপটি আপনি দেখতে পাবেন।

dc78fd8460e5fc0e.png

৯. অভিনন্দন

অভিনন্দন, আপনি কোডল্যাবটি সম্পন্ন করেছেন! ওয়ার্কফ্লো ব্যবহার করে কীভাবে ডেটাডগ মনিটরিং অ্যালার্টে সাড়া দিতে হয়, তা শিখতে আপনি দ্বিতীয় কোডল্যাবটি চালিয়ে যেতে পারেন।

আমরা যা আলোচনা করেছি

  • Datadog প্রোভাইডারকে কীভাবে খুঁজে বের করবেন।
  • Datadog প্রোভাইডারের সাথে কীভাবে একটি চ্যানেল সেটআপ করবেন।
  • ইভেন্ট লগ করার জন্য কীভাবে একটি ওয়ার্কফ্লো তৈরি করবেন।
  • চ্যানেল ব্যবহার করে কীভাবে একটি ইভেন্টআর্ক ট্রিগার তৈরি করবেন।
  • কীভাবে একটি ডেটাডগ মনিটর তৈরি করবেন।
  • Datadog মনিটর, Eventarc ট্রিগার এবং ওয়ার্কফ্লো কীভাবে পরীক্ষা করবেন।