אתם יכולים להשתמש ב-Cloud Logging כדי לנתב רשומות יומן משירותי Google Cloud , מהאפליקציות שלכם ומספקי ענן אחרים ליעדים לאחסון, לניתוח ולייצוא לצדדים שלישיים.
כברירת מחדל, Cloud Logging מעביר את כל רשומות היומן למאגרי יומנים בפרויקט, בתיקייה או בארגון שבהם הן נוצרו. עם זאת, אפשר להגדיר יעד ליומנים כדי לנתב את נתוני היומנים לדליים בהתאמה אישית או ל-Pub/Sub. ב-Pub/Sub אפשר לייצא את הנתונים לכלים של צד שלישי.
העברה לעומת ייצוא של רשומות ביומן
ניתוב הוא התהליך של העברת רשומות ביומן שמתקבלות על ידי Google Cloud פרויקט, תיקייה או ארגון ליעד. יעד הוא שירות שמבצע פעולה כלשהי על רשומות ביומן שהתקבלו. לדוגמה, אתם יכולים להפנות רשומות ביומן לקטגוריית יומנים. יעד כזה סורק את רשומות היומן כדי למצוא מידע על שגיאות, ואז כותב אותן באחסון.
ייצוא הוא תהליך של העברת רשומות ביומן מ- Google Cloud למיקום חיצוני. לדוגמה, אפשר לנתב רשומות ביומן ל-Pub/Sub ואז לייצא אותן לכלים של צד שלישי.
Cloud Logging משתמש ביעדי יומנים כדי לנתב רשומות ביומן ליעדים. כברירת מחדל, רשומות היומן מנותבות לאחד משני מאגרי יומנים בGoogle Cloud פרויקט, בתיקייה או בארגון. אתם יכולים ליצור מאגרי יומנים כדי לנתב את נתוני היומן ליעדים אחרים. אפשר גם לשנות את אחד ממאגרי היומנים שנוצרו על ידי המערכת. במסמך הזה מתוארות האפשרויות האלה.
בעזרת Logs Explorer אפשר להוריד רשומות ביומן שמאוחסנות בקטגוריות של יומנים לאחסון מקומי. עם זאת, אפשרות ההורדה מוגבלת ל-10,000 רשומות ביומן. כדי לייצא את הרשומות ביומן מ-Google Cloud, צריך להגדיר sink ביומן כדי לנתב את הרשומות הנכנסות ביומן ל-Pub/Sub, ואז לייצא את הנתונים האלה מ- Google Cloud.
מידע על נתבי יומנים
לכל Google Cloud פרויקט, חשבון לחיוב, תיקייה וארגון יש נתב יומנים, שמנהל את הזרימה של רשומות היומן דרך מאגרי מידע ברמת המשאב. כלי לניתוב יומנים מנהל גם את הזרימה של רשומה ביומן דרך מאגרי מידע שנמצאים בהיררכיית המשאבים של הרשומה. מאגרי נתונים קובעים איך רשומות ביומן מנותבות ליעדים.
נתב יומנים מאחסן רשומה ביומן באופן זמני. ההתנהגות הזו מספקת חיץ מפני שיבושים זמניים והפסקות זמניות שעשויים להתרחש כשערך ביומן עובר דרך מאגרי מידע. אחסון זמני לא מגן מפני שגיאות בהגדרות.
האחסון הזמני של נתבי יומנים שונה מהאחסון לטווח ארוך שמופיע בקטגוריות של יומנים.
המערכת מתעלמת מרישומים ביומן עם חותמות זמן שחלפו יותר מתקופת השמירה של היומנים או שחלפו יותר מ-24 שעות.
מידע על פריטי Sink ביומן
כש-sink ביומן מקבל רשומה ביומן, הוא קובע אם להתעלם ממנה או להפנות אותה אל היעד של ה-sink. אובייקט ה-sink ביומן משווה את רשומת היומן למסננים שלו כדי לקבל את ההחלטה הזו. יעד של sink יכול להיות פרויקט, מיקום אחסון או שירות כמו Pub/Sub. לדוגמה, מאגר יכול לנתב רשומות ביומן לקטגוריית יומנים.
יעדי יומנים שייכים למשאב Google Cloud מסוים: Google Cloud פרויקטים, חשבונות לחיוב, תיקיות וארגונים. במשאבים האלה יש גם כמה יעד להעברת יומנים. כשמשאב מקבל רשומה ביומן, כל sink ביומן במשאב הזה מעריך אותה באופן עצמאי. כתוצאה מכך, יכול להיות שכמה יעדים של יומנים ינתבו את אותו רשומה ביומן.
כברירת מחדל, נתוני היומן מאוחסנים בפרויקט שממנו הנתונים מגיעים. עם זאת, יש כמה סיבות לכך שתרצו לשנות את ההגדרה הזו:
- לרכז את האחסון של נתוני היומן.
- כדי לצרף את נתוני היומן לנתונים עסקיים אחרים.
- כדי לארגן את נתוני היומן בצורה שימושית.
- כדי להזרים את היומנים לאפליקציות אחרות, למאגרים אחרים או לצדדים שלישיים. לדוגמה, יכול להיות שתרצו לייצא את היומנים מ- Google Cloud כדי לצפות בהם בפלטפורמה של צד שלישי. כדי לייצא את רשומות היומן, צריך ליצור sink ביומן שמנתב את רשומות היומן ל-Pub/Sub.
פריט sink ביומן שהוגדר בצורה שגויה לא מעביר רשומות ביומן. אם יש הגדרה שגויה של יעד, נכתבים רשומות ביומן שמדווחות על פרטי השגיאה. בנוסף, יישלח אימייל לאנשי הקשר החיוניים של המשאב. מידע נוסף מופיע במאמר פתרון בעיות: הצגת שגיאות.
אי אפשר להשתמש ביעדים של יומנים כדי להפנות רשומות ביומן באופן רטרואקטיבי. כלומר, sink ביומן לא יכול להפנות רשומה ביומן שהתקבלה לפני שה-sink נוצר. באופן דומה, אם יש בעיה בהגדרות של יעד, היעד ינתב רק רשומות ביומן שמגיעות אחרי שהבעיה בהגדרות נפתרה.
תמיכה בארגונים ובתיקיות
כדי לעזור לכם לנהל את נתוני היומן בארגון או בתיקייה, אתם יכולים לבצע את הפעולות הבאות:
אפשר ליצור מאגרי יעד מצטברים, שמעבירים רשומות ביומן של ארגון או תיקייה ושל רכיבי הצאצא שלהם ליעד שצוין במאגר היעד. יש שני סוגים של מאגרי נתונים מצטברים:
- מאגרי מידע מצטברים שלא מיירטים נתונים
- יירוט של נתונים מצטברים בכיורים
הפסקת פעולה של יעד יכולה לבטל את התנהגות הניתוב של משאבים שנמצאים מתחתיו בהיררכיה. מאגרי נתונים שאינם מיירטים לא משפיעים על הניתוב של משאבים אחרים. כש-sink מיירט במשאב תואם לרשומה ביומן, הרשומה ביומן לא נשלחת ל-sinks במשאבי צאצא, למעט sink היומן
_Requiredבמשאב שממנו נוצרה הרשומה ביומן.אתם יכולים להגדיר הגדרות ברירת מחדל למשאבים ב-Cloud Logging כדי לציין את ההגדרה של יעד
_Defaultשנוצר על ידי המערכת למשאבים חדשים בארגון או בתיקייה. לדוגמה, אתם יכולים להשתמש בהגדרות האלה כדי להשבית את_Defaultsink או לציין את המסננים ב-sink הזה.
דוגמאות לתכנון מסלול
בקטע הזה מוסבר איך רשומה ביומן שמקורה בפרויקט יכולה לעבור דרך מאגרי המידע בהיררכיית המשאבים שלו.
דוגמה: לא קיימים מאגרי נתונים מצטברים
אם אין מאגרי נתונים משולבים בהיררכיית המשאבים של רשומת היומן, רשומת היומן נשלחת למאגרי היומנים בפרויקט שממנו היא מגיעה. אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
דוגמה: קיים מאגר נתונים מצטבר שלא מבצע יירוט
נניח שקיים יעד מצטבר שלא מיירט ביררכיית המשאבים עבור רשומה ביומן. אחרי שהכלי Log Router שולח את רשומת היומן אל יעד מצטבר שלא מבצע יירוט, קורה הדבר הבא:
אובייקט sink מצטבר שלא מיירט את הרשומה מעביר אותה ליעד של אובייקט ה-sink אם היא תואמת למסנן ההכללה אבל לא תואמת לאף מסנן החרגה.
הכלי Log Router שולח את רשומת היומן אל יעד היומן בפרויקט שבו נוצרה רשומת היומן.
אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
דוגמה: קיים מאגר נתונים מצטבר שמיירט נתונים
נניח שקיים מאגר נתונים מצטבר שחוצה את כל הרמות בהיררכיית המשאבים עבור רשומה ביומן. אחרי שנתב היומנים שולח את רשומת היומן למאגר המצטבר שחוצה את הגבולות, קורה אחד מהדברים הבאים:
הרשומה ביומן תואמת למסנן ההכללה אבל לא תואמת לאף מסנן החרגה:
- רשומת היומן מנותבת ליעד של ה-sink המצטבר שחוסם את הגישה.
- הרשומה ביומן נשלחת אל יעד
_Requiredבפרויקט שבו נוצרה הרשומה ביומן.
רשומת היומן לא תואמת למסנן ההכללה או שהיא תואמת לפחות למסנן החרגה אחד:
- הרשומה ביומן לא מנותבת על ידי מאגר היעד המצטבר שחוצץ בין המקור ליעד.
הכלי Log Router שולח את רשומת היומן אל יעד היומן בפרויקט שבו נוצרה רשומת היומן.
אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
מסננים של sink ביומן
כל אובייקט sink ביומן מכיל מסנן הכללה אחד ויכול להכיל כמה מסנני החרגה. המסננים האלה קובעים אם רשומה ביומן תנותב ליעד של sink ביומן. אם לא מציינים מסננים, כל רשומה ביומן מנותבת ליעד של מאגר הנתונים.
רשומה ביומן מנותבת על ידי sink ביומן על סמך הכללים הבאים:
אם רשומת היומן לא תואמת למסנן ההכללה, היא לא מנותבת. אם לא מציינים מסנן הכללה באובייקט sink, כל רשומה ביומן תתאים למסנן הזה.
אם רשומת היומן תואמת למסנן ההכללה ולפחות למסנן החרגה אחד, היא לא מנותבת.
אם רשומת היומן תואמת למסנן ההכללה ולא תואמת לאף מסנן החרגה, היא מנותבת ליעד של אובייקט ה-sink.
המסננים ב-sink ביומן נקבעים באמצעות שפת השאילתות של Logging.
אי אפשר להשתמש במסנני החרגה כדי לצמצם את השימוש בentries.writeמכסת ה-API או את מספר הקריאות ל-API של entries.write. מסנני החרגה מופעלים אחרי שרשומות היומן מתקבלות על ידי Logging API.
פריטי Sink ביומן שנוצרו על ידי המערכת
לכל פרויקט, חשבון לחיוב, תיקייה וארגון ב- Google Cloud , Cloud Logging יוצר שני יעד ליומן, אחד בשם _Required והשני בשם _Default. מסנני ההכללה וההחרגה של אובייקטי ה-sink האלה מוודאים שכל רשומה ביומן שמקורה במשאב מנותבת על ידי אחד מאובייקטי ה-sink האלה. שני sinks ביומן מעבירים נתוני יומן לקטגוריה ביומן שנמצאת באותו משאב כמו ה-sink ביומן.
בחלקים הבאים של המאמר מפורט מידע על המסננים ויעדי הניקוז של היומנים שנוצרו על ידי המערכת.
_Required sink ביומן
sink ביומן מסוג _Required במשאב מנתב קבוצת משנה של יומני ביקורת אל קטגוריה ביומן מסוג _Required של המשאב.
באובייקט ה-sink הזה לא מצוינים מסנני החרגה, ומסנן ההכללה הוא כפי שמוצג:
LOG_ID("cloudaudit.googleapis.com/activity") OR
LOG_ID("externalaudit.googleapis.com/activity") OR
LOG_ID("cloudaudit.googleapis.com/system_event") OR
LOG_ID("externalaudit.googleapis.com/system_event") OR
LOG_ID("cloudaudit.googleapis.com/access_transparency") OR
LOG_ID("externalaudit.googleapis.com/access_transparency")
sink ביומן מסוג _Required מתאים רק לרשומות ביומן שמקורן במשאב שבו מוגדר sink ביומן מסוג _Required. לדוגמה, נניח ש-sink ביומן מעביר רשומה ביומן פעילות מהפרויקט A לפרויקט B.
מכיוון שרשומת היומן לא נוצרה בפרויקט B, sink ביומן _Required בפרויקט B לא מעביר את רשומת היומן הזו לקטגוריה ביומן _Required.
אי אפשר לשנות או למחוק את _Required sink ביומן.
_Default sink ביומן
_Default sink ביומן במשאב מעביר רשומות ביומן אל _Default קטגוריה ביומן של המשאב.
מסנן ההכללה של היעד הזה ריק, ולכן הוא תואם לכל רשומות היומן. עם זאת, מסנן ההחרגה מוגדר כך:
NOT LOG_ID("cloudaudit.googleapis.com/activity") AND
NOT LOG_ID("externalaudit.googleapis.com/activity") AND
NOT LOG_ID("cloudaudit.googleapis.com/system_event") AND
NOT LOG_ID("externalaudit.googleapis.com/system_event") AND
NOT LOG_ID("cloudaudit.googleapis.com/access_transparency") AND
NOT LOG_ID("externalaudit.googleapis.com/access_transparency")
אפשר לשנות ולהשבית את יעד היומן _Default. לדוגמה, אפשר לערוך את _Default sink ביומן ולשנות את היעד. אפשר גם לשנות מסננים קיימים ולהוסיף מסנני החרגה.
יעדים של כיורים
היעד של מאגר יכול להיות במשאב אחר מהמאגר. לדוגמה, אפשר להשתמש ב-sink ביומן כדי להעביר רשומות ביומן מפרויקט אחד לקטגוריה ביומן שמאוחסנת בפרויקט אחר.
היעדים הבאים נתמכים:
- פרויקטGoogle Cloud
בוחרים ביעד הזה כשרוצים שהיעדים של יומני הרישום בפרויקט היעד ינתבו מחדש את הרשומות ביומן, או כשיוצרים יעד צבירה שחוסם את הרשומות. פריטי ה-sink ביומן בפרויקט היעד יכולים לנתב מחדש את רשומות היומן לכל יעד נתמך, למעט פרויקט.
פריטי ה-sink ביומן שנוצרו על ידי המערכת בפרויקט היעד לא כוללים רשומות ביומן שמועברות אל
_Requiredקטגוריית היומן בפרויקט המקור. לדוגמה, אם מעבירים יומנים של פעילות אדמין לפרויקט אחר, גם_Requiredוגם_Defaultב-log sinks בפרויקט היעד לא יכללו את רשומות היומן האלה. כדי לאחסן את רשומות היומן האלה, צריך לעדכן את_Defaultsink של היומן בפרויקט היעד או ליצור sink של יומן בהתאמה אישית.
- קטגוריה ביומן
- בוחרים ביעד הזה כשרוצים לאחסן את נתוני היומן במשאבים שמנוהלים על ידי Cloud Logging. אפשר להציג ולנתח נתוני יומן שמאוחסנים בדלי יומנים באמצעות שירותים כמו Logs Explorer.
- נושא Pub/Sub
- בוחרים ביעד הזה כשרוצים לייצא את נתוני היומן מ-Google Cloud ואז להשתמש בשילוב עם צד שלישי. רשומות היומן מעוצבות כ-JSON ואז מנותבות לנושא Pub/Sub.
מגבלות על יעדים
בקטע הזה מתוארות מגבלות שספציפיות ליעד:
ההגבלות הבאות חלות כש Google Cloud פרויקט הוא היעד של sink ביומן:
- יש הגבלה של קפיצה אחת.
- ה-
_Requiredsink ביומן בפרויקט היעד מעביר רשומות ביומן אל_Requiredקטגוריה ביומן של הפרויקט כשהרשומות ביומן תואמות למסנן של sink ביומן ומקורן בפרויקט היעד. _Defaultאובייקט ה-sink ביומן בפרויקט היעד מעביר רשומות ביומן שתואמות למסנן ההכללה שלו ולא תואמות לאף מסנן החרגה. ה-sink ביומן_Defaultלא כולל חלק מהרשומות ביומן. לדוגמה, יעד כזה לא מעביר רשומות ביומן של פעילות אדמין ואירועים במערכת. אפשר לשנות את היעד הזה.- רק מאגרי נתונים (sinks) מצטברים שנמצאים בהיררכיית המשאבים של רשומה ביומן מעבדים את הרשומה.
לדוגמה, נניח שיעד של sink ביומן בפרויקט
Aהוא פרויקטB. במקרה כזה, הכללים הבאים חלים:- בגלל מגבלת הצעד האחד, מאגרי ה-sink ביומן בפרויקט
Bלא יכולים לשנות מסלול רשומות ביומן לפרויקט אחר Google Cloud . - בקטגוריית היומן
_Requiredשל פרויקטBנשמרים רק רשומות יומן שמקורן בפרויקטB. קטגוריה ביומן הזו לא מאחסנת רשומות ביומן שמקורן במשאבים אחרים, כולל אלה שמקורן בפרויקטA. - אם לפרויקט
AולפרויקטBיש היררכיות שונות של משאבים, רשומה ביומן ש-sink ביומן בפרויקטAמעביר לפרויקטBלא נשלחת ל-sinks המצטברים בהיררכיית המשאבים של פרויקטB. - אם לפרויקט
AולפרויקטBיש אותה היררכיית משאבים, רשומות היומן נשלחות למאגרי הנתונים המצטברים בהיררכיה הזו. אם רשומת יומן לא נחסמת על ידי sink מצטבר, נתב היומנים שולח את הרשומה אל ה-sinks בפרויקטA.
שיטות מומלצות
כשמנהלים את האחסון של היומנים, מנהלים גם את יעד היומנים. לדוגמה, אם מוחקים את היעד של sink ביומן, צריך למחוק גם את sink ביומן התואם.
שיטות מומלצות לשימוש בהפניה לניהול נתונים או לתרחישים נפוצים מפורטות במאמרים הבאים:
דוגמאות: ריכוז של אחסון היומנים
בקטע הזה מוסבר איך להגדיר אחסון מרכזי. אחסון מרכזי מספק מקום אחד לשליחת שאילתות לגבי נתוני יומן, מה שמפשט את השאילתות כשמחפשים מגמות או בודקים בעיות. מבחינת אבטחה, יש לכם גם מיקום אחסון אחד, שיכול לפשט את המשימות של אנליסטים בתחום האבטחה.
אם אתם מרכזים את אחסון היומנים, כדאי לשקול אם להטיל מנעול למניעת מחיקה על הפרויקט שבו מאוחסנים נתוני היומנים. מנעול למניעת מחיקה יכול למנוע מחיקה בטעות של פרויקט. מידע נוסף זמין במאמר הגנה על פרויקטים באמצעות מנעולים.
ריכוז של אחסון יומנים לפרויקטים בתיקייה
נניח שאתם מנהלים תיקייה ורוצים לרכז את האחסון של רשומות היומן. לדוגמה, במקרה השימוש הזה, אפשר לבצע את הפעולות הבאות:
- בתיקייה, יוצרים פרויקט בשם
CentralStorage. - יוצרים sink מצטבר שחוצה תיקיות עבור התיקייה ומגדירים אותו להפניית כל רשומות היומן. הגדרתם את היעד של ה-sink להיות הפרויקט שנקרא
CentralStorage.
כשמגיעה רשומה ביומן שמקורה בתיקייה או באחד ממשאבי הצאצא שלה, הרשומה הזו נשלחת אל יעד מצטבר של יירוט שיצרתם. יעד ההעברה הזה מעביר רשומות ביומן לפרויקט בשם CentralStorage. פריטי ה-sink ביומן בפרויקט הזה מעבדים את הרשומות ביומן:
_Defaultsink ביומן מעביר לקטגוריה ביומן_Defaultאת כל רשומות היומן שתואמות למסנן של ה-sink. קטגוריית היומנים הזו היא מיקום האחסון המרכזי שלכם.אובייקט ה-sink ביומן
_Requiredמעביר אל קטגוריית היומן_Requiredאת רשומות היומן שתואמות למסננים של אובייקט ה-sink ומקורן בפרויקטCentralStorage. המאגר הזה של יומני גישה הוא לא מיקום אחסון מרכזי. עם זאת, אתם יכולים לאחסן באופן מרכזי את כל נתוני היומן. לדוגמה, אפשר לעיין במאמר בנושא אחסון יומני ביקורת במיקום מרכזי.
אחרי שהעיבוד של sink מצטבר מסתיים, רשומה ביומן נשלחת אל sink ביומן _Required במשאב שממנו נוצרה רשומה ביומן. אם הרשומה ביומן תואמת למסנן ב_Required sink ביומן, הרשומה ביומן מנותבת אל _Required קטגוריה ביומן של המשאב. לכן, כל Google Cloud פרויקט בתיקייה מאחסן רשומות ביומן ב-_Requiredקטגוריה ביומן שלו.
ריכוז של אחסון יומנים עבור קבוצה של פרויקטים
אפשר גם לאחסן רשומות ביומן במיקום יחיד כשאין לכם ארגון או תיקייה. לדוגמה, אפשר לבצע את הפעולות הבאות:
- יוצרים פרויקט בשם
CentralStorage. - לכל פרויקט חוץ מ-
CentralStorage, עורכים את sink ביומן_Defaultומגדירים את היעד להיות הפרויקט שנקראCentralStorage.
יכול להיות שתהיתם למה בדוגמה הקודמת היעד של _Default sink ביומן הוא פרויקט, ולא _Default קטגוריה ביומן באותו פרויקט. הסיבות העיקריות לכך הן פשטות ועקביות.
כשמנתבים רשומות ביומן לפרויקט, מאגרי היומנים בפרויקט היעד קובעים אילו רשומות ביומן יישמרו ואיפה הן יישמרו.
כלומר, אתם מרכזים את הפונקציונליות של המסנן והיעד. אם רוצים לשנות את רשומות היומן שנשמרות או את המיקום שבו הן נשמרות, צריך לשנות את יעד היומן רק בפרויקט אחד.
ריכוז של אחסון יומנים ליומני ביקורת
אפשר לאחסן באופן מרכזי רשומות ביומן שתואמות ל_Required sink ביומן. כדי לאחסן את רשומות היומן האלה באופן מרכזי, אפשר לבצע אחת מהפעולות הבאות:
יוצרים מאגרי יומנים שמנתבים רשומות ביומן שתואמות למאגר היומנים
_Requiredלמאגר יומנים מרכזי.מגדירים פריטי sink ביומן כמו בשתי הדוגמאות הקודמות, ואז מוסיפים פריט sink ביומן בפרויקט היעד שמנתב רשומות ביומן שתואמות לפריט sink ביומן
_Requiredלקטגוריה ביומן. אפשר גם לערוך את המסננים ב-_Defaultsink ביומן.
לפני שמטמיעים שיטה כזו, חשוב לעיין בהנחיות בנושא תמחור.
המאמרים הבאים
כדי לעזור לכם לנתב ולאחסן נתונים מ-Cloud Logging, אפשר להיעזר במסמכים הבאים:
כדי ליצור אובייקטים מסוג sink לניתוב רשומות ביומן ליעדים נתמכים, אפשר לעיין במאמר ניתוב יומנים ליעדים נתמכים.
במאמר סקירה כללית על aggregated sinks מוסבר איך ליצור aggregated sinks שיכולים לנתב רשומות ביומן מהמשאבים בתיקיות או בארגונים.
כדי לקבל מידע על הפורמט של רשומות ביומן שמועברות לניתוח ועל האופן שבו היומנים מאורגנים ביעדים, אפשר לעיין במסמכים הבאים: