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

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

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

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

למה ניטור מ-מיקום יחיד יוצר נקודות עיוורון מסוכנות

רוב שירותי ניטור התעבורה, כולל אלה המכונים ממשפחות ידועות, ברירת מחדל להשגחה מ-מיקום יחיד או לאפשר למשתמשים לבחור אזור ניטור ראשוני אחד. גישה זו עובדת בצורה מושלמת לגילוי הפסקות מוחלטות שבהן שרת המקור למטה ואף אחד בשום מקום לא יכול לגשת לאתר. עבור כשלים קטסטרופליים אלה, בדיקה יחידה מספיקה מכיוון שהבעיה היא אוניברסלית. אך כישלון שרת מוחלט הוא רק קטגוריה אחת של הפסקה, וגדל יותר זה אפילו לא הנפוץ ביותר. תשתיות אינטרנט מודרניות, עם שכבותיה של CDNs, מאזני עומס, DNS failover, וקצה קצה קצה, הפכו הפסקות כוללות נדירות תוך שהופכות כשלים חלקיים, אזוריים ותקופתיים תדירים יותר.

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

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

שש בדיקות ומה כל דפוס כישלון חושף

הכוח של שש בדיקות בו-זמניות טמון לא רק בגילוי כשלים אלא באבחון שלהם. דפוסי כשל שונים תואמים לקטגוריות שונות של בעיות, ומפעיל מנוסה יכול לעתים קרובות לזהות את הסיבה הריאלית מדפוס הניטור בלבד לפני שפתח אפילו חלון טרמינל. כאשר כל שש הבדיקות נכשלות בו-זמנית עם שגיאות timeout חיבור, שרת המקור או רשתו אינו כנראה נגיש, מה שמרמז על קריסת שרת, הפסקה בספק אירוח, או בעיה ברמת הרשת במרכז הנתונים. כאשר כל שש הבדיקות נכשלות עם תגובות שגיאת HTTP כמו 502 או 503, השרת נגיש אך היישום שבור, מה שמרמז על שגיאה בהטמעה, כשל בסיס נתונים, או קריסת ברמת יישום.

כאשר בדיקה או שתיים נכשלות בעוד שאחרות מצליחות, הדפוס מספר סיפור אזורי. אם הבדיקות הנכשלות שתיהן באסיה בעוד שהבדיקות האירופיות והצפוניות אמריקאיות מצליחות, הבעיה כמעט בטוח בנתיב הרשת בין אסיה לשרת המקור, בין אם בקצה CDN, בספק חולף, או בפותר DNS אזורי. אם הבדיקה הנכשלת באותו אזור כמו שרת המקור בעוד שבדיקות רחוקות מצליחות, הבעיה עשויה להיות ברמת הרשת המקומית של ספק האירוח, כשבדיקות רחוקות משרת מ-CDN cache שמסתיר את כשל המקור. כל דפוס מצמצם את שדה אבחון והאיץ את הזמן לפתרון.

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

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

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

ניתוב Anycast, בשימוש בעיקר על ידי CDNs וספקי DNS גדולים, מוסיף שכבה נוספת של מורכבות. עם anycast, כתובת ה-IP זהה מוכרזת מ-מיקומים גיאוגרפיים מרובים, והתשתיות הניתוב של האינטרנט מנחות כל בקשה לאזור הקרוב ביותר המכריז. זה אומר שפתרון DNS או בקשת CDN מאירופה מגיעה לשרת אירופי בעוד שאותה בקשה מאסיה מגיעה לשרת אסיאתי, למרות שכתובת ה-IP בשני המקרים זהה. אם לצומת anycast אסיאתי יש בעיה, בדיקות אסיאתיות מגלות זאת בעוד שבדיקות אירופיות לא יכולות, מכיוון שבקשותיהם לעולם אל לא אפילו להגיע לאותו שרת פיזי.

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

מגילוי לפעולה וידיעה מה לתקן

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

כאשר התראות הניטור מראות שאזור יחיד נכשל בעוד שאחרים נשארים בריאים, המפעיל יכול מיד להתמקד את החקירה שלהם בנתיב הרשת של אזור זה. האם קצה CDN באזור זה מדווח על בעיות? האם קיימת אירוע BGP פעיל המשפיע על ספקי חולף באזור זה? האם פותר ה-DNS של אזור זה מחונן רשומה מיושנת או שגויה? כל אחת משאלות אלה ניתן לענות במהירות, והתשובות מובילות לפעולות תיקון ספציפיות: טהור את ה-CDN cache של אזור זה, צור קשר עם ספק החולף, או כפה רענון DNS. ללא ההקשר הגיאוגרפי שמסופק על ידי ניטור רב-אזורי, המפעיל יחקור בעיוורון, בדיקת כל נקודת כישלון אפשרית ולא רק אלה הסבירות להיות אחראיות.

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

שאלות נשאלות בתכיפות

אילו שש מיקומים משמשים לניטור

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

מה קורה כאשר רק מיקום אחד חוקר כישלון

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

האם ניטור רב-אזורי יכול לגלות ביצועים איטיים לפני הפסקה מלאה

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

כמה בתדירות בדיקות רוצות מכל מיקום

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

האם ניטור רב-אזורי עובד עם אתרים מאחורי Cloudflare או CDNs אחרים

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

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

גם אתרים עם תעבורה מרוכזת גיאוגרפית מכילים מניטור רב-אזורי מכיוון שבעיות נתיב רשת יכולות להשפיע על כל מסלול. בנוסף, קמעונאי מנועי חיפוש גישה אתרים מאזורים מרובים, כך שהפסקה אזורית החוסמת את Googlebot מ-crawling משפיעה על SEO גם אם מבקרים אנושיים בשוק הראשי לא מושפעים.