צפייה ביומנים שמועברים ל-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, והניתוב שלה בוצע ב-25 במרץ 2021 בשעה 09:15:00, קובץ הנספח ייכתב באופן הבא:

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

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

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

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

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

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

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

אם אין יומנים ביעד של ה-sink, כדאי לבדוק את מדדי המערכת של הייצוא. מדדי הייצוא של המערכת מציינים כמה רשומות ביומן מנותבות וכמה מושמטות בגלל שגיאות. אם מדדי מערכת הייצוא מציינים שלא הועברו רשומות יומן ליעד, צריך לבדוק את [המסנן][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