توجيه تنبيهات مراقبة 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 بـ "مهام سير العمل" باستخدام مشغّل Eventarc.

إعداد حساب الخدمة

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

لتبسيط العملية، استخدِم حساب خدمة 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 وسير العمل