توجيه تنبيهات مراقبة Datadog إلى Google Cloud باستخدام Eventarc (الجزء 1)

1. مقدمة

cb762f29e9183a3f.png 3c7ca8629bc25d9c.png

تسهِّل شركة Eventarc ربط خدمات Google Cloud بفعاليات من مصادر متنوعة. ويسمح لك ذلك بإنشاء بُنى تستند إلى الأحداث، حيث يتم إقران الخدمات المصغَّرة وتوزيعها بشكل غير محكم. ويعتني أيضًا بنقل الأحداث وتسليمها والأمان والتفويض ومعالجة الأخطاء نيابةً عنك، ما يحسّن رشاقة المطوِّرين ومرونة التطبيقات.

Datadog هي منصة مراقبة وأمان لتطبيقات السحابة الإلكترونية. وهو يجمع بين آثار الأنشطة الشاملة والمقاييس والسجلات لجعل التطبيقات والبنية الأساسية وخدمات الجهات الخارجية قابلة للملاحظة.

في هذا الدرس التطبيقي الأول حول الترميز، ستتعلم كيفية توجيه تنبيه بسيط حول تتبُّع Datadog إلى Google Cloud باستخدام Eventarc.

المُعطيات

  • كيفية اكتشاف موفر Datadog.
  • كيفية إعداد قناة لموفّر Datadog.
  • كيفية إنشاء سير عمل لتسجيل الأحداث
  • كيفية إنشاء مشغِّل Eventarc باستخدام القناة
  • كيفية إنشاء أداة مراقبة Datadog.
  • طريقة اختبار أداة مراقبة Datadog ومشغّل Eventarc وسير العمل

2. الإعداد والمتطلبات

إعداد بيئة ذاتية

  1. سجِّل الدخول إلى Google Cloud Console وأنشئ مشروعًا جديدًا أو أعِد استخدام مشروع حالي. إذا لم يكن لديك حساب على Gmail أو Google Workspace، عليك إنشاء حساب.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • اسم المشروع هو الاسم المعروض للمشاركين في هذا المشروع. وهي سلسلة أحرف لا تستخدمها Google APIs. ويمكنك تعديله في أي وقت.
  • يجب أن يكون رقم تعريف المشروع فريدًا في جميع مشاريع Google Cloud وغير قابل للتغيير (لا يمكن تغييره بعد ضبطه). تنشئ Cloud Console سلسلة فريدة تلقائيًا. فعادةً لا تهتم بما هو. في معظم الدروس التطبيقية حول الترميز، يجب الإشارة إلى رقم تعريف المشروع (يتم تحديده عادةً على أنّه PROJECT_ID). وإذا لم يعجبك المعرّف الذي تم إنشاؤه، يمكنك إنشاء رقم تعريف عشوائي آخر. ويمكنك بدلاً من ذلك تجربة طلبك الخاص ومعرفة ما إذا كان متوفّرًا. ولا يمكن تغييره بعد هذه الخطوة وسيبقى طوال مدة المشروع.
  • لمعلوماتك، هناك قيمة ثالثة، وهي رقم المشروع الذي تستخدمه بعض واجهات برمجة التطبيقات. اطّلِع على مزيد من المعلومات حول هذه القيم الثلاث في المستندات.
  1. بعد ذلك، عليك تفعيل الفوترة في Cloud Console لاستخدام الموارد/واجهات برمجة التطبيقات في Cloud. إنّ تنفيذ هذا الدرس التطبيقي حول الترميز لن يكون مكلفًا أو مكلفًا على الإطلاق. لإيقاف تشغيل الموارد حتى لا تتحمل الفوترة بعد هذا البرنامج التعليمي، يمكنك حذف الموارد التي أنشأتها أو حذف المشروع بالكامل. يكون مستخدمو Google Cloud الجدد مؤهَّلون للانضمام إلى برنامج فترة تجريبية مجانية بقيمة 300 دولار أمريكي.

بدء Cloud Shell

مع أنّه يمكن إدارة Google Cloud عن بُعد من الكمبيوتر المحمول، ستستخدم في هذا الدرس التطبيقي Google Cloud Shell، وهي بيئة سطر أوامر يتم تشغيلها في السحابة الإلكترونية.

من Google Cloud Console، انقر على رمز Cloud Shell في شريط الأدوات العلوي الأيسر:

55efc1aaa7a4d3ad.png

من المفترَض أن تستغرق عملية إدارة الحسابات والاتصال بالبيئة بضع لحظات فقط. عند الانتهاء، من المفترض أن يظهر لك شيء مثل هذا:

7ffe5cbb04455448.png

يتم تحميل هذه الآلة الافتراضية مزوّدة بكل أدوات التطوير التي ستحتاج إليها. وتوفّر هذه الشبكة دليلاً رئيسيًا دائمًا بسعة 5 غيغابايت وتعمل على Google Cloud، ما يحسّن بشكل كبير من أداء الشبكة والمصادقة. يمكنك تنفيذ جميع أعمالك في هذا الدرس التطبيقي حول الترميز من خلال متصفّح. لا تحتاج إلى تثبيت أي تطبيقات.

إعداد gcloud

في Cloud Shell، اضبط رقم تعريف مشروعك واحفظه كمتغيّر 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

3- التعرّف على موفّر Datadog

موفّر Eventarc هو خدمة أو كيان يمكنه إرسال الأحداث مباشرةً إلى Google Cloud والتي يتم توجيهها بعد ذلك إلى مشروعك. إنّ مقدّمي الخدمات التابعين لجهات خارجية، مثل Datadog، هم مزوّدو خدمات غير تابعين لخدمة Google Cloud تم دمجهم مع Google Cloud من خلال Eventarc.

في Cloud Shell، شغِّل الأمر التالي للاطّلاع على قائمة Google Cloud وموفِّري الخدمات التابعين لجهات خارجية:

gcloud eventarc providers list

يسرد ذلك مقدّمي خدمة Google Cloud ومقدّمي خدمات الجهات الخارجية والمواقع الجغرافية التي يتوفّرون فيها:

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

4. إعداد قناة

تحتاج إلى إعداد قناة لدمج مشروعك مع مقدم خدمة. ويشمل ذلك إنشاء قناة واسترداد تفاصيلها وإرسال تلك التفاصيل إلى موفر الخدمة. بعد أن يبدأ موفّر الخدمة الاتصال بالقناة، يمكن له البدء في إرسال الأحداث إلى مشروعك.

إنشاء قناة

يمكنك إنشاء قناة لموفّر Datadog باستخدام gcloud:

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

يمكنك أيضًا إنشاؤه من قسم "القنوات" في صفحة Eventarc في Google Cloud Console:

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'

وبالمثل، يمكنك الاطّلاع على القناة من Google Cloud Console:

80d8b2b6a46cb4c5.png

تحدّد حالة القناة حالتها. يمكن أن تكون الحالة واحدة مما يلي:

  • PENDING: تمّ إنشاء القناة بنجاح ويتوفّر رمز تفعيل مميّز للتواصل مع موفّر الخدمة. لتغيير حالة القناة من PENDING إلى ACTIVE، يجب منح الرمز المميّز لموفّر الخدمة واستخدامه لربط القناة خلال 24 ساعة من إنشاء القناة.
  • ACTIVE: تمّ ربط القناة بمقدّم الخدمة بنجاح. قناة ACTIVE جاهزة لتلقّي الأحداث من مقدّم الخدمة وتوجيهها.
  • INACTIVE: لا يمكن للقناة تلقّي الأحداث أو إعادة تفعيلها. مقدّم الخدمة غير متصل بهذه القناة، أو انتهت صلاحية الرمز المميّز لتفعيل القناة ومقدّم الخدمة غير متصل. لإعادة الاتصال بمزوّد الخدمة، يجب إنشاء قناة جديدة للموفّر.

رمز التفعيل هو رمز مميّز صالح للاستخدام مرة واحدة ومتاح لفترة محدودة، ويتم استخدامه للربط بين مقدّم الخدمة ومشروع المشترك. يمكن لمقدّم خدمة محدّد فقط بعد اختياره خلال عملية إنشاء القناة استخدام الرمز المميّز. يكون الرمز المميّز صالحًا لمدة 24 ساعة بعد إنشاء القناة. وبعد 24 ساعة، ستصبح القناة INACTIVE.

إرسال تفاصيل القناة إلى مقدّم الخدمة

يجب إرسال تفاصيل القناة التالية إلى موفّر Datadog:

  • اسم القناة (مثل projects/project-id/locations/us-central1/channels/datadog-channel)
  • رمز التفعيل (على سبيل المثال، so5g4Kdasda7y2MSasdaGn8njB2)

سجِّل الدخول إلى Datadog، وانتقِل إلى صفحة "عمليات الدمج" وتأكَّد من تثبيت عملية دمج Google Eventarc:

9736bd517e1fa19a.png

في قسم الإعدادات في Google Eventarc، أدخِل اسم القناة الكامل والرمز المميّز للتفعيل:

a17f522075cdd92e.png

من المفترض أن تظهر القناة الآن في قائمة القنوات، وبعد بضع ثوانٍ، من المفترض أن ترى القناة أيضًا نشطة في Google Cloud Console:

