ניתוב יומנים ליעדים נתמכים

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

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

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

סקירה כללית

בדף הזה מוסבר איך ליצור יעד לנתונים ואיך להגדיר את האפשרויות שמוצגות כשמשתמשים במסוף Google Cloud או ב-API.

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

בדרך כלל, מאגרי נתונים מכוונים רק את רשומות היומן שמקורן במשאב. עם זאת, כשמדובר בתיקיות ובארגונים, אפשר ליצור aggregated sinks שמנתבים רשומות יומן מהתיקייה או מהארגון, ומהמשאבים שהם מכילים. במסמך הזה לא מוסבר על מאגרי נתונים מצטברים. מידע נוסף מופיע במאמר סקירה כללית על מאגרי נתונים מצטברים.

כדי ליצור ולנהל יעד ליומנים, אפשר להשתמש במסוף Google Cloud , ב-Cloud Logging API וב-Google Cloud CLI. מומלץ להשתמש במסוף Google Cloud מהסיבות הבאות:

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

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

בקטע ניהול אובייקטים מסוג sink במסמך הזה מוסבר איך לראות ולנהל את אובייקטים מסוג sink של יומנים.

יעדים נתמכים

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

היעדים הבאים נתמכים:

פרויקט אחד (Google Cloud )

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

קטגוריה ביומן

בוחרים ביעד הזה כשרוצים לאחסן את נתוני היומן במשאבים שמנוהלים על ידי Cloud Logging. אפשר להציג ולנתח נתונים ביומן שאוחסנו בדלי יומנים באמצעות שירותים כמו Logs Explorer ו-Observability Analytics.

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

מערך נתונים ב-BigQuery
בוחרים ביעד הזה כשרוצים לצרף את נתוני היומן לנתונים עסקיים אחרים. צריך להפעיל הרשאות כתיבה למערך הנתונים שאתם מציינים. לא מגדירים את היעד של מאגר נתונים כקבוצת נתונים מקושרת ב-BigQuery. מערכי נתונים מקושרים הם לקריאה בלבד.
קטגוריה של Cloud Storage
בוחרים ביעד הזה כשרוצים לאחסן את נתוני היומן לטווח ארוך. הקטגוריה של Cloud Storage יכולה להיות באותו פרויקט שממנו מגיעים רשומות היומן, או בפרויקט אחר. רשומות ביומן מאוחסנות כקובצי JSON.
נושא Pub/Sub
בוחרים ביעד הזה כשרוצים לייצא את נתוני היומן מ-Google Cloud ואז להשתמש בשילובים עם צד שלישי כמו Splunk או Datadog. רשומות היומן מעוצבות בפורמט JSON ואז מנותבות לנושא ב-Pub/Sub.

מגבלות על יעדים

