במאמר הזה מוסבר איך Cloud Logging משתמש בנתב היומנים כדי לנתב רשומות ביומן שמתקבלות על ידי Cloud de Confiance by S3NS. באמצעות sink ביומן, אתם יכולים לנתב רשומות ביומן ליעדים שונים, כמו קטגוריה ביומן לאחסון או Pub/Sub לייצוא לכלים של צד שלישי שמשמשים לניראות (observability), להתראות ולמעקב.
מידע על נתבי יומנים
לכל פרויקט, חשבון לחיוב, תיקייה וארגון יש נתב יומנים שמנהל את הזרימה של רשומות היומן דרך מאגרי מידע ברמת המשאב. Cloud de Confiance כלי לניתוב יומנים מנהל גם את הזרימה של רשומה ביומן דרך מאגרי מידע שנמצאים בהיררכיית המשאבים של הרשומה. מאגרי נתונים קובעים איך רשומות ביומן מנותבות ליעדים.
נתב יומנים מאחסן רשומה ביומן באופן זמני. ההתנהגות הזו מאפשרת למערכת להתמודד עם שיבושים זמניים והפסקות זמניות שעלולות להתרחש כשערך ביומן עובר דרך מאגרי מידע. אחסון זמני לא מגן מפני שגיאות בהגדרות.
האחסון הזמני של נתבי יומנים שונה מהאחסון לטווח ארוך שקטגוריות היומנים מספקות.
המערכת מתעלמת מרשומות ביומן עם חותמות זמן שחלפו יותר מתקופת השמירה של היומנים או שחלפו יותר מ-24 שעות בעתיד.
מידע על פריטי Sink ביומן
כש-sink ביומן מקבל רשומה ביומן, הוא קובע אם להתעלם ממנה או להעביר אותה. ההחלטה מתקבלת על ידי השוואה בין רשומת היומן לבין המסננים ב-sink ביומן. כשמנתבים את רשומת היומן, sink ביומן שולח את רשומת היומן ליעד שצוין על ידי sink ביומן. יעד ההעברה יכול להיות פרויקט, מיקום אחסון או שירות.
יעדי יומנים שייכים למשאב Cloud de Confiance by S3NS מסוים: Cloud de Confiance פרויקטים, חשבונות לחיוב, תיקיות וארגונים. במשאבים האלה יש גם כמה יעד ליומן. כשמשאב מקבל רשומה ביומן, כל sink ביומן במשאב הזה מעריך את הרשומה ביומן באופן עצמאי. כתוצאה מכך, כמה יעדים של יומנים יכולים לנתב את אותו רשומה ביומן.
כברירת מחדל, נתוני היומן מאוחסנים בפרויקט שממנו הנתונים מגיעים. עם זאת, יש כמה סיבות לכך שתרצו לשנות את ההגדרה הזו:
- לרכז את האחסון של נתוני היומן.
- כדי לצרף את נתוני היומן לנתונים עסקיים אחרים.
- כדי לארגן את נתוני היומן בצורה שימושית.
- כדי להזרים את היומנים לאפליקציות אחרות, למאגרים אחרים או לצדדים שלישיים. לדוגמה, יכול להיות שתרצו לייצא את היומנים מ- Cloud de Confiance by S3NS כדי לצפות בהם בפלטפורמה של צד שלישי. כדי לייצא את רשומות היומן, צריך ליצור sink ביומן שמנתב את רשומות היומן ל-Pub/Sub.
פריט sink ביומן שהוגדר בצורה שגויה לא מעביר רשומות ביומן. אם יש הגדרה שגויה של יעד, נכתבים רשומות ביומן שמדווחות על פרטי השגיאה. בנוסף, יישלח אימייל לאנשי הקשר החיוניים של המשאב. מידע נוסף מופיע במאמר פתרון בעיות: הצגת שגיאות.
אי אפשר להשתמש ביעדים של יומנים כדי להפנות רשומות ביומן באופן רטרואקטיבי. כלומר, sink ביומן לא יכול להפנות רשומה ביומן שהתקבלה לפני שה-sink נוצר. באופן דומה, אם יש בעיה בהגדרות של יעד, רק רשומות ביומן שמגיעות אחרי שהבעיה בהגדרות נפתרה מנותבות ליעד.
תמיכה בארגונים ובתיקיות
כדי לעזור לכם לנהל את נתוני היומן בארגון או בתיקייה, אתם יכולים לבצע את הפעולות הבאות:
אפשר ליצור מאגרי נתונים משולבים שמנתבים רשומות ביומן של ארגון או תיקייה ושל הצאצאים שלהם ליעד שצוין במאגר הנתונים. יש שני סוגים של מאגרי נתונים מצטברים:
- מאגרי נתונים מצטברים שלא מיירטים נתונים
- יירוט של כיורים מצטברים
ההבדל בין שני סוגי היעדים האלה הוא שיעדים מיירטים ברמה מסוימת בהיררכיית המשאבים יכולים להשפיע על הניתוב של משאבים ברמה נמוכה יותר בהיררכיה. מאגרי נתונים שלא מבצעים יירוט לא משפיעים על הניתוב של משאבים אחרים. כש-sink חוסם במשאב תואם לרשומה ביומן, הרשומה ביומן לא נשלחת ל-sinks במשאבי הצאצא, למעט ה-sink ביומן
_Requiredבמשאב שממנו נוצרה הרשומה ביומן, שאליו הרשומה תמיד נשלחת.אתם יכולים להגדיר הגדרות ברירת מחדל למשאבים ב-Cloud Logging כדי לציין את ההגדרה של יעד (sink)
_Defaultשנוצר על ידי המערכת למשאבים חדשים בארגון או בתיקייה. לדוגמה, אתם יכולים להשתמש בהגדרות האלה כדי להשבית את_Defaultsink או לציין את המסננים ב-sink הזה.
דוגמאות לניתוב
בקטע הזה מוסבר איך רשומה ביומן שמקורה בפרויקט יכולה לעבור דרך מאגרי המידע בהיררכיית המשאבים שלו.
דוגמה: לא קיימים מאגרי נתונים מצטברים
אם אין מאגרי נתונים מסוג Sink מצטבר בהיררכיית המשאבים של רשומת היומן, רשומת היומן נשלחת למאגרי הנתונים מסוג Sink בפרויקט שממנו היא מגיעה. אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
דוגמה: קיים יעד מצטבר שלא מבצע יירוט
נניח שקיים יעד מצטבר שלא מיירט ביררכיית המשאבים עבור רשומה ביומן. אחרי ש-Log Router שולח את הרשומה ביומן אל יעד מצטבר שלא מבצע יירוט, קורה הדבר הבא:
אובייקט sink מצטבר שלא מבצע יירוט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה אבל לא תואמת לאף מסנן החרגה.
הכלי Log Router שולח את רשומת היומן אל log sinks בפרויקט שבו נוצרה רשומת היומן.
אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
דוגמה: קיים מאגר נתונים מצטבר שחוצה את הגבולות
נניח שקיים מאגר נתונים משולב שחוצה את כל הרמות בהיררכיית המשאבים עבור רשומה ביומן. אחרי שהכלי Log Router שולח את הרשומה ביומן אל מאגר היעד המצטבר שחוסם את הרשומה, קורה אחד מהדברים הבאים:
הרשומה ביומן תואמת למסנן ההכללה אבל לא תואמת לאף מסנן החרגה:
- רשומת היומן מנותבת ליעד של מאגר נתונים מצטבר שמתבצעת בו חסימה.
- הרשומה ביומן נשלחת אל יעד
_Requiredבפרויקט שבו נוצרה הרשומה ביומן.
רשומת היומן לא תואמת למסנן ההכללה או שהיא תואמת לפחות למסנן החרגה אחד:
- רשומת היומן לא מנותבת על ידי מאגר היעד המצטבר שחוסם את הגישה.
הכלי Log Router שולח את רשומת היומן אל log sinks בפרויקט שבו נוצרה רשומת היומן.
אובייקט sink ברמת הפרויקט מעביר את רשומת היומן ליעד של אובייקט ה-sink אם רשומת היומן תואמת למסנן ההכללה של אובייקט ה-sink, אבל לא תואמת לאף אחד ממסנני ההחרגה של אובייקט ה-sink.
מסננים של פריטי Sink ביומן
כל אובייקט sink ביומן מכיל מסנן הכללה אחד ויכול להכיל כמה מסנני החרגה. המסננים האלה קובעים אם רשומה ביומן תנותב ליעד של sink ביומן. אם לא מציינים מסננים, כל רשומה ביומן מנותבת ליעד של מאגר הנתונים.
רשומה ביומן מנותבת על ידי sink ביומן על סמך הכללים הבאים:
אם רשומת היומן לא תואמת למסנן ההכללה, היא לא מנותבת. אם לא מציינים מסנן הכללה באובייקט sink, כל רשומה ביומן תואמת למסנן הזה.
אם רשומת היומן תואמת למסנן ההכללה ולפחות למסנן החרגה אחד, היא לא תנותב.
אם רשומת היומן תואמת למסנן ההכללה ולא תואמת לאף מסנן החרגה, היא מנותבת ליעד של אובייקט ה-sink.
המסננים ב-sink ביומן מוגדרים באמצעות שפת השאילתות של Logging.
אי אפשר להשתמש במסנני החרגה כדי לצמצם את השימוש בentries.write מכסת ה-API או את מספר הקריאות ל-entries.write API. מסנני החרגה מופעלים אחרי שרשומות היומן מתקבלות על ידי Logging API.
פריטי Sink ביומן שנוצרו על ידי המערכת
לכל פרויקט, חשבון לחיוב, תיקייה וארגון ב- Cloud de Confiance , Cloud Logging יוצר שני יעד ליומן, אחד בשם _Required והשני בשם _Default. מסנני ההכללה וההחרגה של אובייקטי ה-sink האלה מוודאים שכל רשומה ביומן שמגיעה למשאב מנותבת על ידי אחד מאובייקטי ה-sink האלה.
שני ה-sink ביומן מעבירים נתוני יומן לקטגוריה ביומן שנמצאת באותו משאב כמו ה-sink ביומן.
בחלקים הבאים של הקטע הזה מפורט מידע על המסננים ויעדי הניקוז של היומנים שנוצרו על ידי המערכת.
_Required sink ביומן
השדה _Required sink ביומן במשאב מעביר קבוצת משנה של יומני ביקורת אל _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")
_Required sink ביומן מתאים רק לרשומות ביומן שמקורן במשאב שבו מוגדר _Required ה-sink ביומן. לדוגמה, נניח ש-sink ביומן מעביר רשומה מיומן פעילות מהפרויקט A לפרויקט B.
מכיוון שהרשומה ביומן לא נוצרה בפרויקט B, sink היומן _Required בפרויקט B לא מעביר את הרשומה הזו ביומן לקטגוריה ביומן _Required.
אי אפשר לשנות או למחוק את _Required sink ביומן.
_Default sink ביומן
יעד ליומן _Default במשאב מעביר את כל רשומות היומן, למעט אלה שתואמות למסנן של יעד היומן _Default, אל _Default מאגר היומן של המשאב._Required
מסנן ההכללה של יעד זה ריק, ולכן הוא תואם לכל רשומות היומן. עם זאת, מסנן ההחרגה מוגדר כך:
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")
אפשר לשנות ולהשבית את sink ביומן _Default. לדוגמה, אפשר לערוך את _Default sink ביומן ולשנות את היעד. אפשר גם לשנות מסננים קיימים ולהוסיף מסנני החרגה.
יעדים של Sink
יעד של מאגר יכול להיות במשאב אחר מהמאגר. לדוגמה, אפשר להשתמש ב-sink ביומן כדי להעביר רשומות ביומן מפרויקט אחד לקטגוריה ביומן שמאוחסנת בפרויקט אחר.
היעדים הבאים נתמכים:
- פרויקטCloud de Confiance
בוחרים ביעד הזה כשרוצים שה-sink ביומן בפרויקט היעד ינתבו מחדש את הרשומות ביומן, או כשיוצרים sink צבירה שחוסם את הרשומות. פריטי ה-sink ביומן בפרויקט שהוא יעד ה-sink יכולים לנתב מחדש את רשומות היומן לכל יעד נתמך, למעט פרויקט.
- קטגוריה ביומן
- בוחרים ביעד הזה כשרוצים לאחסן את נתוני היומן במשאבים שמנוהלים על ידי Cloud Logging. אפשר להציג ולנתח נתוני יומן שאוחסנו בדלי יומנים באמצעות שירותים כמו Logs Explorer.
- נושא Pub/Sub
- בוחרים ביעד הזה כשרוצים לייצא את נתוני היומן מ-Cloud de Confiance by S3NS ואז להשתמש בשילוב עם צד שלישי. ערכי היומן מעוצבים בפורמט JSON ואז מנותבים לנושא ב-Pub/Sub.
מגבלות על יעדים
בקטע הזה מתוארות מגבלות שספציפיות ליעדים:
המגבלות הבאות חלות כשהיעד של sink ביומן הוא Cloud de Confiance פרויקט:
- יש הגבלה של קפיצה אחת.
- רשומות ביומן שתואמות למסנן של
_Requiredsink ביומן מנותבות רק אל_Requiredהקטגוריה ביומן של פרויקט היעד אם הן נוצרו בפרויקט היעד. - רק מאגרי נתונים (sinks) מצטברים שנמצאים בהיררכיית המשאבים של רשומת יומן מעבדים את רשומת היומן.
לדוגמה, נניח שיעד של sink ביומן בפרויקט
Aהוא פרויקטB. אז התנאים הבאים מתקיימים:- בגלל מגבלת הצעד האחד, אי אפשר לנתב מחדש את רשומות היומן ממאגרי היומן בפרויקט
Bלפרויקט Cloud de Confiance . - בקטגוריית היומן
_Requiredשל פרויקטBנשמרים רק רשומות יומן שמקורן בפרויקטB. קטגוריה ביומן הזו לא מאחסנת רשומות ביומן שמקורן במשאבים אחרים, כולל אלה שמקורן בפרויקטA. - אם היררכיית המשאבים של פרויקט
Aשונה מהיררכיית המשאבים של פרויקטB, רשומה ביומן ש-sink ביומן בפרויקטAמעביר לפרויקטBלא תישלח ל-sinks המצטברים בהיררכיית המשאבים של פרויקטB. - אם לפרויקט
AולפרויקטBיש אותה היררכיית משאבים, רשומות היומן נשלחות למאגרי הנתונים המצטברים בהיררכיה הזו. אם רשומת יומן לא נחטפת על ידי sink מצטבר, נתב היומנים שולח את רשומת היומן אל ה-sinks בפרויקטA.
שיטות מומלצות
כשמנהלים את האחסון של היומנים, אפשר גם לנהל את יעד היומנים. לדוגמה, אם מוחקים את יעד ה-sink ביומן, צריך למחוק גם את ה-sink ביומן המתאים.
לשיטות מומלצות לשימוש בהפניה למשילות מידע (data governance) או לתרחישי שימוש נפוצים, אפשר לעיין במסמכים הבאים:
דוגמאות: ריכוז של אחסון היומנים
בקטע הזה מוסבר איך להגדיר אחסון מרכזי. אחסון מרכזי מספק מקום אחד לשאילתות לגבי נתוני יומן, מה שמפשט את השאילתות כשמחפשים מגמות או בודקים בעיות. מבחינת אבטחה, יש לכם גם מיקום אחסון אחד, שיכול לפשט את המשימות של אנליסטים בתחום האבטחה.
אם אתם מרכזים את אחסון היומנים, כדאי לשקול אם להטיל מנעול למניעת מחיקה על הפרויקט שבו מאוחסנים נתוני היומנים. מנעול למניעת מחיקה יכול למנוע מחיקה בטעות של פרויקט. מידע נוסף זמין במאמר הגנה על פרויקטים באמצעות מנעולים.
ריכוז של אחסון יומנים לפרויקטים בתיקייה
נניח שאתם מנהלים תיקייה ורוצים לרכז את האחסון של רשומות היומן. לדוגמה, במקרה השימוש הזה, אפשר לבצע את הפעולות הבאות:
- בתיקייה, יוצרים פרויקט בשם
CentralStorage. - יוצרים sink מצטבר שחוצה תיקיות עבור התיקייה ומגדירים אותו להפניית כל רשומות היומן. הגדרתם את היעד של ה-sink להיות הפרויקט שנקרא
CentralStorage.
כשמגיעה רשומה ביומן שמקורה בתיקייה או באחד ממשאבי הצאצא שלה, הרשומה הזו נשלחת למאגר המצטבר שנוצר לצורך יירוט. היעד הזה מעביר רשומות ביומן לפרויקט בשם CentralStorage. פריטי ה-sink ביומן בפרויקט הזה מעבדים את הרשומות ביומן:
_Defaultsink ביומן מעביר את כל רשומות היומן שתואמות למסנן של ה-sink אל_Defaultקטגוריה ביומן. קטגוריית היומנים הזו היא מיקום האחסון המרכזי שלכם.אובייקט ה-sink
_Requiredביומן מעביר את רשומות היומן שתואמות למסננים של ה-sink ושמקורן בפרויקטCentralStorageאל קטגוריית היומן_Required. קטגוריה זו ביומן אינה מיקום אחסון מרכזי. עם זאת, אתם יכולים לאחסן את כל נתוני היומן באופן מרכזי. לדוגמה, אפשר לעיין במאמר בנושא אחסון יומני ביקורת במיקום מרכזי.
אחרי שהעיבוד של sink מצטבר מסתיים, רשומה ביומן נשלחת אל sink ביומן _Required במשאב שממנו נוצרה רשומה ביומן. אם רשומת היומן תואמת למסנן ב_Required sink ביומן, רשומת היומן מנותבת אל _Required קטגוריה ביומן של המשאב. לכן, כל Cloud de Confiance פרויקט בתיקייה מאחסן רשומות ביומן בקטגוריית היומן _Required שלו.
ריכוז של אחסון יומנים עבור קבוצה של פרויקטים
אפשר גם לאחסן רשומות ביומן במיקום יחיד כשאין לכם ארגון או תיקייה. לדוגמה, אפשר לבצע את הפעולות הבאות:
- יוצרים פרויקט בשם
CentralStorage. - לכל פרויקט חוץ מ-
CentralStorage, עורכים את sink ביומן_Defaultומגדירים את היעד להיות הפרויקט שנקראCentralStorage.
יכול להיות שתהיתם למה בדוגמה הקודמת היעד של _Default sink ביומן הוא פרויקט, ולא _Default קטגוריה ביומן באותו פרויקט. הסיבות העיקריות לכך הן פשטות ועקביות.
כשמנתבים רשומות ביומן לפרויקט, מאגרי היומנים בפרויקט היעד קובעים אילו רשומות ביומן יישמרו ואיפה הן יישמרו.
כלומר, אתם מרכזים את הפונקציונליות של המסנן והיעד. אם רוצים לשנות את רשומות היומן שמאוחסנות או את המקום שבו הן מאוחסנות, צריך לשנות את יעד היומן רק בפרויקט אחד.
ריכוז של אחסון יומנים ליומני ביקורת
אפשר לאחסן באופן מרכזי רשומות ביומן שתואמות ל_Required sink ביומן. אם רוצים לאחסן את רשומות היומן האלה באופן מרכזי, אפשר לבצע אחת מהפעולות הבאות:
יוצרים sinks ביומן שמנתבים רשומות ביומן שתואמות ל-sink ביומן
_Requiredלקטגוריה ביומן מרכזית.מגדירים פריטי sink ביומן כמו בשתי הדוגמאות הקודמות, ואז מוסיפים פריט sink ביומן בפרויקט היעד שמנתב רשומות ביומן שתואמות לפריט ה-sink
_Requiredביומן לקטגוריה ביומן. אפשר גם לערוך את המסננים ב-_Defaultsink ביומן.
לפני שמטמיעים שיטה כזו, חשוב לעיין בהנחיות בנושא תמחור.
המאמרים הבאים
כדי לעזור לכם להפנות ולאחסן נתונים של Cloud Logging, תוכלו להיעזר במסמכים הבאים:
כדי ליצור אובייקטים מסוג sink לניתוב רשומות ביומן ליעדים נתמכים, אפשר לעיין במאמר ניתוב יומנים ליעדים נתמכים.
במאמר סקירה כללית על aggregated sinks מוסבר איך ליצור aggregated sinks שיכולים לנתב רשומות ביומן מהמשאבים בתיקיות או בארגונים.
כדי לקבל מידע על הפורמט של רשומות ביומן שמועברות לניתוח ועל האופן שבו היומנים מאורגנים ביעדים, אפשר לעיין במסמכים הבאים: