פתרון בעיות שקשורות לניתוב ולאחסון של יומנים

במאמר הזה מוסבר על בעיות נפוצות בניתוב ובאחסון, ואיך להשתמש במסוףGoogle Cloud כדי לראות ולפתור טעויות בהגדרות או תוצאות לא צפויות.

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

פתרון בעיות בניתוב יומנים

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

יעד מכיל רשומות לא רצויות ביומן

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

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

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

logName:projects/PROJECT_ID

אפשר גם להחריג רשומות ביומן מכמה פרויקטים באמצעות האופרטור הלוגי OR כדי לצרף סעיפים של logName.

חסרות רשומות ביומן של היעד

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

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

  • exports/byte_count: מספר הבייטים ברשומות ביומן שהועברו.
  • exports/log_entry_count: מספר רשומות היומן שהועברו.
  • exports/error_count: מספר רשומות היומן שלא ניתן לנתב.

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

אם מדדי היעד מצביעים על כך שהיעד לא פועל כמו שציפיתם, הנה כמה סיבות אפשריות ומה אפשר לעשות לגביהן:

זמן אחזור

  • לא התקבלו רשומות יומן תואמות מאז שיצרתם או עדכנתם את יעד הנתונים. רק רשומות יומן חדשות מנותבות.

    כדאי להמתין שעה ולבדוק שוב את היעד.

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

    יכול להיות שיהיה עיכוב עד שתוכלו לראות את הרשומות ביומן ביעד. כדאי לחכות כמה שעות ולבדוק שוב את היעד.

המסנן או היקף הצפייה שגויים

  • ההיקף שבו אתם משתמשים כדי להציג רשומות ביומן שאוחסנו בקטגוריה ביומן שגוי.

    כדי לצמצם את החיפוש לתצוגות מפורטות של יומנים, פועלים לפי השלבים הבאים:

    • אם אתם משתמשים בכלי Logs Explorer, לוחצים על הלחצן Refine scope.

    • אם אתם משתמשים ב-CLI של gcloud, אתם יכולים להשתמש בפקודה gcloud logging read ולהוסיף את הדגל --view=AllLogs.

  • טווח הזמן שבו אתם משתמשים כדי לבחור ולהציג נתונים ביעד שלכם מצומצם מדי.

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

שגיאה במסנן של יעד

  • המסנן של יעד הנתונים שגוי ולא כולל את רשומות היומן שציפיתם לראות ביעד.

    עורכים את המסנן של יעד הניקוז באמצעות Log Router במסוף Google Cloud . כדי לוודא שהזנתם את המסנן הנכון, בוחרים באפשרות תצוגה מקדימה של היומנים בחלונית עריכת יעד. הפעולה הזו תפתח את הכלי Logs Explorer בכרטיסייה חדשה עם מסנן שאוכלס מראש. הוראות לגבי צפייה באובייקטים מסוג sink וניהול שלהם מופיעות במאמר ניהול אובייקטים מסוג sink.

הצגת השגיאות

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

יש כמה דרכים לראות את השגיאות שקשורות ליעד. הדרכים האלה מתוארות בקטעים הבאים:

יומני שגיאות

השיטה המומלצת לבדיקה מפורטת של שגיאות שקשורות ליעד היא עיון ברשומות של יומן השגיאות שנוצרות על ידי היעד. פרטים על הצגת רשומות ביומן זמינים במאמר הצגת יומנים באמצעות Logs Explorer.

כדי לבדוק את יומני השגיאות של יעד, אפשר להשתמש בשאילתה הבאה בחלונית של עורך השאילתות ב-Logs Explorer. אותה שאילתה פועלת ב-Logging API וב-CLI של gcloud.

לפני שמעתיקים את השאילתה, מחליפים את המשתנה SINK_NAME בשם של יעד הנתונים שאתם מנסים לפתור בו בעיות. אפשר לראות את שם היעד בדף Log Router במסוף Google Cloud .

logName:"logging.googleapis.com%2Fsink_error"
resource.type="logging_sink"
resource.labels.name="SINK_NAME"