בקטע הזה מתוארות מגבלות שספציפיות ליעד:

  • אם אתם מעבירים רשומות ביומן לקטגוריית יומנים בפרויקט אחר, Error Reporting לא מנתח את הרשומות האלה. Google Cloud מידע נוסף מופיע במאמר בנושא סקירה כללית על Error Reporting.
  • אם אתם מעבירים רשומות ביומן למערך נתונים ב-BigQuery, צריך להפעיל את ההרשאה לכתוב במערך הנתונים ב-BigQuery. אי אפשר להפנות רשומות ביומן לקבוצות נתונים מקושרות, שהן לקריאה בלבד.
  • יכול להיות שיחלפו כמה שעות עד שמאגרי נתונים חדשים שמעבירים נתוני יומן לקטגוריות של Cloud Storage יתחילו להעביר רשומות ביומן. הנתונים בלוחות האלה מתעדכנים מדי שעה.
  • המגבלות הבאות חלות כשהיעד של sink ביומן הוא Google Cloud פרויקט:

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

    לדוגמה, נניח שיעד של sink ביומן בפרויקט A הוא פרויקט B. אז התנאים הבאים מתקיימים:

    • בגלל המגבלה של קפיצה אחת, מאגרי היומנים בפרויקט B לא יכולים לנתב מחדש רשומות ביומן לפרויקט Google Cloud .
    • בקטגוריית היומן _Required של פרויקט B נשמרים רק רשומות יומן שמקורן בפרויקט B. קטגוריה ביומן זו לא מאחסנת רשומות ביומן שמקורן במשאבים אחרים, כולל אלה שמקורן בפרויקט A.
    • אם היררכיית המשאבים של פרויקט A שונה מהיררכיית המשאבים של פרויקט B, רשומה ביומן ש-sink ביומן בפרויקט A מעביר לפרויקט B לא תישלח למאגרי ה-sink המצטברים בהיררכיית המשאבים של פרויקט B.
    • אם לפרויקט A ולפרויקט B יש אותה היררכיית משאבים, רשומות היומן נשלחות למאגרי הנתונים המצטברים בהיררכיה הזו. אם רשומת יומן לא נחסמת על ידי sink מצטבר, נתב היומנים שולח את רשומת היומן אל ה-sinks בפרויקט A.

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

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

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

  1. מפעילים את Cloud Logging API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    להפעלת ה-API

  2. מוודאים ש Google Cloud הפרויקט מכיל רשומות ביומן שאפשר לראות בLogs Explorer.

  3. כדי לקבל את ההרשאות שנדרשות ליצירה, לשינוי או למחיקה של יעד, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד כותב הגדרות של יומנים (roles/logging.configWriter) בפרויקט. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

    מידע על מתן תפקידי IAM מופיע במדריך בקרת הגישה בנושא Logging.

  4. יש לכם משאב ביעד נתמך או שיש לכם אפשרות ליצור משאב כזה.

    כדי להפנות רשומות ביומן ליעד, היעד צריך להתקיים לפני שיוצרים את מאגר הנתונים. אפשר ליצור את היעד בכלGoogle Cloud פרויקט בכל ארגון.

  5. לפני שיוצרים מאגר, חשוב לעיין במגבלות שחלות על יעד המאגר. מידע נוסף זמין בקטע מגבלות על יעדים במאמר הזה.

  6. צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API, לא צריך להגדיר אימות. Google Cloud

    gcloud

    במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

    REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud.

      אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .

יצירת יעד

בקטע הזה מוסבר איך ליצור יעד בפרויקט ב- Google Cloud . אפשר ליצור עד 200 יעדים לכל פרויקט. Google Cloud כדי לראות את המספר והנפח של רשומות היומן שמועברות, אפשר לעיין במדדים של logging.googleapis.com/exports/.

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

כששאילתה מכילה כמה הצהרות, אפשר לציין איך ההצהרות האלה מצורפות או להסתמך על Cloud Logging שמוסיף באופן מרומז את ההגבלה המצטרפת, AND, בין ההצהרות. לדוגמה, נניח שבתיבת דו-שיח של שאילתה או מסנן יש שתי הצהרות, resource.type = "gce_instance" ו-severity >= "ERROR". השאילתה בפועל היא resource.type = "gce_instance" AND severity >= "ERROR". ‫Cloud Logging תומך בהגבלות דיסג'נקטיביות, OR, ובהגבלות קוניונקטיביות, AND. כשמשתמשים בהצהרות OR, מומלץ לקבץ את הסעיפים באמצעות סוגריים.

כדי ליצור יעד:

המסוף

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

    כניסה אל Log Router

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

  2. בוחרים את Google Cloud הפרויקט שממנו מגיעים רשומות היומן שרוצים להעביר.

    לדוגמה, אם רוצים להפנות את הרשומות ביומן Data Access מהפרויקט בשם Project-A לקטגוריית יומנים בפרויקט בשם Project-B, צריך לבחור באפשרות Project-A.

  3. לוחצים על יצירת יעד.

  4. בחלונית פרטי יעד, מזינים את הפרטים הבאים:

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

    • תיאור של יעד הנתונים (אופציונלי): מתארים את המטרה או את תרחיש השימוש של יעד הנתונים.

  5. בחלונית Sink destination, בוחרים את שירות היעד ואת היעד באמצעות התפריט Select sink service. מבצעים אחת מהפעולות הבאות:

    • כדי לנתב רשומות ביומן לשירות שנמצא באותו פרויקטGoogle Cloud , בוחרים באחת מהאפשרויות הבאות:

      • מערך נתונים ב-BigQuery: בוחרים או יוצרים את מערך הנתונים שאליו אפשר לכתוב, כדי לקבל את רשומות היומן שמועברות. אפשר גם להשתמש בטבלאות עם חלוקה למחיצות.
      • קטגוריה של Cloud Storage: בוחרים או יוצרים את הקטגוריה הספציפית של Cloud Storage שאליה ינותבו רשומות היומן.
      • נושא Pub/Sub: בוחרים או יוצרים את הנושא הספציפי לקבלת רשומות היומן שמועברות.
      • Splunk: בוחרים את נושא Pub/Sub לשירות Splunk.
    • כדי לנתב רשומות ביומן לפרויקט אחר של Google Cloud , בוחרים באפשרות Google Cloud פרויקט ומזינים את השם המלא של היעד:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID
      
    • כדי לנתב רשומות ביומן לשירות שנמצא בGoogle Cloud פרויקט אחר, צריך לבצע את הפעולות הבאות:

      1. בוחרים באפשרות משאב אחר.
      2. מזינים את השם המלא של היעד. מידע על התחביר מופיע במאמר פורמטים של נתיבי יעד.
  6. מציינים את הרשומות ביומן שרוצים לכלול:

    1. עוברים לחלונית Choose logs to include in sink (בחירת יומנים להכללה ב-sink).

    2. בשדה Build inclusion filter, מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים לכלול. מידע נוסף על התחביר לכתיבת מסננים זמין במאמר בנושא שפת שאילתות לרישום ביומן.

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

      לדוגמה, כדי להפנות את כל הרשומות ביומן Data Access לקטגוריה ב-Logging, אפשר להשתמש במסנן הבא:

      log_id("cloudaudit.googleapis.com/data_access") OR log_id("externalaudit.googleapis.com/data_access")
      

      אורך המסנן לא יכול לחרוג מ-20,000 תווים.

    3. כדי לוודא שהזנתם את המסנן הנכון, לוחצים על תצוגה מקדימה של היומנים. כלי Logs Explorer ייפתח בכרטיסייה חדשה עם מסנן שאוכלס מראש.

  7. (אופציונלי) מגדירים מסנן החרגה כדי להסיר חלק מרישומי היומן הכלולים:

    1. עוברים לחלונית Choose logs to filter out of sink (בחירת יומנים לסינון מתוך מאגר).

    2. בשדה Exclusion filter name, מזינים שם.

    3. בשדה Build an exclusion filter (יצירת מסנן החרגה), מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה.

      פילטר ההחרגה.

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

  8. לוחצים על יצירת יעד.

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

gcloud

כדי ליצור יעד:

  1. מריצים את הפקודה הבאה gcloud logging sinks create:

    gcloud logging sinks create SINK_NAME SINK_DESTINATION
    

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

    • SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של מאגר אחרי שיוצרים אותו.
    • SINK_DESTINATION: השירות או הפרויקט שאליהם רוצים לנתב את רשומות היומן. מגדירים את SINK_DESTINATION עם הנתיב המתאים, כפי שמתואר בקטע פורמטים של נתיבי יעד.

      לדוגמה, אם יעד ה-sink הוא נושא ב-Pub/Sub, אז SINK_DESTINATION ייראה כך:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      

    אפשר גם לספק את האפשרויות הבאות:

    • --log-filter : משתמשים באפשרות הזו כדי להגדיר מסנן שתואם לרשומות ביומן שרוצים לכלול במאגר. אם לא מציינים ערך למסנן ההכללה, המסנן הזה יתאים לכל רשומות היומן.
    • --exclusion: משתמשים באפשרות הזו כדי להגדיר מסנן החרגה לרשומות ביומן שרוצים להחריג מהניתוב של היעד. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה. אפשר לחזור על האפשרות הזו כמה פעמים, וליצור עד 50 מסנני החרגה לכל מאגר.
    • --description: משתמשים באפשרות הזו כדי לתאר את המטרה או את תרחיש השימוש של מאגר הנתונים.

    לדוגמה, כדי ליצור יעד לניקוז נתונים לקטגוריה ב-Logging, הפקודה יכולה להיראות כך:

    gcloud logging sinks create my-sink logging.googleapis.com/projects/myproject123/locations/global/buckets/my-bucket \
     --log-filter='logName="projects/myproject123/logs/matched"' --description="My first sink"
    

    למידע נוסף על יצירת יעדים באמצעות Google Cloud CLI, אפשר לעיין במאמר gcloud logging sinks.

  2. אם התגובה של הפקודה מכילה מפתח JSON עם התווית "writerIdentity", צריך להעניק לחשבון השירות של יעד הנתונים את ההרשאה לכתוב ליעד הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.

    אין צורך להגדיר הרשאות יעד אם התגובה לא מכילה מפתח JSON עם התווית "writerIdentity".

