צפייה ביומנים שמועברים ל-Pub/Sub

במאמר הזה מוסבר איך למצוא רשומות ביומן שניתבו מ-Cloud Logging אל נושאי Pub/Sub, וזה קורה כמעט בזמן אמת. מומלץ להשתמש ב-Pub/Sub לשילוב יומנים של Cloud Logging עם תוכנות של צד שלישי.

כשמנתבים רשומות ביומן לנושא ב-Pub/Sub, שירות Logging מפרסם כל רשומה ביומן כהודעה ב-Pub/Sub ברגע שהוא מקבל את הרשומה. רשומות ביומן שמועברות לניתוב זמינות בדרך כלל תוך שניות מרגע שהן מגיעות ל-Logging, כאשר 99% מהרשומות ביומן זמינות תוך פחות מ-60 שניות.

לפני שמתחילים

הסבר על המושגים שקשורים לאובייקטים מסוג sink מופיע במאמר סקירה כללית על מודלים של ניתוב ואחסון: אובייקטים מסוג sink.

הוראות לגבי ניתוב רשומות ביומן מופיעות במאמר ניתוב יומנים ליעדים נתמכים.

צפייה ביומנים

כדי לראות את היומנים בזמן שהם מועברים בסטרימינג דרך Pub/Sub: פועלים לפי השלבים הבאים:

  1. נכנסים לדף Topics במסוף Google Cloud .

    לדף Topics

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Pub/Sub.

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

ארגון היומנים

השדה data של כל הודעה הוא אובייקט LogEntry בקידוד Base64. לדוגמה, אפליקציה רשומה ב-Pub/Sub עשויה לשלוף את האובייקט הבא מנושא שמקבל רשומות ביומן. האובייקט שמוצג מכיל רשימה עם הודעה אחת, אבל יכול להיות שמערכת Pub/Sub תחזיר כמה הודעות אם יש כמה רשומות ביומן. הערך של data (כ-600 תווים) והערך של ackId (כ-200 תווים) קוצרו כדי שהדוגמה תהיה קלה יותר לקריאה:

{
 "receivedMessages": [
  {
   "ackId": "dR1JHlAbEGEIBERNK0EPKVgUWQYyODM...QlVWBwY9HFELH3cOAjYYFlcGICIjIg",
   "message": {
    "data": "eyJtZXRhZGF0YSI6eyJzZXZ0eSI6Il...Dk0OTU2G9nIjoiaGVsbG93b3JsZC5sb2cifQ==",
    "attributes": {
     "compute.googleapis.com/resource_type": "instance",
     "compute.googleapis.com/resource_id": "123456"
    },
    "messageId": "43913662360"
   }
  }
 ]
}

אם מפענחים את השדה data ומעצבים אותו, מקבלים את אובייקט LogEntry הבא:

{
  "log": "helloworld.log",
  "insertId": "2015-04-15|11:41:00.577447-07|10.52.166.198|-1694494956",
  "textPayload": "Wed Apr 15 20:40:51 CEST 2015 Hello, world!",
  "timestamp": "2015-04-15T18:40:56Z",
  "labels": {
    "compute.googleapis.com\/resource_type": "instance",
    "compute.googleapis.com\/resource_id": "123456"
  },
  "severity": "WARNING"
  }
}

שילוב עם צד שלישי באמצעות Pub/Sub

אתם מעבירים את רשומות היומן לנושא Pub/Sub. הצד השלישי מקבל את רשומות היומן שלכם על ידי הרשמה לאותו נושא. התכונה 'רישום ביומן' תומכת בשילוב של רישום ביומן עם צדדים שלישיים, כמו Splunk או Datadog. רשימה עדכנית של השילובים זמינה במאמר Partners בנושא שילובים עם Google Cloud Observability.

