במאמר הזה נסביר איך ליצור יעדים מצטברים. 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 initREST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .
יצירת יעד מצטבר
כדי להגדיר sink מצטבר, יוצרים את ה-sink ואז מעניקים לו הרשאות כתיבה ליעד. בקטע הזה מוסבר איך ליצור מאגר נתונים משולב. מידע על מתן הרשאות למאגר מופיע בקטע הגדרת הרשאות יעד בדף הזה.
אפשר ליצור עד 200 יעדים לכל תיקייה או ארגון.
המסוף
כדי ליצור מאגר נתונים משולב לתיקייה או לארגון:
-
במסוף Cloud de Confiance , עוברים לדף Log Router:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
בוחרים תיקייה או ארגון קיימים.
לוחצים על יצירת יעד.
בחלונית פרטי יעד, מזינים את הפרטים הבאים:
שם יעד: צריך לספק מזהה ליעד. שימו לב שאחרי שיוצרים את היעד, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור יעד חדש.
תיאור של יעד הנתונים (אופציונלי): מתארים את המטרה או את תרחיש השימוש של יעד הנתונים.
בתפריט 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
בחלונית 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.
בשדה Build inclusion filter, מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים לכלול. אם לא מגדירים מסנן, כל רשומות היומן מהמשאב שנבחר מנותבות ליעד.
לדוגמה, יכול להיות שתרצו ליצור מסנן שיעביר את כל יומני הביקורת של Data Access לקטגוריה אחת ב-Logging. המסנן הזה נראה כך:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")דוגמאות למסננים מופיעות בקטע יצירת מסננים למאגרי נתונים מצטברים בדף הזה.
שימו לב שאורך המסנן לא יכול לחרוג מ-20,000 תווים.
אופציונלי: כדי לוודא שהזנתם את המסנן הנכון, בוחרים באפשרות תצוגה מקדימה של היומנים. כלי Logs Explorer ייפתח בכרטיסייה חדשה עם מסנן שאוכלס מראש.
אופציונלי: בחלונית Choose logs to exclude from the sink (בחירת יומנים להחרגה ממאגר הנתונים), מבצעים את הפעולות הבאות:
בשדה Exclusion filter name, מזינים שם.
בשדה Build an exclusion filter (יצירת מסנן החרגה), מזינים ביטוי מסנן שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה
פילטר ההחרגה.sampleכדי לבחור חלק מהרשומות ביומן להחרגה.לדוגמה, כדי להחריג מניתוב ליעד את רשומות היומן של פרויקט ספציפי, מוסיפים את מסנן ההחרגה הבא:
logName:projects/PROJECT_ID
כדי להחריג רשומות ביומן מכמה פרויקטים, משתמשים באופרטור הלוגי OR כדי לצרף סעיפי
logName.
אפשר ליצור עד 50 מסנני החרגה לכל מאגר. שימו לב שאורך המסנן לא יכול לחרוג מ-20,000 תווים.
לוחצים על יצירת יעד.
כדי להשלים את ההגדרה של מאגר נתונים משולב, צריך לתת לחשבון השירות של מאגר הנתונים הרשאה לכתוב רשומות ביומן ליעד של מאגר הנתונים. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.
gcloud
כדי ליצור מאגר נתונים משולב, משתמשים בפקודה logging sinks create:
כדי ליצור יעד, קוראים לפקודה
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"
נותנים לחשבון השירות של יעד ה-sink הרשאה לכתוב ליעד ה-sink. מידע נוסף מופיע במאמר בנושא הגדרת הרשאות ליעדים.
REST
כדי ליצור יעד מצטבר, משתמשים ב-method organizations.sinks.create או folders.sinks.create של Logging API.
מכינים את הארגומנטים של השיטה באופן הבא:
מגדירים את השדה
parentלארגון או לתיקייה שבהם רוצים ליצור את יעד הנתונים. Cloud de Confiance ההורה חייב להיות אחד מהבאים:organizations/ORGANIZATION_IDfolders/FOLDER_ID
באובייקט
LogSinkבגוף הבקשה של השיטה, מבצעים אחת מהפעולות הבאות:מגדירים את
includeChildrenלהיותTrue.כדי ליצור מאגר נתונים זמני שחוצה את האפליקציה, צריך להגדיר את השדה
interceptChildrenלערךTrue.
מגדירים את השדה
filterכך שיתאים לרשומות ביומן שרוצים לכלול.דוגמאות למסננים מופיעות במאמר בנושא יצירת מסננים למאגרי נתונים מצטברים.
אורך המסנן לא יכול לחרוג מ-20,000 תווים.
מגדירים את שאר השדות של
LogSinkכמו בכל יעד. מידע נוסף זמין במאמר ניתוב יומנים ליעדים נתמכים.מתקשרים אל
organizations.sinks.createאו אלfolders.sinks.createכדי ליצור את הכיור.נותנים לחשבון השירות של יעד ה-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 כדי לנתב ליעד שלו:
המסוף
כדי לקבל מידע על חשבון השירות של יעד הנתונים, צריך לבצע את הפעולות הבאות:
-
במסוף Cloud de Confiance , עוברים לדף Log Router:
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.
בוחרים באפשרות more_vert תפריט ואז באפשרות הצגת פרטים של יעד. זהות הכותב מופיעה בחלונית Sink details.
אם הערך של השדה
writerIdentityמכיל כתובת אימייל, צריך להמשיך לשלב הבא. אם הערך הואNone, אין צורך להגדיר הרשאות יעד.מעתיקים את זהות הכתיבה של יעד הנתונים ללוח. הזהויות של בעלי הרשאת הכתיבה עשויות להיראות שונה בהתאם למשאב שאליו שייך ה-sink, אבל תמיד יש להן את הקידומת
serviceAccount:. זו דוגמה לזהות של כותב:serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.com
-
נותנים לישות הראשית שצוינה על ידי זהות הכותב של יעד הכתיבה את ההרשאה לכתוב נתוני יומן ליעד:
-
נכנסים לדף IAM במסוף Cloud de Confiance :
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שמופיע בה הכותרת המשנית IAM & Admin.
בסרגל הכלים של מסוף Cloud de Confiance , בוחרים את הפרויקט שבו מאוחסן היעד של מאגר הנתונים המצטבר. אם היעד הוא פרויקט, בוחרים את הפרויקט.
לוחצים על Grant access.
מזינים את חשבון המשתמש שצוין על ידי זהות הכתיבה של יעד הסינכרון, ואז מקצים תפקיד IAM:
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
roles/logging.logWriter). באופן ספציפי, חשבון משתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים בהתאם ליעד:
- קטגוריית יומנים: צריך להעניק את התפקיד Logs Bucket Writer (
roles/logging.bucketWriter). - נושא Pub/Sub: צריך להעניק את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher).
- קטגוריית יומנים: צריך להעניק את התפקיד Logs Bucket Writer (
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
-
gcloud
מוודאים שיש לכם גישת בעלים לפרויקטCloud de Confiance שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, צריך לבקש מבעלי הפרויקט להוסיף את זהות הכתיבה כגורם ראשי.
כדי לקבל מידע על חשבון השירות של יעד הנתונים, קוראים לשיטה
gcloud logging sinks describe.לפני שמשתמשים בפקודה הבאה, צריך להחליף את המשתנים הבאים בערכים:
- SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של מאגר אחרי שיוצרים אותו.
מריצים את הפקודה
gcloud logging sinks describe:gcloud logging sinks describe SINK_NAMEאם פרטי יעד ההעברה מכילים שדה עם התווית
writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדהwriterIdentity, לא צריך להגדיר הרשאות יעד ל-sink.מעתיקים את זהות הכתיבה של יעד הנתונים ללוח. בדוגמה הבאה מוצגת זהות של יוצר:
serviceAccount:service-123456789012@gcp-sa-logging.s3ns-system.iam.gserviceaccount.comמעניקים לבעל הרשאת הכתיבה של ה-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. - מקצים אחד מהתפקידים הבאים בהתאם ליעד:
- קטגוריית יומנים: צריך להעניק את התפקיד Logs Bucket Writer (
roles/logging.bucketWriter). - נושא Pub/Sub: צריך להעניק את התפקיד 'פרסום הודעות ב-Pub/Sub' (
roles/pubsub.publisher).
- קטגוריית יומנים: צריך להעניק את התפקיד Logs Bucket Writer (
- לכל היעדים, צריך להקצות את התפקיד Logs Writer (
מריצים את הפקודה
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 כדי להקצות תפקיד לחשבון השירות.
המאמרים הבאים
איך יוצרים תצוגות של יומנים בקטגוריית יומנים תצוגות יומנים מאפשרות להעניק לחשבונות משתמשים גישת קריאה לקבוצת משנה של רשומות ביומן שמאוחסנות בקטגוריית יומנים.
מידע על ניהול אובייקטים קיימים מסוג sink מופיע במאמר ניתוב יומנים ליעדים נתמכים: ניהול אובייקטים מסוג sink.
אם נתקלתם בבעיות במהלך השימוש באובייקטים מסוג sink לניתוב יומנים, תוכלו להיעזר במאמר פתרון בעיות שקשורות לניתוב ולאובייקטים מסוג sink.
במאמר הצגת יומנים ביעדי sink מוסבר איך לראות את היומנים ביעדים שלהם, וגם איך היומנים מעוצבים ומאורגנים.