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

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

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

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

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

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

ניסיתם ליצור 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

כדי לפתור את השגיאה הזו, משתמשים בנקודת הקצה הגלובלית לאחד מהשירותים הנתמכים. אי אפשר לציין נקודת קצה אזורית של שירות (REP) כיעד של sink ביומן, כמו 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 שמחיל הגבלות על נתונים במעבר, ושהרישום ביומן של רשומות ביומן שמועברות מאיזור שלא מורשה על ידי המדיניות של הנושא. אפשר להגדיר הגבלות על הודעות במעבר במדיניות אחסון ההודעות של נושא ספציפי, או להחיל אותן על כל הארגון באמצעות האילוץ constraints/pubsub.enforceInTransitRegions של מדיניות הארגון.

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

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

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

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

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

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

logName:projects/PROJECT_ID

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

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

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

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

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

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

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

זמן אחזור

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

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

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

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

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

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

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

    • אם אתם משתמשים ב-Logs Explorer, לוחצים על הלחצן צמצום ההיקף.

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

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

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

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

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

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

הצגת שגיאות

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

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

יומני שגיאות

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

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

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

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 שולח התראות באימייל על שגיאות בהגדרת יעד לאנשי קשר שהוקצו לקטגוריית ההתראות הטכניות בפרויקט Cloud de Confiance או במשאב האב שלו. אם לא הוגדר איש קשר לקבלת התראות טכניות עבור המשאב, המשתמשים שמוגדרים כProject Owner ב-IAM‏ roles/owner עבור המשאב יקבלו את ההתראה באימייל.

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

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

  • מזהה המשאב: השם של Cloud de Confiance הפרויקט או שלCloud de Confiance משאב אחר שבו הוגדר יעד.
  • שם יעד: השם של היעד שמכיל את שגיאת ההגדרה.
  • יעד של 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

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

עוברים אל Log Router

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

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

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

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

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

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

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

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

עוברים אל Log Router

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

בעיות ב-sink מושבת

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

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

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

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

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

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

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

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

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

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

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

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

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

    עוברים אל Log Router

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

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

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

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

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

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

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

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

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

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

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

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

בעיות במכסות שקשורות למאגרי מידע

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    כניסה לדף IAM

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

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

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

    מוצגים כל חשבונות המשתמשים עם התפקיד כתיבה בדלי יומנים. אם חשבון המשתמש הוא חשבון שירות, המזהה שלו מכיל את המחרוזת s3ns-system.iam.gserviceaccount.com.

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

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

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

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

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