REST

  1. כדי ליצור יעד ליומן ב Google Cloud פרויקט, משתמשים ב-projects.sinks.create ב-Logging API. באובייקט LogSink, מציינים את הערכים הנדרשים המתאימים בגוף הבקשה של השיטה:

    • name: מזהה של יעד. שימו לב: אחרי שיוצרים את יעד הנתונים, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור יעד נתונים חדש.
    • destination: השירות והיעד שאליהם רוצים לנתב את רשומות היומן. כדי לנתב רשומות ביומן לפרויקט אחר, או ליעד שנמצא בפרויקט אחר, צריך להגדיר את השדה destination עם הנתיב המתאים, כמו שמתואר במאמר פורמטים של נתיבי יעד.

      לדוגמה, אם יעד ה-sink הוא נושא ב-Pub/Sub, אז destination נראה כך:

      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
      
  2. באובייקט LogSink, מציינים את המידע האופציונלי המתאים:

    • filter : מגדירים את השדה filter כך שיתאים לרשומות ביומן שרוצים לכלול ב-Sink. אם לא מגדירים מסנן, כל רשומות היומן מהפרויקטGoogle Cloud מועברות ליעד. חשוב לדעת שאורך המסנן לא יכול לחרוג מ-20,000 תווים.
    • exclusions: מגדירים את השדה הזה כך שיתאים לרשומות ביומן שרוצים להחריג מהיעד. אפשר גם להשתמש בפונקציה sample כדי לבחור חלק מהרשומות ביומן להחרגה. אפשר ליצור עד 50 מסנני החרגה לכל יעד.
    • description: מגדירים את השדה הזה כדי לתאר את המטרה או את תרחיש השימוש של מאגר הנתונים.
  3. מפעילים את הפקודה projects.sinks.create כדי ליצור את יעד הנתונים.

  4. אם התגובה של ה-API מכילה מפתח JSON עם התווית "writerIdentity", צריך לתת לחשבון השירות של יעד הנתונים את ההרשאה לכתוב ליעד הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.

    אין צורך להגדיר הרשאות יעד אם התגובה של ה-API לא מכילה מפתח JSON עם התווית "writerIdentity".

מידע נוסף על יצירת יעדים באמצעות Logging API זמין במאמר LogSink.

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

פורמטים של נתיב היעד

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

  • קטגוריה ביומן של Cloud Logging:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
    
  • פרויקט Google Cloud אחר:

    logging.googleapis.com/projects/DESTINATION_PROJECT_ID
    
  • מערך נתונים ב-BigQuery:

    bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID
    
  • ‫Cloud Storage:

    storage.googleapis.com/BUCKET_NAME
    
  • נושא Pub/Sub:‏

    pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
    

הגדרת הרשאות ליעד

בקטע הזה מוסבר איך מעניקים ל-Logging את ההרשאות לניהול זהויות והרשאות גישה (IAM) כדי לכתוב רשומות ביומן ליעד של מאגר הנתונים. רשימה מלאה של התפקידים וההרשאות ב-Logging זמינה במאמר בקרת גישה.

כשיוצרים יעד, Cloud Logging יוצר חשבון שירות משותף למשאב, אלא אם חשבון השירות הנדרש כבר קיים. יכול להיות שחשבון השירות קיים כי אותו חשבון שירות משמש לכל היעדים במשאב הבסיסי. משאבים יכולים להיות Google Cloud פרויקט, ארגון, תיקייה או חשבון לחיוב.

זהות הכתיבה של יעד היא המזהה של חשבון השירות שמשויך לאותו יעד. לכל פריטי ה-sink יש זהות כותב, מלבד פריטי sink שכותבים לקטגוריית יומנים באותו פרויקט שבו נוצר רשומת היומן. Google Cloud בהגדרה השנייה, לא נדרש חשבון שירות, ולכן השדה writer identity של יעד ההעברה מופיע במסוף כ-None. ה-API והפקודות של Google Cloud CLI לא מדווחים על זהות הכותב.

ההוראות הבאות רלוונטיות לפרויקטים, לתיקיות, לארגונים ולחשבונות לחיוב:

