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

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

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

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

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

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

  • יש לכם אחד מתפקידי ה-IAM הבאים בCloud de Confiance ארגון או בתיקייה שמהם אתם מעבירים רשומות ביומן.

    • בעלים (roles/owner)
    • אדמין ב-Logging (roles/logging.admin)
    • Logs Configuration Writer (roles/logging.configWriter)

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

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

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

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

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

    המסוף

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

    gcloud

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

    gcloud init

    REST

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

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

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

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

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

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

המסוף

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

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

    עוברים אל Log Router

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

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

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

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

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

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

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

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

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

      • Cloud de Confiance project

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID
        
      • קטגוריה ביומן ב-Cloud Logging

        logging.googleapis.com/projects/DESTINATION_PROJECT_ID/locations/LOCATION/buckets/BUCKET_NAME
        
  6. בחלונית Choose logs to include in sink (בחירת יומנים שיש לכלול ב-sink), בוחרים את המשאבים שרוצים לכלול ב-sink.

    • למאגר נתונים זמני שחוסם את הגישה, בוחרים באפשרות Intercept logs ingested by this organization and all child resources (חסימת הגישה ליומנים שנקלטים בארגון הזה ובכל משאבי הצאצא).

    • אם מדובר ב-sink שלא מיירט את הנתונים, בוחרים באפשרות Include logs ingested by this resource and all child resources.

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

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

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

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

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

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

  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. לוחצים על יצירת יעד.

  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"
    

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

    • כדי ליצור sink שחוסם את הגישה, כוללים את האפשרות --intercept-children.

    לדוגמה, אם יוצרים מאגר נתונים (sink) מצטבר ברמת התיקייה, שהיעד שלו הוא נושא 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. נותנים לחשבון השירות של יעד ה-sink הרשאת כתיבה ליעד ה-sink. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.

REST

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

  1. מגדירים את השדה parent לארגון Cloud de Confiance או לתיקייה שבהם רוצים ליצור את יעד הנתונים. ההורה חייב להיות אחד מהבאים:

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

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

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

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

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

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

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

  5. מתקשרים אל organizations.sinks.create או אל folders.sinks.create כדי ליצור את הכיור.

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

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

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

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

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

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

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

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

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

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

resource.type="gce_instance"

עם המסנן הקודם, רשומות ביומן עם סוג משאב של מכונות VM ב-Compute Engine שנכתבות לכל צאצא של הארגון הזה מנותבות על ידי מאגר נתונים משותף ליעד.

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

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

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, כולל רשומות ביומן שמקורן בפרויקטים של Cloud de Confiance שהם צאצאים של my-folder, לא מנותבות ליעד.

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

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

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

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

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

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

sample(insertId, 0.10) AND ...

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

מידע נוסף על מסננים של Cloud Logging זמין במאמר בנושא שפת שאילתות של Logging.

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

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

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

  • החל מ-22 במאי 2023, כשיוצרים מאגר נתונים ולא קיים חשבון שירות למשאב הבסיסי, שירות Logging יוצר את חשבון השירות. הרישום ביומן משתמש באותו חשבון שירות לכל מאגרי הנתונים (sinks) במשאב הבסיסי. משאבים יכולים להיות Cloud de Confiance פרויקט, ארגון, תיקייה או חשבון לחיוב.
  • לפני 22 במאי 2023, שירות Logging יצר חשבון שירות לכל יעד. החל מ-22 במאי 2023, שירות Logging משתמש בחשבון שירות משותף לכל היעדים במשאב הבסיסי.

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

כדי להגדיר הרשאות ל-sink כדי לנתב ליעד שלו:

המסוף

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

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

      כניסה אל Log Router

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

    2. בוחרים באפשרות תפריט ואז באפשרות הצגת פרטים של יעד. זהות הכותב מופיעה בחלונית Sink details.

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

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

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

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

      כניסה לדף IAM

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

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

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

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

gcloud

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

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

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

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

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

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

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

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

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

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

      • לכל היעדים, צריך להעניק את התפקיד Logs Writer (roles/logging.logWriter). באופן ספציפי, לחשבון המשתמש צריכה להיות ההרשאה logging.logEntries.route.
      • מקצים אחד מהתפקידים הבאים בהתאם ליעד:

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

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

REST

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

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