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

במאמר הזה נסביר איך ליצור יעדים מצטברים. ‫Aggregated sinks מאפשרים לכם לשלב ולנתב יומנים שנוצרו על ידי משאבים שלCloud de Confiance by S3NS הארגון או התיקייה שלכם למיקום מרכזי.

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

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

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

  • יש לכם 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 פרויקט, הפרויקט יכול להיות בכל ארגון. כל שאר היעדים יכולים להיות בכל פרויקט בכל ארגון.

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

    המסוף

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

    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
        
      • נושא Pub/Sub

        pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
        
  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.

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

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

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

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

בדוגמאות מסוימות אנחנו משתמשים בסימון הבא:

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

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

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

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

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

resource.type="gce_instance"

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

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

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

כדי לנתב רשומות ביומן רק ממשאב ספציפי במעקב ב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. מעתיקים את זהות הכתיבה של יעד הנתונים ללוח. הזהויות של בעלי הרשאת הכתיבה עשויות להיראות שונה בהתאם למשאב שאליו שייך ה-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 על סמך היעד של מאגר היומן:

    מריצים את הפקודה 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 כדי להקצות תפקיד לחשבון השירות.

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