המסוף

  1. מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.

  2. כדי לקבל את זהות בעל הרשאת הכתיבה של ה-sink – כתובת אימייל – מה-sink החדש:

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

      כניסה אל Log Router

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

    2. בסרגל הכלים, בוחרים את הפרויקט שמכיל את יעד ההעברה.
    3. בוחרים באפשרות תפריט ואז באפשרות הצגת פרטים של יעד. זהות הכותב מופיעה בחלונית Sink details.
  3. אם הערך של השדה writerIdentity מכיל כתובת אימייל, צריך להמשיך לשלב הבא. אם הערך הוא None, לא צריך להגדיר הרשאות יעד ל-sink.

  4. מעתיקים את זהות הכתיבה של יעד הנתונים ללוח.

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

  5. נותנים לחשבון המשתמש שצוין בזהות הכותב של יעד הסינכרון את ההרשאה לכתוב נתוני יומן ליעד:

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

      כניסה לדף IAM

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

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

    3. לוחצים על Grant access.

    4. נותנים לחשבון המשתמש שצוין בזהות הכתיבה של יעד הנתונים תפקיד IAM על סמך היעד של יעד הנתונים של היומן:

gcloud

  1. מוודאים שיש לכם גישת בעלים לפרויקטGoogle Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.

  2. מקבלים את חשבון השירות מהשדה writerIdentity ביעד:

    gcloud logging sinks describe SINK_NAME
    
  3. מחפשים את היעד שרוצים לשנות את ההרשאות שלו. אם בפרטים של היעד מופיעה שורה עם writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדה writerIdentity, לא צריך להגדיר הרשאות יעד ל-sink.

    זהות הכתיבה של חשבון השירות נראית כך:

    serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
    
  4. מעניקים לזהות בעל הרשאת הכתיבה של ה-sink את ההרשאה לכתוב נתוני יומן ליעד באמצעות הפקודה gcloud projects add-iam-policy-binding.

    לפני שמשתמשים בפקודה הבאה, צריך להחליף את המשתנים הבאים בערכים:

    • PROJECT_ID: מזהה הפרויקט. מציינים את הפרויקט שבו מאוחסן יעד sink ביומן. אם היעד הוא פרויקט, מציינים את הפרויקט.
    • PRINCIPAL: מזהה של חשבון המשתמש שרוצים להקצות לו את התפקיד. בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא: PRINCIPAL-TYPE:ID. לדוגמה, user:my-user@example.com. רשימה מלאה של הפורמטים האפשריים של PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
    • ROLE: תפקיד IAM. מקצים לזהות הכתיבה של מאגר היעד תפקיד IAM על סמך היעד של מאגר היומן:

      מריצים את הפקודה gcloud projects add-iam-policy-binding:

      gcloud projects add-iam-policy-binding PROJECT_ID --member=PRINCIPAL --role=ROLE
      

REST

מומלץ להשתמש במסוף Google Cloud או ב-Google Cloud CLI כדי להקצות תפקיד לחשבון שירות.

ניהול יעדים

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

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

  • לפרטים
  • עדכון
  • השבתה

    • אי אפשר להשבית את יעד _Required.
    • אפשר להשבית את יעד _Default כדי להפסיק את הניתוב של רשומות ביומן אל קטגוריית _Default Logging.
    • אם רוצים להשבית את _Default sink לכלGoogle Cloud פרויקט או תיקייה חדשים שנוצרו בארגון, כדאי להגדיר הגדרות ברירת מחדל למשאבים ב-Cloud Logging.
  • מחיקה

    • אי אפשר למחוק את מקורות הנתונים _Default או את יעדי הנתונים _Required.
    • כשמוחקים יעד, רשומות היומן לא מנותבות אליו יותר.
    • אם ליעד יש חשבון שירות ייעודי, מחיקת היעד תגרום גם למחיקת חשבון השירות. למאגרי מידע שנוצרו לפני 22 במאי 2023 יש חשבונות שירות ייעודיים. למאגרי נתונים שנוצרו ב-22 במאי 2023 או אחריו יש חשבון שירות משותף. מחיקת היעד לא מוחקת את חשבון השירות המשותף.
  • פתרון בעיות שקשורות לכשלים

  • הצגת נפח היומן ושיעורי השגיאות

בהמשך מפורטות ההוראות לניהול יעד ב Google Cloud פרויקט. במקום פרויקט Google Cloud , אפשר לציין חשבון לחיוב, תיקייה או ארגון:

המסוף

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

    כניסה אל Log Router

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

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