כדי לבצע את השילוב, צריך לבצע פעולות כמו אלה:

  1. בפרויקט שממנו מגיעים רשומות היומן, יוצרים נושא Pub/Sub עם מינוי ברירת מחדל:

    1. מפעילים את Pub/Sub API.

      Roles required to enable APIs

      To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

      Enable the API

    2. נכנסים לדף Topics במסוף Google Cloud .

      לדף Topics

      אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Pub/Sub.

    3. לוחצים על יצירת נושא.

    4. בשדה Topic ID (מזהה הנושא), מזינים מזהה לנושא. לדוגמה, projects/my-project-id/topics/my-pubsub-topic.

      כל הודעה שנשלחת לנושא כוללת את חותמת הזמן של רשומת היומן שהועברה בהודעת Pub/Sub‏ attributes. לדוגמה:

      "attributes": {
        "logging.googleapis.com/timestamp": "2024-07-01T00:00:00Z"
      }
      
    5. משאירים את האפשרות הוספת מינוי ברירת מחדל. לא בוחרים באפשרות אחרת.

    6. לוחצים על יצירת נושא.

  2. בפרויקט שממנו מגיעות רשומות היומן, מגדירים את Logging כך שינתב את רשומות היומן לנושא:

    1. במסוף Google Cloud , עוברים לדף Log Router:

      כניסה אל Log Router

      אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

    2. לוחצים על Create Sink (יצירת יעד), מזינים שם ותיאור ליעד ולוחצים על Next (הבא).
    3. בתפריט Sink Service, בוחרים באפשרות Cloud Pub/Sub topic, בוחרים את נושא ה-Pub/Sub ולוחצים על Next.
    4. בוחרים את רשומות היומן שרוצים לכלול ב-sink ולוחצים על הבא.
    5. אופציונלי: בוחרים את רשומות היומן שרוצים להחריג.
    6. לוחצים על Create Sink.

      מופיעה תיבת דו-שיח עם ההודעה Sink created (יעד נוצר). ההודעה הזו מציינת שיעד הנתונים נוצר בהצלחה עם הרשאות להעברת רשומות עתידיות ביומן שתואמות ליעד שבחרתם.

    7. מעניקים לישות המורשית שצוינה בזהות הכתיבה של ה-sink את תפקידי ה-IAM הבאים:

      מידע נוסף על קבלת זהות הכותב ומתן תפקיד זמין במאמר הגדרת הרשאות יעד.

    ‫Cloud Logging שולח עכשיו רשומות ביומן לנושא Pub/Sub.

  3. יוצרים את המינוי.

    לדוגמה, אם אתם משתמשים ב-Dataflow כדי לשלוף את הנתונים מנושא Pub/Sub ולשלוח אותם אל Datadog, תצטרכו לבצע שני שלבים:

    1. יוצרים או מקבלים חשבון שירות, ואז מקצים לו את תפקידי ה-IAM שנדרשים להרשמה לנושא. לפחות, לחשבון השירות צריכים להיות מוקצים התפקידים הבאים:

      מידע נוסף זמין במאמרים הבאים:

    2. יוצרים משימה מתבנית, ואז מריצים את המשימה. בדוגמה הזו, תשתמשו בתבנית Pub/Sub to Datadog.

הצד השלישי יתחיל לקבל את רשומות היומן באופן מיידי.

במאמר תרחישים לייצוא של נתוני Cloud Logging: Splunk מוסבר על תרחישים נפוצים של ניתוב יומנים באמצעות Pub/Sub.

פתרון בעיות

אם נראה שחסרים רשומות ביומן ביעד של ה-sink, או אם יש לכם חשד אחר שה-sink לא מעביר את הרשומות ביומן כמו שצריך, כדאי לעיין במאמר פתרון בעיות שקשורות לניתוב יומנים.

תמחור

למידע על מחירים, אפשר לעיין בדף תמחור של Google Cloud Observability. אם אתם מעבירים נתוני יומן לשירותים אחרים, כדאי לעיין במסמכים הבאים: Google Cloud