לדוגמה, אם שם היעד הוא my-sink-123, רשומה ביומן יכולה להיראות כך:

{
   errorGroups: [
   0: {
   id: "COXu96aNws6BiQE"
   }]
   insertId: "170up6jan"
   labels: {
      activity_type_name: "LoggingSinkConfigErrorV2"
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      error_code: "topic_not_found"
      error_detail: ""
      sink_id: "my-sink-123"
   }
   logName: "projects/my-project/logs/logging.googleapis.com%2Fsink_error"
   receiveTimestamp: "2024-07-11T14:41:42.578823830Z"
   resource: {
   labels: {
      destination: "pubsub.googleapis.com/projects/my-project/topics/my-topic"
      name: "my-sink-123"
      project_id: "my-project"
   }
   type: "logging_sink"
   }
   severity: "ERROR"
   textPayload: "Cloud Logging sink configuration error in my-project, sink my-sink-123: topic_not_found ()"
   timestamp: "2024-07-11T14:41:41.296157014Z"
}

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

כדי לפתור את הבעיה, עורכים את יעד הנתונים. לדוגמה, אפשר לערוך את יעד השמירה באמצעות הדף Log Router:

עוברים אל Log Router

התראות באימייל

Essential Contacts שולח התראות באימייל על שגיאות בהגדרת יעד לאנשי קשר שהוקצו לקטגוריית ההתראות הטכניות בפרויקט Google Cloud או במשאב האב שלו. אם לא הוגדר איש קשר לקבלת התראות טכניות עבור המשאב, המשתמשים שמוגדרים כProject Owner ב-IAM‏ roles/owner עבור המשאב יקבלו את ההתראה באימייל.

לכל שילוב של שם sink ביומן ושגיאה, המערכת שולחת התראה אחת ביום.

הודעת האימייל מכילה את הפרטים הבאים:

  • מזהה המשאב: השם של Google Cloud הפרויקט או שלGoogle Cloud משאב אחר שבו הוגדר יעד.
  • שם היעד: שם היעד שמכיל את שגיאת ההגדרה.
  • יעד של Sink: הנתיב המלא של יעד הניתוב של Sink. לדוגמה, pubsub.googleapis.com/projects/PROJECT_ID/topics/TOPIC_ID
  • קוד שגיאה: תיאור מקוצר של קטגוריית השגיאה, למשל, topic_not_found.
  • פרטי השגיאה: מידע מפורט על השגיאה, כולל המלצות לפתרון השגיאה הבסיסית.

השולח של האימייל הזה הוא logging-noreply@google.com.

הנושא דומה ל: Subject: [ACTION REQUIRED] Cloud Logging sink configuration error in my-project

כדי לראות ולנהל את אובייקטים מסוג sink, משתמשים בדף Log Router:

עוברים אל Log Router

כל שגיאה בהגדרת יעד שרלוונטית למשאב מופיעה ברשימה כCloud Logging sink configuration error. כל שגיאה מכילה קישור לאחת מרשומות היומן שנוצרו על ידי יעד הנתונים הפגום. כדי לבדוק את השגיאות הבסיסיות בפירוט, אפשר לעיין בקטע יומני שגיאות.

יעד שגוי של מאגר

אם הגדרתם יעד לניקוז אבל מופיעה שגיאת הגדרה שלפיה לא נמצא היעד כש-Logging ניסה לנתב רשומות ביומן, יכולות להיות לכך כמה סיבות:

  • ההגדרה של יעד הנתונים מכילה שגיאת כתיב או שגיאת עיצוב אחרת.

    צריך לעדכן את ההגדרות של יעד הנתונים כדי לציין את היעד הקיים בצורה נכונה.

  • יכול להיות שהיעד שצוין נמחק.

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

כדי לפתור את הבעיות מהסוגים האלה, עורכים את יעד הנתונים. לדוגמה, אפשר לערוך את יעד השמירה באמצעות הדף Log Router:

עוברים אל Log Router

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

בעיות ב-Disabled-sink

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

בעיות בהרשאות עם מאגרי נתונים

