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

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

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

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

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

יצירת sink נכשלת עם שגיאת שירות לא ידועה

ניסיתם ליצור sink ביומן, אבל הפקודה נכשלה עם השגיאה INVALID_ARGUMENT (HTTP 400). הודעת השגיאה כוללת את הפרטים הבאים:

Sink.destination with unknown service name: [SERVICE_DOMAIN]. Supported services are bigquery.googleapis.com,pubsub.googleapis.com,storage.googleapis.com,logging.googleapis.com

כדי לפתור את השגיאה, צריך להשתמש בנקודת הקצה הגלובלית של אחד מהשירותים הנתמכים. יעד של sink ביומן לא יכול לציין נקודת קצה של שירות אזורי (REP), כמו pubsub.LOCATION.rep.googleapis.com.

הודעת השגיאה בהגדרת הכיור מציינת שאזור הנושא לא מורשה

אחת מהאפשרויות הבאות תתרחש:

  • אתם מקבלים אימייל עם הנושא [ACTION REQUIRED] Cloud Logging sink configuration error in [PROJECT_ID] וקוד השגיאה topic_region_not_allowed. האימייל כולל הודעה דומה לזו:

    דרישות המדיניות של אחסון ההודעות של הנושא דורשות אכיפה בזמן ההעברה, אבל בקשת הפרסום התקבלה בשרת Pub/Sub באזור שאסור. צריך לפרסם דרך נקודת קצה אזורית של Cloud Logging שתואמת לאזור מותר, או לעדכן את מדיניות אחסון ההודעות של הנושא.

  • אתם מבחינים ברשומות ביומן עם רמת חומרה ERROR, קוד שגיאה "topic_region_not_allowed" ומטען ייעודי (payload) של טקסט שדומה לזה:

    Cloud Logging sink configuration error in [PROJECT_ID], sink [SINK_NAME]: topic_region_not_allowed ()
    

ההודעות האלה מציינות שהיעד של ה-sink הוא נושא Pub/Sub שאוכף הגבלות על נתונים במעבר, ושהכלי Logging ניתב רשומות ביומן מאזור שלא מותר לפי המדיניות של הנושא. אפשר להגדיר הגבלות על נתונים במעבר במדיניות אחסון ההודעות של נושא ספציפי, או לאכוף אותן ברמת הארגון באמצעות אילוץ מדיניות הארגון constraints/pubsub.enforceInTransitRegions.

כדי לפתור את הבעיות האלה, צריך לבצע אחת מהפעולות הבאות:

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

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

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

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

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

logName:projects/PROJECT_ID

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

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

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

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

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

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

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

זמן אחזור

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

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

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

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

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

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

    מצמצמים את החיפוש לתצוגת יומנים אחת או יותר:

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

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

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

    נסו להרחיב את טווח התאריכים שבו אתם משתמשים כשאתם בוחרים נתונים ביעד של הכיור.

שגיאה במסנן של הכיור

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

    עורכים את המסנן של ה-sink באמצעות נתב היומנים במסוף Google Cloud . כדי לוודא שהזנתם את המסנן הנכון, בחרו באפשרות Preview logs בחלונית Edit sink. הפעולה הזו פותחת את הכלי "מציג יומני הרישום" בכרטיסייה חדשה, כשהמסנן מאוכלס מראש. במאמר ניהול אובייקטי sink מוסבר איך לראות ולנהל את אובייקטי ה-sink.

לצפייה בשגיאות

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

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

יומני שגיאות

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

לדוגמה, אם שם ה-sink הוא 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 מכיל תיאור קצר של השגיאה, כדי שתדעו איזה רכיב של הכיור צריך להגדיר מחדש.

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

נכנסים לדף Log Router.

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

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

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

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

  • מזהה המשאב: השם של הפרויקט ב- Google Cloud או של משאב אחר ב-Google Cloud שבו הוגדר הכיור.
  • ‫Sink name: שם הכיור שמכיל את שגיאת ההגדרה.
  • יעד הכיור: הנתיב המלא של יעד הניתוב של הכיור, לדוגמה: 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. כל שגיאה מכילה קישור לאחת מרשומות היומן שנוצרו על ידי הכיור הפגום. כדי לבדוק את השגיאות הבסיסיות בפירוט, עיינו בקטע יומני שגיאות.

יעד שגוי של הכיור

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

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

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

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

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

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

נכנסים לדף Log Router.

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

בעיות שקשורות לכיורים מושבתים

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

בעיות בהרשאות של כיורים

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

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

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

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

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

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

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

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

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

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

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

    נכנסים לדף Log Router.

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

בעיות במפתחות הצפנה בכיורים

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

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

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

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

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

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

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

  • לחשבון השירות של הכיור אין גישה למפתח ההצפנה.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

אילו חשבונות שירות מנתבים יומנים לקטגוריה שלי?

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

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

    נכנסים לדף IAM.

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

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

  3. בתיבת הטקסט Filter של הטבלה, כותבים Logs Bucket Writer.

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

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

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

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

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

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