8399d528ccbd4c20.png

والآن، أصبحت جاهزًا لاستخدام القناة.

5- إنشاء سير عمل

يجب إضافة وجهة في Google Cloud لتلقّي الأحداث من مقدّم الخدمة. توفّر منصة Eventarc عددًا من وجهات الفعاليات، مثل خدمات Cloud Run وWorkflows وKubernetes. في هذه الحالة، يمكنك تفعيل سير عمل لتسجيل الأحداث التي تم تلقّيها.

أنشئ ملف workflow-datadog1.yaml يتضمّن المحتوى التالي:

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

تجدر الإشارة إلى أنّ سير العمل يتلقّى حدثًا كمَعلمة. ستأتي هذه الفعالية من مراقبة Datadog من خلال Eventarc. وبعد تلقّي الحدث، تسجّل سير العمل ببساطة الحدث الذي تم تلقّيه.

نشر سير العمل:

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

تم نشر سير العمل ولكنه لم يبدأ بعد. وسيتم تنفيذه من خلال مشغِّل Eventarc عند تلقّي تنبيه Datadog.

6- إنشاء مشغِّل Eventarc

أصبحت جاهزًا الآن لربط الأحداث من موفّر Datadog إلى Workflows باستخدام مشغِّل Eventarc.

ضبط حساب الخدمة

يجب أن يكون لديك حساب خدمة بدور "eventarc.eventReceiver" عند إنشاء عامل تشغيل. ويمكنك إمّا إنشاء حساب خدمة مخصّص أو استخدام حساب خدمة Compute Engine التلقائي.

لتبسيط الأمر، استخدِم حساب خدمة Compute Engine التلقائي وامنح الدور "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

7. إنشاء أداة مراقبة Datadog

ستقوم الآن بإنشاء أداة مراقبة Datadog وربطها بـ Eventarc.

ستكون مراقب نوع Hello World بالقيم الافتراضية. وسيكون عليك تشغيله يدويًا لإنشاء تنبيهات المراقبة، ما سيؤدي بدوره إلى إنشاء حدث Eventarc في Google Cloud.

لإنشاء أداة مراقبة في Datadog، سجِّل الدخول إلى Datadog. حرك مؤشر الماوس فوق Monitors في القائمة الرئيسية وانقر على New Monitor في القائمة الفرعية. هناك العديد من أنواع الشاشات. اختَر نوع الشاشة "Metric".

في صفحة New Monitor، اترُك الإعدادات التلقائية للخطوتَين 1 و2.

  • في الخطوة 3، ضبط Alert threshold على 1
  • في الخطوة 4، ضبط Test monitor for Eventarc كاسم أداة العرض وضبط Notify your team على @eventarc_<your-project-id>_<your-region>_<your-channel-name>

أبقِ صفحة المراقبة مفتوحة للانتقال إلى الخطوة التالية حيث يتم اختبار الشاشة.

8. اختبار المراقبة والمشغّل

لاختبار أداة مراقبة Datadog ومشغّل Eventarc، عليك تشغيل الشاشة يدويًا.

في أسفل صفحة إنشاء الشاشة، انقر على الزر "Test Notifications":

32ccf1cc47b01150.png

بعد ذلك، انقر على الزر "Run Test":

7f2ff70ec673007b.png

من المفترض أن يحاكي هذا انتقال الحالة في الأداة ويشغّل حدث Eventarc.

الاطّلاع على سير عمل "workflow-datadog1" من المفترض أن تلاحظ أنّ هناك عملية تنفيذ جديدة:

adf7cd97ca2e8da7.png

تحقَّق من تفاصيل التنفيذ. من المفترَض أن يظهر لك نوع حدث Datadog datadog.v1.alert الذي تم إنشاؤه من تنبيه المراقبة في حقل إدخال سير العمل وفي السجلّات أيضًا:

dc78fd8460e5fc0e.png

9. تهانينا

تهانينا، لقد أنهيت الدرس التطبيقي حول الترميز. يمكنك المتابعة إلى الدرس التطبيقي الثاني حول الترميز لمعرفة كيفية الاستجابة لتنبيهات مراقبة Datadog باستخدام Workflows.

المواضيع التي تناولناها

  • كيفية اكتشاف موفر Datadog.
  • كيفية إعداد قناة لموفّر Datadog.
  • كيفية إنشاء سير عمل لتسجيل الأحداث
  • كيفية إنشاء مشغِّل Eventarc باستخدام القناة
  • كيفية إنشاء أداة مراقبة Datadog.
  • طريقة اختبار أداة مراقبة Datadog ومشغّل Eventarc وسير العمل