כשמאגר מנסה לנתב רשומה ביומן אבל חסרות לו הרשאות IAM מתאימות ליעד של המאגר, המאגר מדווח על שגיאה, שאפשר לראות, ומדלג על הרשומה ביומן.

כשיוצרים יעד, צריך להעניק לחשבון השירות של היעד את ההרשאות המתאימות ליעד. אם יוצרים את יעד ההעברה במסוף Google Cloud באותוGoogle Cloud פרויקט, בדרך כלל במסוף Google Cloud מוקצות ההרשאות האלה באופן אוטומטי. עם זאת, אם יוצרים את יעד ההעברה בGoogle Cloud פרויקט אחר, או באמצעות ה-CLI של gcloud או Logging API, צריך להגדיר את ההרשאות באופן ידני.

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

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

בעיות שקשורות למדיניות הארגון ב-sinks

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

אם מופיעות שגיאות שקשורות למדיניות הארגון, אפשר לבצע את הפעולות הבאות:

  • מעדכנים את מדיניות הארגון של היעד כדי להסיר את האילוצים שמונעים מה-sink לנתב רשומות ביומן. כדי לעשות את זה, צריך לוודא שיש לכם את ההרשאות המתאימות לעדכון מדיניות הארגון.

    אפשר לבדוק אם קיימת הגבלה על מיקום המשאב (constraints/gcp.resourceLocations). המגבלה הזו קובעת את המיקומים שבהם אפשר לאחסן נתונים. בנוסף, חלק מהשירותים תומכים באילוצים שעשויים להשפיע על sink ביומן. לדוגמה, יש כמה הגבלות שעשויות לחול כשבוחרים ביעד Pub/Sub. רשימת האילוצים האפשריים מופיעה במאמר בנושא אילוצים של מדיניות הארגון.

    הוראות מופיעות במאמר בנושא יצירה ועריכה של כללי מדיניות.

  • אם אי אפשר לעדכן את מדיניות הארגון, צריך לעדכן את יעד הנתונים בדף Log Router כך שיעמוד בדרישות.

    עוברים אל Log Router

הניתוב של רשומות היומן ב-sink מתחיל כ שמדיניות הארגון כבר לא חוסמת את הכתיבה של ה-sink ליעד, ו-Logging מקבל רשומות יומן חדשות שתואמות למסנן.

בעיות במפתחות הצפנה ב-sinks

אם אתם משתמשים במפתחות הצפנה, שמנוהלים באמצעות Cloud Key Management Service או על ידכם, כדי להצפין את הנתונים ביעד של מאגר הנתונים, יכול להיות שתראו שגיאות שקשורות לכך. ריכזנו כאן כמה בעיות אפשריות ודרכים לפתור אותן:

  • לא נמצא מפתח Cloud KMS.

    • לא נמצא Google Cloud הפרויקט שמכיל את מפתח Cloud KMS שהוגדר להצפנת הנתונים.

    • משתמשים במפתח Cloud KMS תקין מפרויקטGoogle Cloud קיים.

  • המיקום של מפתח Cloud KMS לא תואם למיקום של היעד.

    • אם Google Cloud הפרויקט שמכיל את מפתח Cloud KMS נמצא באזור ששונה מהאזור של היעד, ההצפנה תיכשל ולא ניתן יהיה לנתב את הנתונים ליעד הזה.

    • שימוש במפתח Cloud KMS שנמצא בפרויקט Google Cloud שהאזור שלו תואם ליעד של מאגר הנתונים.

  • הגישה למפתח ההצפנה נדחתה לחשבון השירות של יעד הנתונים.

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

    • צריך להעניק לחשבון השירות שצוין בשדה writerIdentity של יעד הנתונים את התפקיד CryptoKey Encrypter/Decrypter ב-Cloud KMS עבור המפתח שמשמש את היעד. צריך גם לוודא ש-Cloud KMS API מופעל.

בעיות במכסות של מאגרי נתונים

