כיורים נצברים ב-Cloud Logging מאפשרים לכם לשלב רשומות ביומן מכל המשאבים בתיקייה או בארגון, ולנתב אותן ליעד מרכזי. אפשר להגדיר את אובייקטי ה-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
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:
gcloud initREST
כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.
התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.
מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Google Cloud .
יצירת sink מצטבר
כדי להגדיר כיור נתונים נצברים, יוצרים את הכיור ואז נותנים לו הרשאות כתיבה ליעד. בקטע הזה מוסבר איך ליצור כיור נתונים נצברים. למידע על הענקת הרשאות לכיור, ראו הגדרת הרשאות יעד.
אפשר ליצור עד 200 כיורים לכל תיקייה או ארגון.
המסוף
כדי ליצור כיור נתונים מצטברים לתיקייה או לארגון:
-
נכנסים לדף Log Router במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
בוחרים תיקייה או ארגון קיימים.
לוחצים על Create sink.
בקטע Sink details, מזינים את הפרטים הבאים:
Sink name: מזהה של ה-sink. אחרי שיוצרים את הכיור, אי אפשר לשנות את השם שלו, אבל אפשר למחוק אותו וליצור כיור חדש.
Sink description (אופציונלי): תיאור המטרה או תרחיש לדוגמה של הכיור.
בתפריט Select sink service, בוחרים את סוג היעד ומשלימים את תיבת הדו-שיח כדי לציין את היעד. אפשר לבחור יעד קיים או ליצור יעד חדש.
כדי ליירט את הכיור, בוחרים באפשרות Google Cloud project ומזינים את השם המלא של פרויקט היעדGoogle Cloud :
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
נושא Pub/Sub
אל תזינו שם של נושא ב-Pub/Sub שאוכף הגבלות על נתונים במעבר.
pubsub.googleapis.com/projects/DESTINATION_PROJECT_ID/topics/TOPIC_ID
בחלונית 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.
בשדה מסנן הכללה, מזינים ביטוי סינון שתואם לרשומות ביומן שרוצים לכלול. אם לא מגדירים מסנן, כל רשומות היומן מהמשאב שנבחר מנותבות ליעד.
לדוגמה, יכול להיות שתרצו ליצור מסנן כדי לנתב את כל יומני הביקורת של Data Access לקטגוריית Logging אחת. המסנן הזה נראה כך:
LOG_ID("cloudaudit.googleapis.com/data_access") OR LOG_ID("externalaudit.googleapis.com/data_access")דוגמאות מופיעות במאמר מסננים לכיורים נצברים.
שימו לב: האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.
אופציונלי: כדי לוודא שהזנתם את המסנן הנכון, בוחרים באפשרות Preview logs. הפעולה הזו פותחת את דף Logs Explorer בכרטיסייה חדשה, כשהמסנן מאוכלס מראש.
אופציונלי: בחלונית Choose logs to exclude from the sink, מבצעים את הפעולות הבאות:
בשדה שם מסנן ההחרגה, מזינים שם.
בשדה Build an exclusion filter, מזינים ביטוי סינון שתואם לרשומות ביומן שרוצים להחריג. אפשר גם להשתמש בפונקציה
sampleכדי לבחור חלק מרשומות היומן להחרגה.לדוגמה, כדי להחריג את רשומות היומן מפרויקט ספציפי כך שלא ינותבו ליעד, מוסיפים את מסנן ההחרגה הבא:
logName:projects/PROJECT_ID
כדי להחריג רשומות ביומן מכמה פרויקטים, צריך להשתמש באופרטור הלוגי OR כדי לצרף משפטי
logName.
אפשר ליצור עד 50 מסנני החרגה לכל sink. שימו לב: האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.
לוחצים על Create sink.
כדי להשלים את ההגדרה של ה-sink המצטבר, צריך לתת לחשבון השירות של ה-sink הרשאה לכתוב רשומות ביומן ליעד של ה-sink. מידע נוסף זמין במאמר הגדרת הרשאות יעד.
gcloud
כדי ליצור כיור נתונים נצבר, משתמשים בפקודה logging sinks create:
כדי ליצור sink, מריצים את הפקודה
gcloud logging sinks createוכוללים את הדגל--include-children.לפני שמריצים את הפקודה הבאה, צריך להחליף את הערכים הבאים:
- SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של הכיור אחרי שיוצרים אותו.
- SINK_DESTINATION: השירות או הפרויקט שאליו רוצים לנתב את רשומות היומן. במאמר פורמטים של נתיבי יעדים מוסבר על הפורמט של היעדים האלה.
- INCLUSION_FILTER: מסנן ההכללה של sink. דוגמאות מופיעות במאמר מסננים לכיורים נצברים.
- 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"
נותנים לחשבון השירות של הכיור הרשאה לכתוב ליעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.
REST
כדי ליצור כיור נתונים נצברים, משתמשים ב-method organizations.sinks.create או ב-method folders.sinks.create של Logging API.
מכינים את הארגומנטים לשיטה באופן הבא:
מגדירים את השדה
parentבתור הארגון או התיקייה שבהם רוצים ליצור את הכיור, Google Cloud . ההורה חייב להיות אחד מהבאים:organizations/ORGANIZATION_IDfolders/FOLDER_ID
באובייקט
LogSinkבגוף הבקשה של ה-method, מבצעים אחת מהפעולות הבאות:מגדירים את
includeChildrenלהיותtrue.כדי ליצור כיור ליירוט, צריך גם להגדיר את השדה
interceptChildrenל-true.
מגדירים את השדה
filterכך שיתאים לרשומות ביומן שרוצים לכלול.דוגמאות מופיעות במאמר מסננים לכיורים נצברים.
האורך של מסנן לא יכול להיות יותר מ-20,000 תווים.
מגדירים את שאר השדות של
LogSinkכמו בכל כיור. מידע נוסף מופיע במאמר ניתוב יומנים ליעדים נתמכים.כדי ליצור את המאגר, מפעילים את
organizations.sinks.createאו אתfolders.sinks.create.נותנים לחשבון השירות של הכיור הרשאה לכתוב ליעד של הכיור. מידע נוסף זמין במאמר הגדרת הרשאות יעד.
יכול להיות שיעברו כמה דקות עד שהשינויים בכיור יחולו.
הגדרת הרשאות ליעד
בקטע הזה מוסבר איך להעניק לזהות הכותב של ה-sink ביומן את הרשאות ה-IAM הנדרשות, כדי שה-sink יוכל לכתוב רשומות ביומן ליעד של ה-sink. זהות הכותב היא המזהה של חשבון השירות שמשויך לכיור. הזהות הזו כוללת כתובת אימייל שמזהה את חשבון המשתמש שצריך לקבל גישה כדי לכתוב נתונים ביעד.
אם ה-sink ביומן מנתב רשומות יומן לקטגוריית יומנים באותו פרויקט, לא צריך להגדיר הרשאות יעד. בהגדרה הזו לא צריך חשבון שירות. בכל שאר ההגדרות, מערכת Logging יוצרת ומנהלת באופן אוטומטי את חשבון השירות של ה-sink ביומן, ואתם צריכים להגדיר את ההרשאות ליעד:
- החל מ-22 במאי 2023, הכלי Logging משתמש באותו חשבון שירות לכל המאגרים במשאב הבסיסי. המשאבים יכולים להיות פרויקט, ארגון, תיקייה או חשבון לחיוב ב-Google Cloud .
- לפני 22 במאי 2023, נוצר ב-Logging חשבון שירות לכל sink.
כדי להגדיר הרשאות לכיור לניתוב ליעד שלו, מבצעים את הפעולות הבאות:
המסוף
כדי לקבל מידע על חשבון השירות של הכיור:
-
נכנסים לדף Log Router במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה עם כותרת המשנה Logging.
לוחצים על more_vert Menu ואז על View sink details. זהות הכותב מופיעה בחלונית Sink details.
אם הערך של השדה
writerIdentityמכיל כתובת אימייל, ממשיכים לשלב הבא. כשהערך הואNone, לא צריך להגדיר הרשאות ליעד.מעתיקים את זהות הכותב של המאגר ללוח. זהויות הכותבים עשויות להיראות שונות בהתאם למשאב שאליו שייך הכיור, אבל תמיד יש להן את הקידומת
serviceAccount:. כך נראית זהות כותב לדוגמה:serviceAccount:service-123456789012@gcp-sa-logging.
-
נותנים לחשבון הראשי שצוין בזהות הכותב של הכיור את ההרשאה לכתוב נתוני יומן ביעד:
-
נכנסים לדף IAM במסוף Google Cloud :
אם אתם משתמשים בשורת החיפוש כדי למצוא את הדף הזה, בחרו בתוצאה שכותרת המשנה שלה היא IAM & Admin.
בסרגל הכלים של מסוף Google Cloud , בוחרים את הפרויקט שבו מאוחסן היעד של הכיור המצטבר. אם היעד הוא פרויקט, בוחרים את הפרויקט.
לוחצים על Grant access.
מזינים את חשבון המשתמש שצוין בזהות הכותב של הכיור, ואז מקצים תפקיד IAM:
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
roles/logging.logWriter). באופן ספציפי, חשבון המשתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים, בהתאם ליעד:
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
roles/logging.bucketWriter). - נושא Pub/Sub: מקצים את התפקיד "פרסום הודעות ב-Pub/Sub" (
roles/pubsub.publisher).
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
-
gcloud
מוודאים שיש לכם גישת בעלים בפרויקט ב-Google Cloud שמכיל את היעד. אם אין לכם גישת בעלים ליעד של ה-sink, בקשו מ-Project Owner להוסיף את זהות הכותב כישות מורשית.
כדי לקבל מידע על חשבון השירות של הכיור, מריצים את הפקודה
gcloud logging sinks describe.לפני שמריצים את הפקודה הבאה, צריך להחליף את הערכים הבאים:
- SINK_NAME: השם של ה-sink ביומן. אי אפשר לשנות את השם של הכיור אחרי שיוצרים אותו.
מריצים את הפקודה
gcloud logging sinks describe:gcloud logging sinks describe SINK_NAMEאם פרטי הכיור מכילים שדה עם התווית
writerIdentity, ממשיכים לשלב הבא. אם הפרטים לא כוללים שדהwriterIdentity, לא צריך להגדיר הרשאות יעד לכיור.מעתיקים את זהות הכותב של המאגר ללוח. כך נראית זהות של כותב:
serviceAccount:service-123456789012@gcp-sa-logging.מריצים את הפקודה
gcloud projects add-iam-policy-bindingכדי לתת לזהות הכותב של הכיור הרשאה לכתוב נתוני יומן ביעד.לפני שמריצים את הפקודה הבאה, צריך להחליף את הערכים הבאים:
- PROJECT_ID: מזהה הפרויקט. בוחרים את הפרויקט שבו מאוחסן היעד של המאגר המצטבר. אם היעד הוא פרויקט, בוחרים את הפרויקט.
- PRINCIPAL: מזהה של חשבון המשתמש שרוצים לתת לו את התפקיד. בדרך כלל, מזהי החשבונות הראשיים מופיעים בפורמט הבא:
PRINCIPAL-TYPE:ID. לדוגמה,. רשימה מלאה של הפורמטים האפשריים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. ROLE: תפקיד ב-IAM. מקצים לזהות הכותב של ה-sink תפקיד ב-IAM, בהתאם ליעד של ה-sink ביומן:
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
roles/logging.logWriter). באופן ספציפי, חשבון המשתמש צריך את ההרשאהlogging.logEntries.route. - מקצים אחד מהתפקידים הבאים, בהתאם ליעד:
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
roles/logging.bucketWriter). - נושא Pub/Sub: מקצים את התפקיד "פרסום הודעות ב-Pub/Sub" (
roles/pubsub.publisher).
- קטגוריית יומנים: מקצים את התפקיד כותב קטגוריית יומנים (
- לכל היעדים, צריך להקצות את התפקיד "כתיבה ביומן" (
מריצים את הפקודה
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.
צריך לבחור את מקור היומן
כדי לנתב רשומות ביומן מכל המשאבים הצאצאים, אל תציינו פרויקט, תיקייה או ארגון במסנני ההכללה וההחרגה של ה-sink. לדוגמה, נניח שאתם מגדירים כיור נתונים נצברים לארגון עם המסנן הבא:
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.
המאמרים הבאים
יצירת תצוגות של יומנים בקטגוריית יומנים: תצוגות של יומנים מאפשרות לתת לחשבונות משתמשים גישת קריאה לקבוצת משנה של רשומות היומן שמאוחסנות בקטגוריית יומנים.