אתם יכולים לאבחן ולפתור בעיות נפוצות בקישוריות נכנסת ויוצאת במופע של Looker (Google Cloud core). פתרון בעיות בהגדרות של Private Service Connect, גישה לשירותים פרטיים ויציאה מבוקרת עוזר לשחזר חיבורים לספקי זהויות, לשירותים חיצוניים ולבק-אנדים של מסדי נתונים.
כשל באימות OpenID Connect עם יציאה מבוקרת
כשמגדירים אימות OpenID Connect במופע Looker (ליבת Google Cloud) שהוגדר עם Private Service Connect והופעל בו egress מבוקר, יכול להיות שהאימות ייכשל.
תסמינים
אם האימות נכשל, יכול להיות שתיתקלו באחד מהסימפטומים הבאים:
- נקודת הקצה של Looker
/openidconnectנתקעת למשך כ-60 שניות בדפדפן לפני שמוצגת שגיאה או שחלף הזמן הקצוב לתפוגה עם שגיאה504 Upstream Request Timeoutאו504 Gateway Timeout. ספק הזהויות מציג הודעת שגיאה שמציינת שכתובת ה-URI של ההפניה האוטומטית לא תואמת, למשל:
AADSTS50011: The redirect URI specified in the request does not match the redirect URIs configured for the applicationהודעת השגיאה הזו מטעה כי יכול להיות שכתובת ה-URI להפניה אוטומטית שהגדרתם בספק הזהויות נכונה. הכשל בפועל מתרחש כש-Looker (Google Cloud core) לא מצליח ליצור קשר עם נקודת הקצה של הטוקן של ספק הזהויות במהלך ההחלפה בעורף.
מטרה
תהליך העבודה האוטומטי להקצאת הרשאות ליציאה מבוקרת נכשל מדי פעם ביצירת נתיב הרשת הדרוש של Secure Web Proxy (looker-swp-route) בפרויקט הדייר של Looker (ליבת Google Cloud).
אם המסלול הזה חסר, בקשות בק-אנד מ-Looker (Google Cloud core) לנקודת הקצה של ספק הזהויות יגיעו לזמן קצוב לתפוגה, כי המופע לא יכול לנתב תנועה יוצאת לאינטרנט הציבורי דרך Secure Web Proxy.
רזולוציה
כדי לפתור את הבעיה, מבצעים את השלבים הבאים כדי לאפס את ההגדרה של תעבורת נתונים יוצאת מבוקרת (controlled egress), וכך לאלץ את המערכת ליצור מחדש את נתיב הרשת החסר:
במסוף Google Cloud , עוברים לדף Looker:
לוחצים על השם של המכונה שרוצים לעדכן.
לוחצים על Edit.
מרחיבים את הקטע Connections (חיבורים) ועוברים לקטע Configure outbound connections (הגדרת חיבורים יוצאים).
צריך לרשום את כל שמות הדומיין שמוגדרים במלואם (FQDN) שמופיעים בקטע Global FQDN (כמו נקודות הקצה של ספק הזהויות).
מוחקים את כל שמות ה-FQDN שמופיעים בקטע Global FQDN.
כדי להשבית את היציאה המבוקרת, מבטלים את הסימון בתיבת הסימון הפעלת הקישור של Looker לשירותים חיצוניים.
לוחצים על Save.
מחכים עד שעדכון המופע יסתיים ועד ששינויי ההגדרות יתבטלו.
לוחצים שוב על עריכה.
מרחיבים את הקטע Connections (חיבורים) ומסמנים את תיבת הסימון Enable Looker to connect to external services (הפעלת האפשרות לחיבור Looker לשירותים חיצוניים).
בקטע Global FQDN, מוסיפים מחדש את שמות ה-FQDN הנדרשים לספק הזהויות ולכל שירות חיצוני אחר.
לוחצים על Save.
איפוס של יציאה מבוקרת מפעיל את תהליך ההקצאה האוטומטי כדי ליצור מחדש את נתיב הרשת החסר looker-swp-route. אחרי שיוצרים את המסלול, אפשר להשלים בקשות יוצאות מהקצה העורפי לספק הזהויות.
שגיאה 504: הזמן הקצוב לתפוגה של בקשה במעלה הזרם חלף
כשמבצעים קריאות ל-API, מריצים שאילתות ארוכות או מבצעים אימות באמצעות שירות חיצוני במופע של Looker (Google Cloud core), יכול להיות שהבקשה תיכשל עם שגיאת פסק זמן של HTTP 504.
תסמינים
יכול להיות שתקבלו שגיאה 504 Upstream Request Timeout או 504 Gateway Timeout
באחד מהתרחישים הבאים:
- קריאות ל-API או שאילתות נכנסות: קריאות ל-API לנקודות קצה של Looker, כמו
/result_format, או שאילתות ארוכות בממשק המשתמש של Looker נכשלות עם שגיאה504אחרי כ-30 שניות במופע שמוצב לפני מאזן עומסים. - אימות יוצא או חיבורים לשירותים חיצוניים: מופיעה שגיאה
504בדפדפן אחרי חזרה מדף הכניסה של ספק זהויות או כשמתחברים לשירות חיצוני במופע שבו מופעלת יציאה מבוקרת.
מטרה
שגיאת הזמן הקצוב לתפוגה 504 מתרחשת בדרך כלל בגלל אחת מהסיבות הבאות:
- פסק זמן (timeout) של שירות קצה עורפי של מאזן עומסים לבקשות נכנסות: כשניגשים למופע Looker (ליבת Google Cloud) דרך מאזן עומסים של Cloud Load Balancing, לשירות הקצה העורפי של מאזן העומסים יש פסק זמן (timeout) של שירות קצה עורפי של 30 שניות כברירת מחדל. אם הזמן המשולב של ביצוע שאילתת מסד הנתונים ושל עיבוד מטען הייעודי (payload) של Looker חורג ממגבלת הזמן הקצוב לתפוגה, מאזן העומסים סוגר את החיבור ומחזיר שגיאת HTTP
504. - דומיין חסום ליציאה עם יציאה מבוקרת: מופע Looker (Google Cloud core) לא יכול להגיע לדומיין חיצוני דרך יציאה מבוקרת. שלא כמו שגיאות של נתיב חסר, שגיאת
504במהלך בקשות יוצאות בדרך כלל מציינת שנתיב הרשת קיים, אבל דומיין נדרש חסר ברשימת ההיתרים של שם הדומיין שמוגדר במלואו (FQDN) הגלובלי ונחסם, או שהבקשה חורגת מהזמן הקצוב בשער.
רזולוציה
בהתאם לגורם לשגיאה, מבצעים את השלבים שמפורטים בקטעים הבאים כדי לפתור את הבעיה.
פתרון בעיות שקשורות לפסק זמן של איזון עומסים בקריאות API או בשאילתות
כדי לפתור שגיאות 504 שנגרמות בגלל פסק זמן בשירות העורפי של מאזן העומסים, אפשר להשתמש באחת מהשיטות הבאות או בשתיהן:
הגדלת הזמן הקצוב לתפוגה של שירות לקצה העורפי של מאזן העומסים:
נכנסים לדף Load balancing במסוף Google Cloud :
לוחצים על Backends ואז על השם של שירות לקצה העורפי שמשויך למופע של Looker (Google Cloud core).
לוחצים על Edit.
בשדה Timeout (זמן קצוב לתפוגה), מגדילים את ערך הזמן הקצוב לתפוגה, למשל מ-30 שניות ל-300 שניות, כדי להתאים אותו לשאילתות ולבקשות ה-API הארוכות ביותר.
לוחצים על Save.
שימוש בתהליך עבודה אסינכרוני של API: אם אתם קוראים ל-Looker API כדי לאחזר נתוני שאילתות ואין לכם אפשרות לשנות את הזמן הקצוב לתפוגה של מאזן העומסים, השתמשו בנקודות קצה אסינכרוניות במקום בבקשות סינכרוניות. מתקשרים אל
create_query_taskכדי להפעיל את השאילתה באופן אסינכרוני, ואז שולחים בקשות מסוג poll אלquery_task_resultsכדי לאחזר את התוצאות אחרי שהשאילתה מסתיימת.
פתרון בעיות שקשורות לפסק זמן של יציאה מבוקרת
כדי לפתור שגיאות 504 שמתרחשות כש-Looker (Google Cloud core) לא מצליח להתחבר לשירות חיצוני או לספק זהויות עם יציאה מבוקרת מופעלת, צריך לבצע את השלבים הבאים:
- אימות של שמות דומיין שמוגדרים במלואם (FQDN): במסוף Google Cloud , מוודאים שכל הדומיינים שנדרשים על ידי ספק הזהויות או השירות החיצוני נוספו לרשימה Global FQDN. תהליכי אימות של OIDC דורשים לעיתים קרובות כמה נקודות קצה (כמו נקודות קצה של הרשאה, אסימון ופרטי משתמש) שעשויות להשתמש בדומיינים שונים.
- תיעוד של תעבורת הרשת: אם השגיאה נמשכת, מתעדים את תעבורת הרשת בדפדפן (קובץ HAR) בזמן שחזור הבעיה. מחפשים בנתוני המעקב
504קודי סטטוס או בקשות HTTP שנכשלו כדי לזהות דומיינים שיצרו איתם קשר במהלך התהליך, אבל לא נכללים ברשימת ה-FQDN הגלובלי. - איפוס ההגדרה: אם שמות ה-FQDN הנדרשים קיימים אבל הבקשות ממשיכות להיכשל בגלל חריגה מזמן קצוב לתגובה, צריך לפעול לפי השלבים שבקטע פתרון בנושא כשלים באימות OpenID Connect כדי לאפס את הגדרת היציאה המבוקרת.
HttpClient:ConnectTimeoutError execution expired
כשבודקים חיבור OpenID Connect או חיבורים אחרים לרשתות חיצוניות בחלונית האדמין של Looker, יכול להיות שבדיקת החיבור תיכשל בגלל שגיאת זמן קצוב לתפוגה.
תסמינים
כשמריצים בדיקת חיבור בלוח האדמין של Looker (למשל בדף אימות OpenID Connect), Looker מחזיר את השגיאה הבאה:
HttpClient:ConnectTimeoutError execution expired
מטרה
השגיאה הזו מציינת שחסר למופע Looker (Google Cloud core) נתיב הרשת הדרוש כדי לתקשר עם ספק הזהויות או השירות החיצוני. הבעיה הזו מתרחשת בדרך כלל אם מתקיים אחד מהתנאים הבאים:
- חסרה הפצה של מסלולים: Cloud Router משתמש בהגדרות ברירת מחדל ולא מפיץ מסלולים של רשת VPC (כמו מסלולים מותאמים אישית שפורסמו) למכונה של Looker (Google Cloud core).
- חסרה קבוצת נקודות קצה ברשת באינטרנט: לא מוגדרת קבוצה של נקודות קצה ברשת באינטרנט (NEG) ברשת ה-VPC לניתוב תעבורה לשירות החיצוני.
רזולוציה
כדי לפתור את הבעיה, בצע את הצעדים הבאים:
- הגדרת הפצת מסלולים ב-Cloud Router: כדי להגדיר מסלולים מותאמים אישית שמופצים, מוודאים ש-Cloud Router מוגדר להפצת המסלולים הדרושים ברשת ה-VPC למופע של Looker (Google Cloud core).
- הגדרת NEG לאינטרנט: מגדירים NEG לאינטרנט ברשת ה-VPC כדי לאפשר למופע של Looker (הליבה של Google Cloud) לנתב תעבורת נתונים יוצאת (egress) לספק או לשירות החיצוני של זהויות.
- אימות גישה לשירותים פרטיים: אם המכונות הווירטואליות משתמשות בגישה לשירותים פרטיים, צריך לוודא שרשת ה-VPC מקושרת בצורה תקינה לשירותי Google. מידע נוסף זמין במאמר בנושא גישה לשירותים חיצוניים באמצעות גישה לשירותים פרטיים.
בעיות בחיבור Private Service Connect מדרום
במקרים של מופעי Looker (Google Cloud core) שמשתמשים ב-Private Service Connect לחיבורים יוצאים למסדי נתונים או לשירותים שפורסמו, יכול להיות שתיתקלו בשגיאות חיבור גם כשסטטוס נקודת הקצה הוא Accepted.
דוגמאות לבעיות נפוצות:
- שגיאות בפתרון שם המארח: אם מוצגת שגיאת
Unknown hostב-Looker (Google Cloud core) כשבודקים חיבור, צריך לוודא ששם המארח שהוגדר תואם לרשומת ה-DNS ברשת הפרטית, ושהמאזן של עומס העורף תקין. - פסק זמן לחיבורים: אם החיבורים נפסקים בגלל פסק זמן, צריך לבדוק את כללי חומת האש של ה-VPC כדי לוודא שתעבורת נתונים נכנסת מותרת מתת-רשת ה-NAT של Private Service Connect לשרתים העורפיים של מאזן העומסים.
- הסטטוס 'בהמתנה' או 'סגור': אם סטטוס קובץ השירות הוא
PendingאוClosed, צריך לוודא שהפרויקט של הצרכן נמצא ברשימת ההיתרים של קובץ השירות ושהבדיקות המנדטוריות של תקינות TCP מוגדרות.
למידע נוסף על תהליכי עבודה מפורטים לאבחון ועל עץ החלטות, אפשר לעיין במאמר בנושא פתרון בעיות בחיבורים פרטיים של Private Service Connect מדרום לצפון.
בעיות בקישוריות ובנתיב של גישה לשירותים פרטיים
במקרים של מופעי Looker (ליבת Google Cloud) שמשתמשים בגישה לשירותים פרטיים, תקשורת יוצאת לשירותים חיצוניים מחייבת הפצה נכונה של מסלולים ותשתית רשת:
- הפצת מסלולים: מוודאים ש-Cloud Router מוגדר להפצת מסלולי רשת VPC למופע Looker (ליבת Google Cloud), כמו מסלולים מותאמים אישית שפורסמו.
- קבוצות של נקודות קצה ברשת האינטרנט: אם המופע שלכם צריך להגיע לנקודות קצה חיצוניות דרך גישה לשירותים פרטיים, ודאו שקבוצה של נקודות קצה ברשת האינטרנט (NEG) מוגדרת ברשת ה-VPC שלכם.
אם המסלולים או קבוצות נקודות הקצה האלה חסרים, בדיקות החיבור לנקודות קצה חיצוניות נכשלות עם השגיאה HttpClient:ConnectTimeoutError execution expired.
מידע נוסף זמין במאמר בנושא גישה לשירותים חיצוניים באמצעות גישה לשירותים פרטיים.
כלי אבחון ויומנים
כדי לאבחן בעיות ברשת, אפשר להשתמש בכלים וביומנים הבאים:
- Cloud Logging: אפשר להציג יומנים ברמת המופע ב-Cloud Logging כדי לזהות כשלים בחיבור ואירועים במערכת. מידע נוסף מופיע במאמר בנושא צפייה ביומנים של מופעים.
- פעילות המערכת ב-Looker: אם יש לכם הרשאות אדמין, תוכלו לבדוק את מרכז הבקרה פעילות המשתמשים בפעילות המערכת. בלוח הבקרה הזה מוצגים ניסיונות כניסה שנכשלו לאחרונה, שיטת האימות שבה נעשה שימוש והודעות שגיאה. מידע נוסף זמין במאמר בנושא מרכז הבקרה לפעילות במסמך.
- VPC Flow Logs: כדאי לבדוק את VPC Flow Logs כדי לראות אם תעבורת הנתונים ברשת מ-Looker (הליבה של Google Cloud) מגיעה לרשת המשנה של היעד או נחסמת על ידי כללי חומת האש.
- Cloud Customer Care: אם השלמתם את השלבים לפתרון הבעיה והיא נמשכת, פנו אל Cloud Customer Care לקבלת עזרה.