כשמאגרי יומנים כותבים רשומות ביומן, חלות מכסות ייצוא ומכסות יעד. בהתאם ליעד, המכסות נאכפות על המשאב שבו נוצר ה-sink, כמו במקרה של Pub/Sub, או על היעד עצמו, כמו במקרה של BigQuery. אם המכסה מוצתה, יעד לטביעת רגל מפסיק להפנות רשומות ביומן ליעד שלו.

  • הגבלנו את נפח הנתונים של יעד שמנתב רשומות יומן לנושא Pub/Sub ל-60GB לדקה. אם נפח רשומות היומן חורג ממכסת קצב הייצוא, נכתבת רשומת יומן עם קוד השגיאה topic_over_quota.

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

כדי לפתור את הבעיות שקשורות למיצוי המכסה, אפשר לנסות את הפתרונות הבאים:

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

  • שולחים בקשת תמיכה להגדלת המכסה.

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

שגיאות בניתוב לקטגוריות של Cloud Logging

יכול להיות שתיתקלו במצב שבו תוכלו לראות רשומות ביומן בכלי Logs Explorer שהחרגתם באמצעות יעד ה-sink. אפשר עדיין לראות את רשומות היומן האלה אם מתקיים אחד מהתנאים הבאים:

  • אתם מריצים את השאילתה בפרויקט Google Cloud שבו נוצרו רשומות היומן.

    כדי לפתור את הבעיה, צריך לוודא שהשאילתה מופעלת בGoogle Cloud פרויקט הנכון.

  • רשומות היומן שהוחרגו נשלחו לכמה מאגרי יומנים, ואתם רואים עותק של אותו יומן שהתכוונתם להחריג.

    כדי לפתור את הבעיה, בודקים את היעדים בדף Log Router כדי לוודא שלא כללתם את רשומות היומן במסננים של יעדים אחרים.

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

    כדי להימנע מהצגת הרשומות האלה ביומן ב-Logs Explorer, אפשר לצמצם את היקף החיפוש לפרויקט או לקטגוריה של מקור Google Cloud .

פתרון בעיות שקשורות לאחסון יומנים

למה אי אפשר למחוק את הדלי הזה?

אם אתם מנסים למחוק קטגוריה, אתם צריכים:

  • מוודאים שיש לכם את ההרשאות הנכונות למחיקת המאגר. רשימת ההרשאות הנדרשות מופיעה במאמר בקרת גישה באמצעות IAM.

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

אילו חשבונות שירות מעבירים יומנים לדלי שלי?

כדי לבדוק אם לחשבונות שירות מסוימים יש הרשאות IAM להעברת יומנים לקטגוריית היעד, מבצעים את הפעולות הבאות:

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

    כניסה לדף IAM

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

  2. בכרטיסייה Permissions (הרשאות), בוחרים באפשרות Roles (תפקידים). מוצגת טבלה עם כל התפקידים והמשתמשים ב-IAM שמשויכים לGoogle Cloud פרויקט.

  3. בתיבת הטקסט Filter בטבלה, מזינים Logs Bucket Writer.

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

  4. אופציונלי: אם רוצים להסיר חשבון שירות מהאפשרות לנתב יומנים לפרויקט Google Cloud , מסמנים את תיבת הסימון של חשבון השירות ולוחצים על הסרה.

למה אני רואה יומנים של Google Cloud פרויקט מסוים למרות שהחרגתי אותם ממאגר הנתונים _Defaultשלי?

יכול להיות שאתם צופים ביומנים בדלי יומנים בפרויקט Google Cloud מרכזי שבו היומנים מכל הארגון מרוכזים.

אם אתם משתמשים ב-Logs Explorer כדי לגשת ליומנים האלה ולראות יומנים שהחרגתם מ-_Default sink, יכול להיות שהתצוגה מוגדרת לGoogle Cloud רמת הפרויקט.

כדי לפתור את הבעיה הזו, בוחרים באפשרות Log view בתפריט Refine scope ואז בוחרים את תצוגת היומן שמשויכת לדלי _Default בפרויקטGoogle Cloud . היומנים שהוחרגו לא אמורים להופיע יותר.