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

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

מגבלות

כשמגדירים מאגר נתונים מסוג aggregated sink, חלות המגבלות הבאות:

  • נתיב יעד יכול לכלול רק נקודת קצה גלובלית של שירות, כמו pubsub.googleapis.com. אי אפשר לכלול נקודת קצה של שירות אזורי (REP) כמו pubsub.LOCATION.rep.googleapis.com. כאן מפורטים הפורמטים של נתיבי היעד שנתמכים.

  • אי אפשר לנתב נתוני יומנים לנושאי Pub/Sub עם הגבלות במעבר. אם מגדירים sink ביומן לנושא Pub/Sub עם הגבלות על נתונים במעבר, יכול להיות שיוצגו topic_region_not_allowedשגיאות בהגדרות ויומנים שהושמטו.

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

לפני שיוצרים sink, צריך לוודא את הדברים הבאים:

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

  • יש לכם Google Cloud תיקייה או ארגון עם רשומות ביומן שאתם יכולים לראות ב-Logs Explorer.

  • יש לכם אחד מהתפקידים הבאים בניהול זהויות והרשאות גישה (IAM) בארגון או בתיקייה ב-Google Cloud שמהם אתם מנתבים את רשומות היומן:

    • בעלים (roles/owner)
    • אדמין ב-Logging‏ (roles/logging.admin)
    • כתיבת הגדרות של יומנים (roles/logging.configWriter)

    ההרשאות שכלולות בתפקידים האלה מאפשרות ליצור, למחוק או לשנות כיורים. במדריך בקרת הגישה של Logging מוסבר איך מגדירים תפקידים ב-IAM.

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

  • בוחרים את הממשק שבו רוצים להשתמש:

    המסוף

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

    gcloud

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

    הפעלת 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 .

יצירת יעד מצטבר

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

אפשר ליצור עד 200 כיורים לכל תיקייה או ארגון.

המסוף

כדי ליצור כיור נתונים נצברים לתיקייה או לארגון:

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

    נכנסים לדף Log Router.

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

  2. בוחרים תיקייה או ארגון קיימים.

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

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

    • ‫Sink name: מזהה של ה-sink. אחרי שיוצרים את הכיור, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור כיור חדש.

    • ‫Sink description (אופציונלי): תיאור המטרה או תרחיש השימוש של הכיור.

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

    • בשביל יעד מסוג intercepting sink, בוחרים באפשרות Google Cloud project ואז מזינים את השם המלא של היעדGoogle Cloud project:

      logging.googleapis.com/projects/DESTINATION_PROJECT_ID
      
    • אם הכיור לא מיירט, בוחרים את היעד ומזינים את השם המלא שלו. אפשר להשתמש ביעדים הבאים:

      • Google Cloud project

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID
        
      • קטגוריית רישום ביומן

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

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

        bigquery.googleapis.com/projects/DESTINATION_PROJECT_ID/datasets/DATASET_ID
        
      • קטגוריה של Cloud Storage

        storage.googleapis.com/BUCKET_NAME
        
      • Splunk

        מזינים את הנושא ב-Pub/Sub עבור שירות Splunk.

  6. בחלונית Choose logs to include in sink, בוחרים את המשאבים שרוצים לכלול בכיור.

    • כדי ליירט את היומנים, בוחרים באפשרות Intercept logs ingested by this organization and all child resources.

    • בכיור ללא יירוט, בוחרים באפשרות Include logs ingested by this resource and all child resources.

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

    לדוגמה, יכול להיות שתרצו ליצור מסנן כדי לנתב את כל יומני הביקורת של Data Access לקטגוריה אחת של Logging. המסנן נראה כך:

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

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

    שימו לב: האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.

  8. אופציונלי: כדי לוודא שהזנתם את המסנן הנכון, בוחרים באפשרות Preview logs. הפעולה הזו פותחת את הכלי "מציג הלוגים" בכרטיסייה חדשה, עם מסנן שמולא מראש.

  9. אופציונלי: בחלונית Choose logs to exclude from the sink (בחירת יומנים להחרגה ממאגר הנתונים), מבצעים את הפעולות הבאות:

    1. בשדה Exclusion filter name (שם מסנן ההחרגה), מזינים שם.

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

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

      logName:projects/PROJECT_ID
      

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

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

  10. לוחצים על Create sink.

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

gcloud

כדי ליצור כיור נתונים נצברים, משתמשים בפקודה logging sinks create:

  1. כדי ליצור כיור, מריצים את הפקודה gcloud logging sinks create וכוללים את הדגל --include-children.

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

    • ‫SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של כיור אחרי שיוצרים אותו.
    • ‫SINK_DESTINATION: השירות או הפרויקט שאליו רוצים לנתב את רשומות היומן. במאמר פורמטים של נתיבי יעדים מוסבר על הפורמט של היעדים האלה.
    • ‫INCLUSION_FILTER: מסנן ההכללה של יעד. דוגמאות מופיעות במאמר בנושא מסננים למאגרי נתונים מצטברים.
    • ‫FOLDER_ID: מזהה התיקייה. אם רוצים ליצור כיור ברמת הארגון, מחליפים את --folder=FOLDER_ID ב---organization=ORGANIZATION_ID.

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

    gcloud logging sinks create SINK_NAME \
      SINK_DESTINATION  --include-children \
      --folder=FOLDER_ID --log-filter="INCLUSION_FILTER"
    

    כדי ליצור מאגר נתונים זמני ליירוט, צריך לכלול גם את הדגל --intercept-children.

    לדוגמה, אם אתם יוצרים כיור נתונים נצברים ברמת התיקייה שהיעד שלו הוא נושא Pub/Sub, הפקודה שלכם תיראה כך:

    gcloud logging sinks create SINK_NAME \
      pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID --include-children \
      --folder=FOLDER_ID --log-filter="logName:activity"
  2. נותנים לחשבון השירות של הכיור הרשאה לכתוב ליעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.

REST

כדי ליצור יעד מצטבר, משתמשים ב-method‏ organizations.sinks.create או folders.sinks.create של Logging API. מכינים את הארגומנטים לשיטה באופן הבא:

  1. מגדירים את השדה parent לארגון או לתיקייה שבהם רוצים ליצור את הכיור, Google Cloud . ההורה חייב להיות אחד מהבאים:

    • organizations/ORGANIZATION_ID
    • folders/FOLDER_ID
  2. באובייקט LogSink בגוף הבקשה של ה-method, מבצעים אחת מהפעולות הבאות:

    • מגדירים את includeChildren להיות true.

    • כדי ליצור מאגר נתונים זמני שחוצה את השרתים, צריך להגדיר את השדה interceptChildren לערך true.

  3. מגדירים את השדה filter כך שיתאים לרשומות ביומן שרוצים לכלול.

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

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

  4. מגדירים את שאר השדות של LogSink כמו בכל כיור. מידע נוסף מופיע במאמר ניתוב יומנים ליעדים נתמכים.

  5. כדי ליצור את הכיור, צריך להפעיל את organizations.sinks.create או את folders.sinks.create.

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

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

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

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

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

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

אם היעד של הכיור מוגן על ידי גבולות גזרה לשירות של VPC Service Controls, צריך להוסיף גם כלל תעבורת נתונים נכנסת (ingress) לגבולות הגזרה של היעד, שמאפשר גישה מזהות הכותב של הכיור. מידע נוסף מופיע בקטע מגבלות.

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

המסוף

  1. כדי לקבל מידע על חשבון השירות של הכיור:

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

      נכנסים לדף Log Router.

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

    2. לוחצים על Menu ואז על View sink details. זהות הכותב מופיעה בחלונית Sink details.

    3. אם הערך של השדה writerIdentity מכיל כתובת אימייל, ממשיכים לשלב הבא. כשהערך הוא None, לא צריך להגדיר הרשאות ליעד.

    4. מעתיקים את זהות הכותב של המאגר ללוח. הזהויות של הכותבים עשויות להיראות שונות בהתאם למשאב שאליו שייך יעד הנתונים, אבל תמיד יש להן את הקידומת serviceAccount:. דוגמה לזהות של כותב:

      serviceAccount:service-123456789012@gcp-sa-logging.iam.gserviceaccount.com
      
  2. נותנים לחשבון הראשי שצוין בזהות הכותב של הכיור את ההרשאה לכתוב נתוני יומן ביעד:

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

      נכנסים לדף IAM.

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

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

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

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

gcloud

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

  2. כדי לקבל מידע על חשבון השירות של הכיור, מריצים את הפקודה gcloud logging sinks describe.

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

    • ‫SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של כיור אחרי שיוצרים אותו.

    מריצים את הפקודה gcloud logging sinks describe:

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

  4. מעתיקים את זהות הכותב של המאגר ללוח. בדוגמה הבאה מוצגת זהות של כותב:

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

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

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

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

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

REST

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

מסננים של מאגרי נתונים מצטברים

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

בחלק מהדוגמאות נעשה שימוש בסימון הבא:

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

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

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

צריך לבחור את מקור היומן

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

resource.type="gce_instance"

בעזרת המסנן הזה, הכיור המצטבר מנתב ליעד את רשומות היומן ממכונות Compute Engine בכל משאב צאצא של הארגון.

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

המסננים הבאים מגבילים את רשומות היומן לפרויקטים, לתיקיות או לארגונים ספציפיים ב- Google Cloud :

logName:"projects/PROJECT_ID/logs/" AND ... 
logName:("projects/PROJECT_A_ID/logs/" OR "projects/PROJECT_B_ID/logs/") AND ... 
logName:"folders/FOLDER_ID/logs/" AND ... 
logName:"organizations/ORGANIZATION_ID/logs/" AND ... 

לדוגמה, כדי לנתב רק רשומות ביומן שנוצרו על ידי מכונות של Compute Engine ומקורן בתיקייה my-folder, משתמשים במסנן הבא:

logName:"folders/my-folder/logs/" AND resource.type="gce_instance"

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

בחירת המשאב במעקב

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

logName:"projects/PROJECT_ID/logs" AND
resource.type=RESOURCE_TYPE AND
resource.labels.instance_id=INSTANCE_ID

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

בחירת דוגמה של רשומות ביומן

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

sample(insertId, 0.10) AND ...

מידע נוסף זמין במאמר בנושא הפונקציה sample.

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

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