ניתוב התראות של Datadog ל-Google Cloud באמצעות Eventarc (חלק 1)

1. מבוא

cb762f29e9183a3f.png 3c7ca8629bc25d9c.png

בעזרת Eventarc קל לקשר בין שירותי Google Cloud לאירועים ממגוון מקורות. הוא מאפשר לפתח ארכיטקטורות מבוססות-אירועים שבהן מיקרו-שירותים (microservices) בצימוד חלש ומפוזרים. הוא גם מטפל בהטמעת נתונים של אירועים, מסירה, אבטחה, הרשאות וטיפול בשגיאות, כדי לשפר את הגמישות של המפתחים ואת עמידות האפליקציות.

Datadog היא פלטפורמת אבטחה וניטור לאפליקציות בענן. המערכת משלבת דוחות, מדדים ויומנים מקצה לקצה כדי שתהיה לכם אפשרות לעקוב אחר האפליקציות, התשתית והשירותים שלכם של צד שלישי.

בשיעור ה-Codelab הראשון הזה תלמדו איך לנתב התראה פשוטה של מעקב ב-Datadog ל-Google Cloud באמצעות Eventarc.

מה תלמדו

  • איך לגלות את ספק ה-Datadog.
  • איך להגדיר ערוץ לספק Datadog.
  • איך ליצור תהליך עבודה לרישום אירועים.
  • כיצד ליצור טריגר Eventarc בערוץ.
  • איך ליצור מוניטור של Datadog.
  • איך לבדוק את המעקב של Datadog, הטריגר של Eventarc ואת תהליך העבודה.

2. הגדרה ודרישות

הגדרת סביבה בקצב עצמאי

  1. נכנסים למסוף Google Cloud ויוצרים פרויקט חדש או עושים שימוש חוזר בפרויקט קיים. אם אין לכם עדיין חשבון Gmail או חשבון Google Workspace, עליכם ליצור חשבון.

b35bf95b8bf3d5d8.png

a99b7ace416376c4.png

bd84a6d3004737c5.png

  • Project name הוא השם המוצג של המשתתפים בפרויקט. זו מחרוזת תווים שלא משמשת את Google APIs. אפשר לעדכן אותו בכל שלב.
  • Project ID חייב להיות ייחודי בכל הפרויקטים ב-Google Cloud ואי אפשר לשנות אותו (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר מחרוזת ייחודית באופן אוטומטי; בדרך כלל לא מעניין אותך מה זה. ברוב ה-Codelabs תצטרכו להפנות אל מזהה הפרויקט (בדרך כלל הוא מזוהה כ-PROJECT_ID). אם המזהה שנוצר לא מוצא חן בעיניך, יש לך אפשרות ליצור מזהה אקראי אחר. לחלופין, אפשר לנסות תבנית משלך ולבדוק אם היא זמינה. לא ניתן לשנות אותו אחרי השלב הזה, והוא יישאר למשך הפרויקט.
  • לידיעתך, יש ערך שלישי – Project Number (מספר פרויקט), שחלק מממשקי ה-API משתמשים בו. מידע נוסף על כל שלושת הערכים האלה זמין במסמכי התיעוד.
  1. בשלב הבא צריך להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבים או בממשקי API של Cloud. מעבר ב-Codelab הזה לא אמור לעלות הרבה, אם בכלל. כדי להשבית את המשאבים ולא לצבור חיובים מעבר למדריך הזה, אתם יכולים למחוק את המשאבים שיצרתם או למחוק את הפרויקט כולו. משתמשים חדשים ב-Google Cloud זכאים להצטרף לתוכנית תקופת ניסיון בחינם בשווי 1,200 ש"ח.

הפעלת Cloud Shell

אומנם אפשר להפעיל את Google Cloud מרחוק מהמחשב הנייד, אבל ב-Codelab הזה משתמשים ב-Google Cloud Shell, סביבת שורת הפקודה שפועלת ב-Cloud.

במסוף Google Cloud, לוחצים על הסמל של Cloud Shell בסרגל הכלים שבפינה השמאלית העליונה:

55efc1aaa7a4d3ad.png

נדרשים רק כמה דקות כדי להקצות את הסביבה ולהתחבר אליה. בסיום התהליך, אתם אמורים לראות משהו כזה:

7ffe5cbb04455448.png

למכונה הווירטואלית הזו נטען כל כלי הפיתוח הדרושים. יש בה ספריית בית בנפח מתמיד של 5GB והיא פועלת ב-Google Cloud, מה שמשפר משמעותית את ביצועי הרשת והאימות. כל העבודה ב-Codelab הזה יכולה להתבצע בתוך דפדפן. אתה לא צריך להתקין שום דבר.

הגדרת gcloud

ב-Cloud Shell, מגדירים את מזהה הפרויקט ושומרים אותו כמשתנה PROJECT_ID.

בנוסף, צריך להגדיר את המשתנה REGION ל-us-central1. זה האזור שבו תיצרו משאבים בהמשך.

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

הפעלת ממשקי API

מפעילים את כל השירותים הנחוצים:

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:

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:

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:

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 ומקצים את התפקיד 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. מזל טוב

כל הכבוד, סיימת את ה-Codelab! אתם יכולים להמשיך לקוד Lab השני כדי ללמוד איך להגיב להתראות מעקב של Datadog באמצעות Workflows.

הנושאים שטיפלנו בהם

  • איך לגלות את ספק ה-Datadog.
  • איך להגדיר ערוץ לספק Datadog.
  • איך ליצור תהליך עבודה לרישום אירועים.
  • כיצד ליצור טריגר Eventarc בערוץ.
  • איך ליצור מוניטור של Datadog.
  • איך לבדוק את המעקב של Datadog, הטריגר של Eventarc ואת תהליך העבודה.