במסמך הזה מוסבר איך לפתור שגיאות שעשויות להתרחש כשמשתמשים בדף Log Analytics במסוף Google Cloud .
הודעות שגיאה
בקטע הזה מתוארות הודעות שגיאה שאתם עשויים לראות, ומוסבר איך לפתור את תנאי השגיאה התואמים.
הודעת השגיאה No completion signal within allotted timeframe
מזינים שאילתת SQL ובוחרים באפשרות הפעלת שאילתה. השאילתה לא מסתיימת ומופיעה הודעת השגיאה הבאה:
The query failed to execute and return results due to error: No completion signal within allotted timeframe.
כדי לפתור את השגיאה, מבצעים אחת מהפעולות הבאות:
מקצרים את פרק הזמן שבו מתבצעת השאילתה ביומנים, ואז מנסים להריץ את השאילתה שוב. לדוגמה, אם מרווח השאילתה הוא 14 ימים, מקצרים את המרווח ל-7 ימים ואז מריצים את השאילתה.
יוצרים מערך נתונים מקושר ב-BigQuery ואז מריצים את השאילתה מממשק BigQuery. ממשק BigQuery תומך בשאילתות שנדרש להן זמן ביצוע ארוך יותר מאשר בממשק Cloud Logging. מידע נוסף זמין במאמר בנושא שאילתות על מערך נתונים מקושר של BigQuery.
הודעת שגיאה לגבי שאילתות על מאגרי מידע עם מפתחות CMEK שונים
מזינים שאילתת SQL ששולפת נתונים מכמה מאגרי יומנים ולוחצים על הפעלת שאילתה. השאילתה לא מסתיימת ומופיעה הודעת השגיאה הבאה:
Queries against buckets with distinct CMEK keys must have a key configured in the LogSettings.
כדי לפתור את הבעיה, אפשר לנסות אחד מהפתרונות הבאים:
- מגדירים את מאגרי היומנים כך שישתמשו באותו מפתח של Cloud Key Management Service (Cloud KMS).
- אם מאגרי היומנים נמצאים באותו מיקום, אפשר להגדיר תיקייה או ארגון כמשאב אב למאגרי היומנים עם מפתח Cloud KMS שמוגדר כברירת מחדל. מפתח ברירת המחדל של ההורה צריך להיות באותו מיקום כמו מאגרי היומנים. בהגדרה הזו, מפתח ברירת המחדל של החשבון הראשי מצפין את כל הנתונים הזמניים שנוצרים על ידי השאילתה של Log Analytics. מידע נוסף זמין במאמר בנושא הגבלות ב-Log Analytics.
המשפט FROM חייב להכיל בדיוק הודעת שגיאה אחת של תצוגה
מזינים שאילתת SQL בחלונית השאילתות בדף Log Analytics במסוף Google Cloud , אבל מנתח ה-SQL מציג את השגיאה הבאה:
FROM clause must contain exactly one log view
השגיאה הקודמת מדווחת כשאי אפשר לפתור את הבעיה בטבלה שצוינה בהצהרה FROM בתצוגת יומן ספציפית.
כדי לפתור את השגיאה הזו, צריך לוודא ששם הטבלה כולל את התחביר הנכון:
מוודאים ששם הטבלה תואם לתחביר שנדרש על ידי סכמת מתן השמות של Log Analytics. ל-BigQuery ול-Log Analytics יש דרישות שונות לגבי שם הטבלה. כדי לראות את התחביר הנדרש לשם הטבלה, אפשר להציג את שאילתת ברירת המחדל.
אם מזהה הפרויקט, האזור, מזהה הקטגוריה או מזהה התצוגה של קטגוריית יומנים מכילים נקודות,
(.), צריך לוודא שכל אחד מהשדות האלה מוקף במירכאות הפוכות בודדות,(`). Google Cloudלדוגמה, אם מזהה הפרויקט הוא
example.com:bluebird, כדי לשלוח שאילתה לתצוגה_AllLogsשל קטגוריית היומן_Default, משתמשים בתחביר הבא כדי לציין את הטבלה: Google CloudSELECT * FROM `example.com:bluebird`.`global`.`_Default`.`_AllLogs`השאילתה הקודמת מניחה שקטגוריית
_Defaultנמצאת באזורglobal.
לא ניתן לשמור שאילתה
אתם רוצים לשמור את השאילתה הנוכחית, אז אתם מריצים את השאילתה ואז לוחצים על שמירה, אבל האפשרות שמירת שאילתה מושבתת או שאתם לא מצליחים להשלים את השלבים בתיבת הדו-שיח.
הסיבה לכשל היא קונפליקט בין מדיניות הארגון לבין הגדרות ברירת המחדל של המשאבים ב-Cloud Logging. בארגון או בתיקייה, אפשר להגדיר הגדרות ברירת מחדל למשאבים ב-Cloud Logging שמציינות מיקום. במיקום הזה מאוחסנות השאילתות השמורות שלכם. עם זאת, אם המיקום סותר מדיניות של הארגון, לא ניתן לשמור את השאילתות.
כדי לפתור את הכשל הזה, צריך לבקש מהאדמין של הארגון לעדכן את הגדרות ברירת המחדל של המשאבים ב-Cloud Logging כך שהגדרת המיקום תאושר על ידי מדיניות הארגון. מידע נוסף זמין במאמר הגדרת ברירת מחדל של משאבים ל-Cloud Logging.
אם האפשרות שמירת שאילתה מופעלת אבל אתם לא מצליחים להשלים את תיבת הדו-שיח ולשמור את השאילתה, צריך לבצע את הפעולות הבאות:
- מוודאים שהשאילתה לא מכילה שגיאות תחביר. אפשר לשמור רק שאילתות תקינות.
- אופציונלי: מעתיקים את השאילתה ללוח.
- צריך לטעון מחדש את הדף.
- אם העתקתם את השאילתה ללוח, מדביקים אותה בחלונית Query, מריצים אותה ואז מבצעים את פעולת השמירה.
אי אפשר ליצור תצוגת ניתוח נתונים
אתם רוצים ליצור תצוגת ניתוח, אז אתם מזינים ומריצים שאילתת SQL ואז לוחצים על שמירה, אבל האפשרות שמירה כתצוגת ניתוח מושבתת.
כדי לפתור את הבעיה, צריך לוודא שתפקידי ה-IAM שלכם כוללים את ההרשאות הבאות:
observability.analyticsViews.{get, list, create, update, delete}
ההרשאות האלה לא נכללות באף תפקיד מוגדר מראש ב-Cloud Logging. מידע על התפקידים הנדרשים זמין במאמר יצירה של תצוגות ניתוח נתונים והרצת שאילתות עליהן: לפני שמתחילים.
אי אפשר להריץ שאילתה בתצוגת ניתוח נתונים
אתם רוצים להריץ שאילתה על תצוגת ניתוח נתונים, אבל בחלונית Views בדף Log Analytics לא מוצגות תצוגות ניתוח נתונים.
כדי לפתור את הבעיה, נסו את הפתרונות הבאים:
חשוב לוודא שתפקידי ה-IAM שלכם כוללים את ההרשאות הבאות:
observability.analyticsViews.{get, list}
ההרשאות האלה לא נכללות באף תפקיד מוגדר מראש ב-Cloud Logging. מידע על התפקידים הנדרשים זמין במאמר יצירה של תצוגות ניתוח נתונים והרצת שאילתות עליהן: לפני שמתחילים.
מוודאים שקיימות תצוגות מפורטות של נתונים אנליטיים ב Google Cloud פרויקט.
הגישה לדף Log Analytics נדחתה
כשפותחים את הדף Log Analytics במסוף Google Cloud , מוצגת הודעת שגיאה על דחיית הרשאה.
כדי לקבל את ההרשאות שדרושות לטעינת הדף Log Analytics, להפעלת שאילתות ולצפייה ביומנים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים בפרויקט:
-
כדי לראות את היומנים:
Logs Viewer (
roles/logging.viewer) -
צפייה ביומנים בקטגוריות יומנים בהתאמה אישית:
בעל הרשאת גישה לתצוגת יומנים (
roles/logging.viewAccessor)
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש של Logging.
ההרשאות שנדרשות כדי לצפות ברשומות ביומן ולהריץ שאילתות בדף Log Analytics זהות לאלה שנדרשות כדי לצפות ביומנים בדף Logs Explorer. מידע על תפקידים נוספים שצריך כדי לשלוח שאילתות לתצוגות של מאגרי מידע שהוגדרו על ידי המשתמש או כדי לשלוח שאילתות לתצוגה _AllLogs של קטגוריה ביומן _Default זמין במאמר בנושא תפקידים ב-Cloud Logging.
השדרוג של קטגוריית יומנים לשימוש ב-Log Analytics נכשל
יוצרים קטגוריה ביומן ובוחרים באפשרות להשתמש ב-Log Analytics, או משדרגים קטגוריה ביומן קיימת כדי להשתמש ב-Log Analytics. השדרוג נכשל עם מצב שגיאה דומה לזה:
Failed precondition (HTTP 400): Constraint "my-constraint" violated for PROJECT_ID with location global.
הודעת השגיאה הקודמת מציינת שהארגון שלכם הגדיר מדיניות ארגונית שמגבילה את האזורים שאפשר להשתמש בהם. קטגוריות של יומנים שאפשר לשדרג כדי להשתמש ב-Log Analytics חייבות להשתמש באזור global. אם אתם יכולים להסיר את מדיניות הארגון שמגבילה את השימוש באזור global, תוכלו לשדרג את קטגוריית היומנים. אחרת, לא תוכלו לשדרג את דלי היומנים.
יצירת מערך נתונים מקושר ב-BigQuery נכשלת
אתם עורכים קטגוריה ביומן כדי ליצור מערך נתונים מקושר ב-BigQuery, או שאתם יוצרים קטגוריה ביומן חדשה ובוחרים באפשרות ליצור מערך נתונים מקושר. עם זאת, מערך הנתונים המקושר לא נוצר.
כדי לפתור את השגיאה, צריך לבקש מאדמין המערכת של הפרויקט Google Cloud להקצות לכם תפקיד IAM שכולל את ההרשאה הבאה:
logging.links.create
ההרשאה הקודמת כלולה בתפקידים Logging Admin (אדמין של Logging, roles/logging.admin) ו-Logs Configuration Writer (כתיבת הגדרות של יומנים, roles/logging.configWriter).
במאמר בקרת גישה באמצעות IAM מוסבר על תפקידים והרשאות.
המחיקה של מערך נתונים מקושר ב-BigQuery נכשלת
אתם לא רוצים יותר את מערך הנתונים המקושר, אבל האפשרות למחוק אותו מושבתת.
כדי לפתור את השגיאה, צריך לבקש מאדמין המערכת של הפרויקט Google Cloud להקצות לכם תפקיד IAM שכולל את ההרשאה הבאה:
logging.links.delete
ההרשאה הקודמת כלולה בתפקידים Logging Admin (אדמין של Logging, roles/logging.admin) ו-Logs Configuration Writer (כתיבת הגדרות של יומנים, roles/logging.configWriter).
ההרשאה הזו מאפשרת למחוק את מערך הנתונים המקושר מהדף Logs Storage במסוף Google Cloud . מידע נוסף על תפקידים והרשאות זמין במאמר בקרת גישה באמצעות IAM.
ב-Log Analytics מוצגת אזהרה לגבי מטא-נתונים רגישים
בדף Log Analytics מוצגת הודעה דומה להודעה הבאה:
This SQL query is configured to run on the BigQuery engine using [PROJECT_ID],
and references resources from [RESOURCE, ...]. Sensitive metadata,
including table contents, may be written to [PROJECT_ID].
הודעת האזהרה מציינת שהשאילתה חוצה גבולות של בעלות, ומאפשרת לכם לאמת את השאילתה לפני שהיא מופעלת. גבולות הבעלות נקבעים לפי כמה גורמים, שאחד מהם הוא ההיררכיה של המשאבים שבהם נעשה שימוש בשאילתה.
אי אפשר למנוע את סוגי האזהרות האלה.
אם מוצגת תיבת דו-שיח עם אזהרה בדף Log Analytics, אפשר לבצע אחת מהפעולות הבאות:
אם אתם יודעים שהשאילתה בטוחה להרצה ורוצים לראות את התוצאות שלה, לוחצים על אישור והרצה.
לנתח את השאילתה ולבטל אותה אם צריך. לדוגמה, אפשר לבצע את הפעולות הבאות:
- בודקים את השאילתה. בבדיקה, צריך להתייחס לנתונים שנשלחת לגביהם שאילתה, לגודל הפוטנציאלי של מערך הנתונים שנשלחת לגביו שאילתה ולמנוע השאילתות. יכול להיות שתחויבו על שאילתות שמופעלות בשירות BigQuery.
- אם קיבלתם קישור לדף Log Analytics, צריך לוודא שהשולח הוא מקור מהימן.
Google Cloud מספק כמה תכונות שיכולות לעזור למנוע זליגת נתונים באמצעות פישינג, התקפות מבפנים או ישויות חיצוניות. מידע נוסף זמין במאמר בנושא אבטחת מידע באמצעות Log Analytics.
אי אפשר להגדיר את מנוע השאילתות ל-BigQuery
האפשרות BigQuery בתפריט settings Settings מושבתת.
כדי להפעיל את האפשרות הזו, צריך לוודא שיש לכם מערך נתונים מקושר של BigQuery בקטגוריה ביומן שמתבצעת לגביו שאילתה.
הכפתור 'הפעלה ב-BigQuery' מושבת
אם לחצן Run on BigQuery מוצג אבל מושבת, סימן שתצוגת היומן שאליה מתייחסת השאילתה לא מקושרת למערך נתונים. כדי להריץ את השאילתה במנוע BigQuery, צריך ליצור מערך נתונים מקושר ב-BigQuery בקטגוריה ביומן.
אין חשבון שירות לניטור
רוצים ליצור מדיניות התראות כדי לעקוב אחרי התוצאות של שאילתת SQL. בשלבי ההגדרה נדרשת הקצאת תפקידי IAM לחשבון השירות של Monitoring, אבל החשבון הזה לא קיים.
חשבון השירות של Monitoring נקרא סוכן שירות, כי הוא נוצר ומנוהל על ידיGoogle Cloud. החשבון נוצר באופן אוטומטי כשמגדירים משאב או שירות שנדרש להם החשבון. לדוגמה, אם יוצרים ערוץ התראות של Pub/Sub, יכול להיות שהפעולה הזו תגרום ליצירה של חשבון השירות של Monitoring.
כדי ליצור את חשבון השירות של Monitoring ולהעניק לו את ההרשאות הנדרשות למדיניות התראות מבוססת-SQL, מבצעים את הפעולות הבאות:
יוצרים את חשבון השירות של Monitoring. מידע נוסף זמין במאמר איך יוצרים סוכני שירות ומעניקים להם תפקידים.
מקצים לחשבון השירות של Monitoring את התפקידים הבאים:
- סוכן שירות של Monitoring (
roles/monitoring.notificationServiceAgent) בפרויקט. - BigQuery Data Viewer (
roles/bigquery.dataViewer) במערך הנתונים המקושר.
- סוכן שירות של Monitoring (
שגיאה: הגישה לחשבון השירות לצורך מעקב נדחתה
רוצים ליצור מדיניות התראות כדי לעקוב אחרי התוצאות של שאילתת SQL.
עם זאת, מוצגת שגיאת PermissionDenied עם הודעה שמתחילה ב-Error authenticating service account.
כדי לפתור את הכשל הזה, צריך להעניק את התפקידים הבאים לחשבון של שירות Monitoring:
- סוכן שירות של Monitoring (
roles/monitoring.notificationServiceAgent) בפרויקט. - BigQuery Data Viewer (
roles/bigquery.dataViewer) במערך הנתונים המקושר.
יש רשומות כפולות בתוצאות של Log Analytics
אתם מריצים שאילתה שסופרת או מדווחת על ערכים כפולים. הכלי Logs Explorer מסיר רשומות כפולות על סמך שם היומן, חותמת הזמן ומזהה ההוספה, ולכן אתם מצפים ש-Log Analytics יסיר רשומות כפולות ביומן לפני הפעלת שאילתה.
ב-Log Analytics לא מתבצעת אותה סוג של ביטול כפילויות שמתבצע ב-Logs Explorer.
כדי לפתור בעיה של רשומות כפולות ביומן, אפשר לנסות את הפעולות הבאות:
בודקים אם לערכים של חותמות הזמן של קבלת הרשומות הכפולות ביומן יש ערכים שונים. אם חותמות הזמן שונות, זה מצביע על כך שאותם נתונים נכתבו כמה פעמים ב-Logging.
כדי לפתור בעיות שקשורות לכתיבה כפולה, צריך לבדוק את שילוב הרישום ביומן כדי לראות אם יש הודעות שגיאה או הגדרות שגויות.
אם הקטגוריה שלכם מוגדרת לשימוש במפתחות של Cloud Key Management Service, צריך לוודא שאתם נמצאים במסגרת המיכסה ושהמפתח נגיש באופן עקבי. חריגה מהמכסה או אובדן גישה למפתחות עלולים לגרום לכפילויות ברשומות ביומן.
כדי לפתור את הכשלים האלה, צריך לוודא שלא חורגים מהמכסה ושהמפתח נגיש.
משנים את השאילתה כדי להסיר רשומות כפולות ביומן.
לדוגמה, נניח שמטען ה-JSON הייעודי מכיל את
fieldAואתfieldB, כאשר הראשון הוא מחרוזת והשני הוא ערך מספרי. בנוסף, נניח שמטען ה-JSON מכיל שדה עם התוויתserver, שמכיל מחרוזת. לאחר מכן, כדאי לעיין בשאילתה הבאה:SELECT JSON_VALUE(json_payload.fieldA) AS fieldA SUM(IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0)) AS sum_fieldB FROM `VIEW` WHERE JSON_VALUE(json_payload.server) = "test" GROUP BY fieldA;אפשר לשנות את השאילתה כדי להסיר רשומות כפולות ביומן. כדי לקבוע אם רשומה ביומן היא כפולה, המערכת בודקת את שם היומן, חותמת הזמן ומזהה ההוספה:
WITH deduplicated AS ( SELECT JSON_VALUE(json_payload.fieldA) AS fieldA IFNULL(SAFE_CAST(JSON_VALUE(json_payload.fieldB) AS INT64), 0) AS fieldB FROM `VIEW` a WHERE JSON_VALUE(json_payload.server) = "test" QUALIFY ROW_NUMBER() OVER (PARTITION BY a.log_name, a.timestamp, a.insert_id ) = 1 ) SELECT fieldA, SUM(fieldB) AS sum_fieldB FROM deduplicated GROUP BY fieldA;