בדף Log Router מוצגים מאגרי המידע במשאב שנבחר. כל שורה בטבלה מכילה מידע על המאפיינים של יעד:

  • Enabled: מציין אם מצב היעד מופעל או מושבת.
  • סוג: שירות היעד של ה-sink. לדוגמה, Cloud Logging bucket.
  • שם: המזהה של יעד הנתונים, כפי שסופק כשנוצר יעד הנתונים. לדוגמה: _Default.
  • תיאור: תיאור של יעד הנתונים, כפי שסופק כשנוצר יעד הנתונים.
  • יעד: השם המלא של היעד שאליו נשלחות רשומות היומן שמועברות במסלול.
  • נוצר: התאריך והשעה שבהם נוצרת יעד ההעברה.
  • העדכון האחרון: התאריך והשעה שבהם בוצע העדכון האחרון של יעד הנתונים.
  • נפח: הנפח הכולל של היומנים שמועברים ליעד של היומנים. הערך כולל את נפח הנתונים שמועבר לדלי יומנים, לפרויקטים או ליעדים אחרים.

בכל שורה בטבלה, התפריט פעולות נוספות כולל את האפשרויות הבאות:

  • הצגת פרטי אובייקט sink: מוצגים השם, התיאור, שירות היעד, היעד ומסנני ההכללה וההחרגה של אובייקט ה-sink. כשלוחצים על עריכה, נפתחת החלונית עריכת יעד.
  • עריכת יעד: פותח את החלונית עריכת יעד שבה אפשר לעדכן את הפרמטרים של היעד.
  • השבתת יעד: מאפשרת להשבית את היעד ולהפסיק את הניתוב של רשומות ביומן ליעד. מידע נוסף על השבתת יעד זמין במאמר הפסקת האחסון של יומנים בקטגוריות של יומנים.
  • Enable sink (הפעלת יעד): מאפשרת להפעיל יעד מושבת ולהפעיל מחדש את הניתוב של רשומות ביומן ליעד.
  • מחיקת יעד: מאפשרת למחוק את היעד ולהפסיק להעביר אליו רשומות ביומן.
  • פתרון בעיות ב-sink: פותח את Logs Explorer, שבו אפשר לפתור בעיות בשגיאות שקשורות ל-sink.
  • הצגת נפח היומן של מאגר הנתונים ושיעורי השגיאות: פתיחת הכלי לבחירת מדדים שבו אפשר להציג ולנתח נתונים ממאגר הנתונים.

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

gcloud

  • כדי להציג את רשימת היעדים בפרויקט Google Cloud , משתמשים בפקודה gcloud logging sinks list, שמתאימה ל-method ‏projects.sinks.list ב-Logging API:

    gcloud logging sinks list
    

    כדי לראות את רשימת היעדים המצטברים, צריך להשתמש באפשרות המתאימה כדי לציין את המשאב שמכיל את היעד. לדוגמה, אם יצרתם את יעד הנתונים ברמת הארגון, צריך להשתמש באפשרות --organization=ORGANIZATION_ID כדי להציג את רשימת יעדי הנתונים של הארגון.

  • כדי לתאר יעד, משתמשים בפקודה gcloud logging sinks describe, שמתאימה ל-method‏ projects.sinks.get של Logging API:

    gcloud logging sinks describe SINK_NAME
    
  • כדי לעדכן יעד, משתמשים בפקודה gcloud logging sinks update, שמתאימה ל-method של ה-API‏ projects.sink.update.

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

    gcloud logging sinks update SINK_NAME NEW_DESTINATION --log-filter=NEW_FILTER

    אם החלקים NEW_DESTINATION או --log-filter לא משתנים, אפשר להשמיט אותם.

    לדוגמה, כדי לעדכן את היעד של sink שנקרא my-project-sink ליעד חדש של קטגוריה של Cloud Storage שנקרא my-second-gcs-bucket, הפקודה תיראה כך:

    gcloud logging sinks update  my-project-sink storage.googleapis.com/my-second-gcs-bucket
    
  • כדי להשבית יעד, משתמשים בפקודה gcloud logging sinks update, שמתאימה לשיטת ה-API‏ projects.sink.update, וכוללים את האפשרות --disabled:

    gcloud logging sinks update SINK_NAME --disabled
    

    כדי להפעיל מחדש את יעד הנתונים, משתמשים בפקודה gcloud logging sinks update, מסירים את האפשרות --disabled ומוסיפים את האפשרות --no-disabled:

    gcloud logging sinks update SINK_NAME --no-disabled
    
  • כדי למחוק יעד, משתמשים בפקודה gcloud logging sinks delete, שמתאימה ל-method ‏projects.sinks.delete ב-API:

    gcloud logging sinks delete SINK_NAME
    

    למידע נוסף על ניהול יעדים באמצעות Google Cloud CLI, אפשר לעיין במאמר בנושא gcloud logging sinks.

