צפייה ביומנים שמועברים ל-Cloud Storage

במאמר הזה מוסבר איך למצוא רשומות ביומן שניתבתם מ-Cloud Logging אל קטגוריות של Cloud Storage.

רשומות ביומן נשמרות בקטגוריות של Cloud Storage בקבוצות של שעה. יכולות לחלוף שעתיים עד 3 שעות לפני שהרשומות הראשונות יתחילו להופיע.

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

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

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

צפייה ביומנים

כדי לראות את היומנים שהועברו ל-Cloud Storage:

  1. נכנסים לדף Buckets במסוף Google Cloud :

    כניסה לדף Buckets

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Cloud Storage.

  2. בוחרים את הקטגוריה של Cloud Storage שבה אתם משתמשים כיעד לניתוב.

ארגון היומנים

כשמנתבים יומנים לקטגוריה של Cloud Storage, שירות Logging כותב לקטגוריה קבוצה של קבצים.

הקבצים מאורגנים בהיררכיות של ספריות לפי סוג היומן ותאריך. סוג היומן, שמכונה [LOG_ID] בהפניה LogEntry, יכול להיות שם כמו syslog או שם מורכב כמו appengine.googleapis.com/request_log. אם היומנים האלה אוחסנו בדלי בשם my-gcs-bucket, שמות הספריות יהיו כמו בדוגמה הבאה:

my-gcs-bucket/syslog/YYYY/MM/DD/
my-gcs-bucket/appengine.googleapis.com/request_log/YYYY/MM/DD/

קטגוריה אחת של Cloud Storage יכולה להכיל יומנים מכמה סוגים של משאבים. גודל הקובץ המקסימלי הוא 3.5 GiB.

הרישום ביומן לא מבטיח ביטול כפילויות של רשומות ביומן מ-sinks שמכילים שאילתות זהות או חופפות. יכול להיות שרשומות ביומן מה-sinks האלה ייכתבו כמה פעמים בקטגוריה של Cloud Storage.

ספריות העלים (DD/) מכילות כמה קבצים, שכל אחד מהם כולל את רשומות היומן של הניתוב לתקופה שצוינה בשם הקובץ. הקבצים מחולקים לשברי מידע והשמות שלהם מסתיימים במספר השבר, Sn או An (n=0, 1, 2,...). לדוגמה, אלה שני קבצים שאולי מאוחסנים בספרייה my-gcs-bucket/syslog/2015/01/13/:

08:00:00_08:59:59_S0.json
08:00:00_08:59:59_S1.json

שני הקבצים האלה ביחד מכילים את רשומות היומן syslog של כל המקרים במהלך השעה שמתחילה ב-08:00:00 UTC ומסתיימת ב-08:59:59 UTC. חותמות הזמן ברשומה ביומן מוצגות בפורמט UTC (זמן אוניברסלי מתואם).

רשומות ביומן שמגיעות עם receiveTimestamp בחלון של 60 דקות שמתחילות בשעה עגולה של timestamp נכתבות לקבצים של החלק הראשי. לדוגמה, רשומה ביומן עם timestamp של 08:00:00 וreceiveTimestamp של 08:10:00 מאוחסנת בקובץ ה-shard הראשי.

הקבצים האלה כוללים רסיס ראשי ממוספר בסיומת: _Sn.json.

רשומות ביומן שמגיעות עם timestamp בחלון שמתחיל כל 60 דקות ושונה מהחלון שבו מופיע receiveTimestamp, נכתבות בקובצי addendum shard. לדוגמה, רשומה ביומן עם timestamp של 08:00:00 ו-receiveTimestamp של 09:10:00 מאוחסנת בקובץ של שבר של נספח.

הקבצים האלה כוללים רסיס של נספח ממוספר עם הסיומת: _An:Unix_timestamp.json.

לדוגמה, רשומה ביומן עם timestamp בין 08:00:00 ל-08:59:59 אבל עם receiveTimestamp בחלון אחר של 60 דקות, נכתבת לקובץ עם הסיומת _An:Unix_timestamp.json, כאשר חותמת הזמן של Unix מזהה את השעה שבה הקובץ הועבר ל-Cloud Storage. אם רשומה ביומן הייתה עם timestamp של 08:50:00 ועם receiveTimestamp של 09:10:00, והיא הועברה ב-09:15:00 ב-25 במרץ 2021, קובץ הנספח ייכתב באופן הבא:

08:00:00_08:59:59_A0:1616681700.json

כדי לקבל את כל רשומות היומן, צריך לקרוא את כל הרסיסים של כל תקופת זמן – במקרה הזה, רסיסי הקבצים 0 ו-1. מספר רסיסי הקבצים שנכתבו יכול להשתנות בכל תקופת זמן.

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

חשוב לזכור שסדר המיון של רשומות היומן בתוך הקבצים לא אחיד ולא מובטח.

מגבלה

השדה LogEntry.errorGroups לא זמין ביעד הזה. יעדי יומן מעבירים את רשומות היומן שנשלחות לפרויקט, אבל רשומות היומן האלה לא מכילות קבוצות שגיאות.

רשומות ביומן שמגיעות באיחור

רשומות ביומן שמועברות לניתוב נשמרות בקטגוריות של Cloud Storage באצוות שעתיות. יכול להיות שיחלפו שעתיים עד שלוש שעות לפני שהרשומות הראשונות יתחילו להופיע. רסיסי קובץ יומן עם הסיומת An ("Append") מכילים רשומות יומן שהגיעו באיחור.

אם יש הפסקת חשמל ביעד, Cloud Logging מאחסן את הנתונים במאגר זמני עד שההפסקה מסתיימת.

אם אין יומנים ביעד של מאגר הנתונים, כדאי לבדוק את מדדי המערכת של הייצוא. מדדי הייצוא של המערכת מציינים כמה רשומות ביומן מנותבות וכמה מושמטות בגלל שגיאות. אם מדדי מערכת הייצוא מציינים שלא בוצע ניתוב של רשומות ביומן ליעד, צריך לבדוק את [המסנן][export-query] כדי לוודא שרשומות ביומן שתואמות למסנן הגיעו לאחרונה ל-Logging.

במסוף Google Cloud , עוברים לדף Log Router:

כניסה אל Log Router

אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Logging.

רשומות ביומן של App Engine

‫App Engine משלב כמה רשומות משנה מסוג google.appengine.logging.v1.LogLine (שנקראות גם AppLog או AppLogLine) ברשומת יומן ראשית מסוג google.appengine.logging.v1.RequestLog עבור הבקשה שגורמת לפעילות ביומן. לכל שורה ביומן יש 'מזהה בקשה' שמזהה את הרשומה הראשית. ב-Logs Explorer מוצגות שורות היומן עם רשומת היומן של הבקשה. הרישום ביומן מנסה להכניס את כל שורות היומן לאצווה עם הבקשה המקורית, גם אם חותמות הזמן שלהן ימקמו אותן באצווה הבאה. אם זה לא אפשרי, יכול להיות שחסרות כמה שורות יומן ברשומה של יומן הבקשות, ויכול להיות שיהיו שורות יומן 'יתומות' בלי בקשה באצווה הבאה. אם האפשרות הזו חשובה לכם, כדאי להתכונן לחיבור מחדש של חלקי הבקשה כשמעבדים את היומנים.

פתרון בעיות

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

תמחור

למידע על מחירים, אפשר לעיין בדף תמחור של Google Cloud Observability. אם אתם מעבירים נתוני יומן לשירותים אחרים, כדאי לעיין במסמכים הבאים: Google Cloud