ניתוב התראות של 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

  • שם הפרויקט הוא השם המוצג של הפרויקט הזה למשתתפים. זו מחרוזת תווים שלא נמצאת בשימוש ב-Google APIs. אפשר לעדכן את המיקום הזה בכל שלב.
  • מזהה הפרויקט חייב להיות ייחודי בכל הפרויקטים ב-Google Cloud, והוא קבוע (אי אפשר לשנות אותו אחרי שמגדירים אותו). מסוף Cloud יוצר באופן אוטומטי מחרוזת ייחודית, ובדרך כלל לא צריך לדעת מה היא. ברוב ה-Codelabs, תצטרכו להפנות למזהה הפרויקט (בדרך כלל הוא מסומן כ-PROJECT_ID). אם אתם לא אוהבים את המזהה שנוצר, אתם יכולים ליצור מזהה אקראי אחר. אפשר גם לנסות שם משתמש משלכם ולבדוק אם הוא זמין. אי אפשר לשנות את ההגדרה הזו אחרי השלב הזה, והיא תישאר כזו למשך הפרויקט.
  • לידיעתכם, יש ערך שלישי, מספר פרויקט, שחלק מממשקי ה-API משתמשים בו. במאמרי העזרה מפורט מידע נוסף על שלושת הערכים האלה.
  1. בשלב הבא, תצטרכו להפעיל את החיוב במסוף Cloud כדי להשתמש במשאבי Cloud או בממשקי API של Cloud. העלות של התרגול הזה לא אמורה להיות גבוהה, ואולי אפילו לא תצטרכו לשלם בכלל. כדי להשבית את המשאבים ולא לחייב אתכם מעבר למדריך הזה, אתם יכולים למחוק את המשאבים שיצרתם או למחוק את כל הפרויקט. משתמשים חדשים ב-Google Cloud זכאים לתוכנית תקופת ניסיון בחינם בשווי 300$.

מפעילים את Cloud Shell

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

ב-מסוף 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

אפשר גם ליצור אותו בקטע Channels בדף 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 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:

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.

כדי לפשט את התהליך, משתמשים בחשבון השירות שמוגדר כברירת מחדל של Compute ומקצים את התפקיד 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! כדי ללמוד איך להגיב להתראות של Datadog Monitoring באמצעות Workflows, אפשר להמשיך לCodelab השני.

מה נכלל

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