REST

  • כדי לראות את היעדים של Google Cloud הפרויקט, קוראים לפונקציה projects.sinks.list.

  • כדי להציג את הפרטים של יעד, מתקשרים אל projects.sinks.get.

  • כדי לעדכן את יעד הנתונים, מתקשרים אל projects.sink.update.

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

  • כדי להשבית יעד, מגדירים את השדה disabled באובייקט LogSink לערך true, ואז קוראים לפונקציה projects.sink.update.

    כדי להפעיל מחדש את יעד הנתונים, מגדירים את השדה disabled באובייקט LogSink לערך false, ואז קוראים ל-projects.sink.update.

  • כדי למחוק יעד, מתקשרים אל projects.sinks.delete.

    מידע נוסף על ניהול יעדים באמצעות Logging API זמין במאמר LogSink.

הפסקת האחסון של רשומות ביומן בדליים של יומנים

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

בהוראות הבאות מוסבר איך להשבית את יעד היומן Google Cloud של הפרויקט שמעביר רשומות ביומן אל מאגרי היומנים _Default:

המסוף

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

    כניסה אל Log Router

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

  2. כדי למצוא את כל ה-sinks שמנתבים רשומות ביומן אל קטגוריה ביומן _Default, מסננים את ה-sinks לפי יעד ומזינים _Default.
  3. לכל יעד, בוחרים באפשרות תפריט ואז באפשרות השבתת היעד.

    היעדים מושבתים עכשיו, והיעדים של הפרויקט Google Cloud כבר לא מעבירים רשומות ביומן אל דלי _Default.

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

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

    כניסה אל Log Router

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

  2. כדי למצוא את כל ה-sinks שמנתבים רשומות ביומן אל קטגוריה ביומן _Default, מסננים את ה-sinks לפי יעד ומזינים _Default.
  3. לכל יעד, לוחצים על תפריט ואז על הפעלת היעד.

gcloud

  1. כדי להציג את רשימת היעדים בפרויקט Google Cloud , משתמשים בפקודה gcloud logging sinks list, שמתאימה ל-method ‏projects.sinks.list ב-Logging API:

    gcloud logging sinks list
    
  2. מזהים את כל מאגרי הנתונים שמובילים לקטגוריית היומנים _Default. כדי לתאר יעד, כולל הצגת שם היעד, משתמשים בפקודה gcloud logging sinks describe, שמתאימה ל-method‏ projects.sinks.get של Logging API:

    gcloud logging sinks describe SINK_NAME
    
  3. מריצים את הפקודה gcloud logging sinks update וכוללים את האפשרות --disabled. לדוגמה, כדי להשבית את יעד הנתונים _Default, משתמשים בפקודה הבאה:

    gcloud logging sinks update _Default  --disabled
    

    ה-sink _Default מושבת עכשיו, והוא כבר לא מעביר רשומות ביומן אל קטגוריה ביומן _Default.

כדי להשבית את שאר מאגרי המידע בפרויקט Google Cloud שמנתבים לקטגוריית _Default, חוזרים על השלבים הקודמים.

כדי להפעיל מחדש את יעד הנתונים, משתמשים בפקודה gcloud logging sinks update, מסירים את האפשרות --disabled ומוסיפים את האפשרות --no-disabled:

gcloud logging sinks update _Default  --no-disabled

REST

  1. כדי לראות את היעדים של Google Cloud הפרויקט, מפעילים את השיטה projects.sinks.list של Logging API.

    מזהים את כל היעדים שמנותבים לקטגוריית _Default.

  2. לדוגמה, כדי להשבית את יעד הנתונים _Default, מגדירים את השדה disabled באובייקט LogSink לערך true, ואז קוראים ל-projects.sink.update.

    מאגר _Default מושבת עכשיו, והוא כבר לא מעביר רשומות ביומן לקטגוריה _Default.

כדי להשבית את שאר מאגרי המידע בפרויקט Google Cloud שמנתבים לקטגוריית _Default, חוזרים על השלבים הקודמים.

כדי להפעיל מחדש יעד, צריך להגדיר את השדה disabled באובייקט LogSink לערך false, ואז לקרוא ל-projects.sink.update.

דוגמאות קוד

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

דוגמאות למסננים

בהמשך מופיעות כמה דוגמאות למסננים שימושיים במיוחד כשיוצרים מאגרי נתונים. בקטע דוגמאות לשאילתות אפשר למצוא דוגמאות נוספות שיכולות לעזור לכם ליצור מסנני הכללה ומסנני החרגה.

שחזור המסנן של יעד _Default

אם ערכתם את המסנן עבור יעד _Default, יכול להיות שתרצו לשחזר את ההגדרות המקוריות של היעד הזה. כשיוצרים את אובייקט ה-sink‏ _Default, הוא מוגדר עם מסנן ההכללה הבא ומסנן החרגה ריק:

  NOT log_id("cloudaudit.googleapis.com/activity") AND NOT \
  log_id("externalaudit.googleapis.com/activity") AND NOT \
  log_id("cloudaudit.googleapis.com/system_event") AND NOT \
  log_id("externalaudit.googleapis.com/system_event") AND NOT \
  log_id("cloudaudit.googleapis.com/access_transparency") AND NOT \
  log_id("externalaudit.googleapis.com/access_transparency")

החרגה של יומנים של קונטיינרים ו-Pods ב-Google Kubernetes Engine

כדי להחריג רשומות ביומן של קונטיינרים ופודים של Google Kubernetes Engine עבור מערכת GKE‏ namespaces, משתמשים במסנן הבא:

resource.type = ("k8s_container" OR "k8s_pod")
resource.labels.namespace_name = (
"cnrm-system" OR
"config-management-system" OR
"gatekeeper-system" OR
"gke-connect" OR
"gke-system" OR
"istio-system" OR
"knative-serving" OR
"monitoring-system" OR
"kube-system")

כדי להחריג רשומות ביומן של צומת Google Kubernetes Engine עבור מערכת GKE‏ logNames, משתמשים במסנן הבא:

resource.type = "k8s_node"
logName:( "logs/container-runtime" OR
"logs/docker" OR
"logs/kube-container-runtime-monitor" OR
"logs/kube-logrotate" OR
"logs/kube-node-configuration" OR
"logs/kube-node-installation" OR
"logs/kubelet" OR
"logs/kubelet-monitor" OR
"logs/node-journal" OR
"logs/node-problem-detector")

כדי לראות את נפח הרשומות ביומן של צומת, קבוצת Pod וקונטיינר של Google Kubernetes Engine שמאוחסנות במאגרי יומנים, משתמשים ב-Metrics Explorer:

החרגה של יומני Dataflow שלא נדרשים לצורך תמיכה

כדי להחריג רשומות ביומן של Dataflow שלא נדרשות לצורך תמיכה, משתמשים במסנן הבא:

resource.type="dataflow_step"
labels."dataflow.googleapis.com/log_type"!="system" AND labels."dataflow.googleapis.com/log_type"!="supportability"

כדי לראות את נפח היומנים של Dataflow שמאוחסנים בדלי היומנים, משתמשים ב-Metrics Explorer.

יכולת תמיכה

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

לדוגמה, רשומות ביומן המערכת של GKE שימושיות לפתרון בעיות באפליקציות ובאשכולות של GKE, כי הן נוצרות לאירועים שמתרחשים באשכול. רשומות היומן האלה יכולות לעזור לכם לקבוע אם קוד האפליקציה או אשכול GKE הבסיסי גורמים לשגיאה באפליקציה. יומני המערכת של GKE כוללים גם רישום ביומן הביקורת של Kubernetes שנוצר על ידי רכיב שרת ה-API של Kubernetes, שכולל שינויים שבוצעו באמצעות הפקודה kubectl ואירועים של Kubernetes.

ב-Dataflow, מומלץ לכתוב לפחות את יומני המערכת (labels."dataflow.googleapis.com/log_type"="system") ואת יומני התמיכה (labels."dataflow.googleapis.com/log_type"="supportability") בדלי יומנים. היומנים האלה חיוניים למפתחים כדי לצפות בצינורות עיבוד הנתונים של Dataflow ולפתור בעיות בהם, ויכול להיות שהמשתמשים לא יוכלו להשתמש בדף Job details (פרטי המשימה) ב-Dataflow כדי לראות את יומני המשימות.

המאמרים הבאים