מבוא #
שירות פרוקסי הוא תוכנה שנועדה לנהל באופן שקוף חיבורים עבור לקוחות לשירות אחד או יותר, לספק נתונים מתקדמים או טיפול בחיבורים ברמת האפליקציה (שכבה 7 במודל OSI). כדי להשיג זאת, שירות ה-proxy יוצר קשר אחד עם הלקוח ואחר עם השרת, במטרה להבטיח קישוריות חלקה ביניהם.
בעת יישום איזון עומסים באמצעות שירות פרוקסי (הפועל ביעילות כפרוקסי הפוך), חיוני להתאים אישית את פסקי הזמן כדי לאפשר חיבורים חלקים. ערכי ברירת מחדל של פסקי זמן עשויים לא להספיק, בהתאם למאפייני הלקוחות או שירותי האפליקציה. כל שגיאות הקשורות לפסק הזמן יירשמו ביומני המערכת בכתובת /var/log/syslog , מה שהופך את בדיקת קובץ זה לאיתור בעיות פוטנציאליות לחיונית.
מאמר זה מספק תובנות לגבי ניתוח וזיהוי בעיות פסק זמן נפוצות עם שרתי proxy. המידע העיקרי שיש לחקור הוא האם פסקי הזמן מתרחשים בצד האחורי או בצד הלקוח. לאחר ביצוע הבחנה זו, ניתן להחיל התאמות פסק זמן מתאימות.
פסקי זמן בצד האחורי #
אם מתרחשים פסק זמן בצד האחורי, ההודעות המתאימות יוצגו כדלקמן:
21 באוגוסט 09:23:06 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7ff830b85700) שגיאה העתקת שרת המשך: תם הזמן הקצוב לחיבור 21 באוגוסט 09 :23:06 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.11:443, (7ff832d8b700) שגיאה העתקת שרת המשך: הזמן הקצוב לחיבור 21 באוגוסט 09:23: 16 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7ff799926700) שגיאה העתקת שרת המשך: הזמן הקצוב לחיבור 21 באוגוסט 09:23:18 noid- ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7ff830bc6700) שגיאה העתקת שרת המשך: צינור שבור באוגוסט 21 09:23:19 noid-ee-01 פאונד : noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:444, (7f15f5a8c700) connect_nb: הזמן הקצוב לסקר 21 באוגוסט 09:23:24 noid-ee-01 פאונד: noid-proxy-farm -01, service noid-service-01, backend 10.100.200.11:443, (7ff79a9a7700) שגיאה העתקת שרת המשך: תם הזמן הקצוב לחיבור 21 באוגוסט 09:23:24 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7ff79a28b700) שגיאה העתקת שרת המשך: תם הזמן הקצוב לחיבור
שגיאות פסק זמן אלו של השרת האחורי מציינות את החווה , השירות והשרת האחורי הרלוונטיים הקשורים לשגיאה. מידע זה מזהה בבירור את השרת האחורי או את השרתים האחוריים המקושרים לבעיה. אם מספר חוות, שירותים או שרתים אחוריים מעורבים בבעיית פסק הזמן, ייתכן שיהיה צורך לאסוף מידע נוסף כדי לחקור בעיות רשת פוטנציאליות.
הפעלת יומני חווה יכולה לחשוף מקרים שבהם קצה אחורי מסוים מגיב בתחילה במהירות, אך לפתע נתקל בבעיית פסק זמן, כפי שמודגם בקטע היומן שלהלן:
25 ינואר 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, my.service.com 185.106.182.130 - - [25/Jan/2024:19:57:04 +0000] "GET / myserv/ HTTP/1.1" 200 9 "" "Mozilla/3.0 (תואם; ...)" (noid-service-01 -> 10.100.200.10:443) 0.039 שניות 25 ינואר 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, my.service.com 88.111.111.111 - - [25/Jan/2024:19:57:04 +0000] "GET / myserv/ HTTP/1.1" 200 9 "" "Mozilla/3.0 (תואם; ...)" (noid-service-01 -> 10.100.200.10:443) 0.035 שניות 25 ינואר 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7fcd8eb0f700) connect_nb: תם הזמן הקצוב לסקר ינואר 25 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7fcd8eb0f700) backend 10.100.200.10 חיבור פסק זמן חיבור:443: 25 ינואר 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, (7fcd8eb0f700) BackEnd 10.100.200.10:443 מת (הרוג) בחווה: 'noid-proxy-farm-01', שירות: 'ocp-ocuco-com' 25 ינואר 19:57:04 noid-ee-01 פאונד: noid-proxy-farm-01, service noid-service-01, backend 10.100.200.10:443, (7fcd8eb0f700) BackEnd dead (killed) )
התנהגות זו עשויה להצביע על כך שהקצה האחורי הגיע למגבלת החיבור שלו, ומונע חיבורים נוספים. לחלופין, זה יכול לרמוז שהקצה האחורי לא משחרר חיבורים מספיק מהר, מה שמוביל לצוואר בקבוק. כדי לטפל בבעיה זו, מומלץ לנטר את ה-backend ולהטמיע אופטימיזציות כגון מתן אפשרות לחיבורים נוספים או קנה מידה של השירות על ידי הוספת קצה אחורי נוסף.
אם רק קצה עורפי ספציפי נתקל בבעיות זמן קצוב באותו שירות, הדבר מרמז כי לחלקים עורפיים מסוימים עשויים להיות בעיות הקשורות לאספקת יישומים איטית או בעיות רשת. פתרונות או הקלות לשגיאות אלו מפורטים להלן.
פסקי זמן בצד הלקוח #
לעומת זאת, פסקי זמן של לקוח מתבטאים ב- syslog בפורמט הבא:
18 באוגוסט 07:31:38 noid-ee-01 פאונד: noid-proxy-farm-01, (7f8862187700) שגיאה שנקראה מתאריך 12.91.1.78: הזמן הקצוב לחיבור 18 באוגוסט 07:31:43 noid-ee-01 פאונד: noid -proxy-farm-01, (7f8863c71700) שגיאה שנקראה מתאריך 12.2.1.105: פג פסק זמן החיבור 18 באוגוסט 07:32:03 noid-ee-01 pund: noid-proxy-farm-01, (7f886275e700) שגיאה נקראה מ. 12.41.1.58: תם הזמן הקצוב לחיבור 18 באוגוסט 07:32:07 noid-ee-01 פאונד: noid-proxy-farm-01, (7f8880d84700) שגיאה שנקראה מתאריך 12.88.1.67: תם הזמן הקצוב לחיבור 18 באוגוסט 07:32:16 noid-e -01 פאונד: noid-proxy-farm-01, (7f8880933700) שגיאה שנקראה מ-12.3.1.158: תם הזמן הקצוב לחיבור
אם ביומנים חסרים מידע חווה או שירות, זה מצביע על כך שבקשת הלקוח לא הגיעה ל-proxy בצורה נכונה. ללקוח לוקח זמן ממושך לבצע את בקשת ה-HTTP, מה שגורם ל-proxy לא מודע לשירות המבקש. מערך כתובות ה-IP יכול לעזור להבחין אם הבעיה נוגעת לרשת פנימית, ללקוחות חיצוניים או לאלה המגיעים דרך חומת אש ספציפית.
יתרה מכך, עבור לקוחות חיצוניים, חשוב לוודא את הלגיטימיות שלהם. שימוש בשירותי AbuseIP יכול לסייע באיסוף מידע כזה.
בנוסף, כדי לטפל בבעיות זמן קצוב של הלקוח, חיוני לוודא שה-proxy אינו מסיים חיבורים בטרם עת. ודא שסכום פסק הזמן הקצוב של החיבור ופסקי הזמן האחורי קטן מזמן הקצוב של הלקוח כדי למנוע כל ניתוק מוקדם על ידי ה-proxy.
עיין למטה לקבלת תובנות לגבי טיפול או הפחתת שגיאות אלה.
תיקון תקופות צד של קצה אחורי #
אימות שכבת רשת #
ראשית, חיוני לאשר את היציבות של שכבת הרשת ולהבטיח היעדר חבילות משוכפלות, מנות אבודות או תנודות משמעותיות בהשהיה. בצע את השלבים הבאים כדי לבצע אימות שכבת רשת:
1. בצע פינג ממאזן העומסים לשרת האחורי ואפשר לו לפעול במשך מספר דקות.
root@noid-ee-01:~# פינג 10.100.200.10
2. שימו לב לתגובות הפינג במהלך הביצוע:
PING 10.100.200.10 (10.100.200.10) 56(84) בתים של נתונים. 64 בתים מ-10.100.200.10: icmp_seq=1 ttl=64 זמן=0.395 ms 64 בתים מ-10.100.200.10: icmp_seq=2 ttl=64 time=0.626 ms 64.c=10.100.200.10 זמן=3 MS [...] 64 בתים מ- 0.178: ICMP_SEQ = 64 TTL = 10.100.200.10 זמן = 21 MS 64 בתים מ- 0.502: ICMP_SEQ = 64 TTL = 10.100.200.10 זמן = 22 MS 64 BYTES מ- 0.638: ICMP_SEQ = 64 MS 10.100.200.10 BYTES מ- 23: ICMP_SEQ = 64 0.573 BYTES מ- 10.100.200.10. ttl=XNUMX time=XNUMX ms ^C --- XNUMX סטטיסטיקת ping --- 23 מנות שודרו, 23 התקבלו, 0% אובדן מנות, זמן 140ms rtt min/avg/max/mdev = 0.178/0.539/0.854/0.141 ms
תגובה זו מצביעה על כך שהרשת יציבה, ללא מנות אבודות או בעיות חביון. ודא שהיעדר חריגות כלשהן במהלך בדיקת הפינג כדי לאשר את האמינות של שכבת הרשת.
בנוסף, על ידי הפעלת tcpdump כאשר הבעיה משוכפלת, אתה יכול לנתח את תעבורת הרשת כדי לאתר את הרגע הספציפי שבו התקשורת חווה עיכובים או כאשר מנות מסוימות חסרות. השתמש בפקודה הבאה:
root@noid-ee-01:~# tcpdump -i כל יציאת tcp PORT ומארח BACKENDIP -w /tmp/capture.pcap
פקודה זו תיצור קובץ בשם /tmp/capture.pcap , אשר ניתן לנתח באמצעות Wireshark. יש להיזהר, מכיוון שקובץ זה עשוי לגדול במהירות אם הוא לוכד כמות משמעותית של תעבורה.
כוונון פסקי זמן של פרוקסי #
התאמת מגוון זמנים קצוב בתצורת החווה המתקדמת מאפשרת לנו להתאים את התנהגות ה-proxy לצרכים של שרתי היישומים שלנו, במיוחד כאשר הם דורשים זמן נוסף עבור כל בקשה או כאשר ביצועי הרשת איטיים. יש לשקול את ההמלצות הבאות:
זמן קצוב לחיבור Backend : הגדר את הזמן המרבי לפעולת connect() כנגד ה-backend שנבחר. אם מזוהות הודעות כמו "connect_nb: poll timed out" , שקול להגדיל ערך זה מ-20 שניות מברירת המחדל ל-30 או 40 שניות. העלה בהדרגה את הערך בהתבסס על התוצאות הנצפות, תוך התחשבות בכך שייתכן שזמן הקצוב מטפל בבעיה בסיסית במקום אחר.
זמן קצוב לתגובת Backend : התאם ערך זה אם מזוהה ההודעה "שגיאה בהעתקת שרת המשך: פסק זמן לחיבור" . באופן דומה, העלה ערך זה בהדרגה עד שתראה ירידה בהודעות כאלה. עם זאת, היזהרו לא להגדיל ערך זה יתר על המידה, מכיוון שהוא עלול להסוות בעיות בסיסיות בצד ה-backend. ערך ברירת המחדל הוא 45 שניות, לכן שקול להעלות אותו ל-60 שניות או יותר, תוך ניטור היעדר שגיאות.
תדירות בדיקת backends שהוחזרו : במקרים בהם נדרשים פסקי זמן ארוכים יותר עקב בעיות ברשת או בשרת היישומים הגורמות לשגיאות HTTP 503 לסירוגין (המצביעות על כך שאין backend של שירות זמין), יש לשקול להקטין ערך זה מ-10 שניות ל-5. התאמה זו מסייעת להפחית תוצאות חיוביות שגויות בסימון backends ככאלה שנגרמו עקב פסקי זמן. יש לנתח האם פסקי הזמן נמצאים בגבולות הרגילים, שכן מאזן העומסים של ה-proxy יכול להקל על בעיות מסוימות בהקשר זה.
אנא בצע ניתוח יסודי כדי לקבוע את תקינותם של פסקי הזמן. למאזן עומסי ה-proxy יש את היכולת לטפל בבעיות מסוימות הקשורות לזמן קצוב ולמתן אותן.
למידע מפורט יותר, עיין במאמר הבא:
הגדר בדיקות בריאות #
Farm Guardian משרת את המטרה של הפעלה או השבתה של קצה אחורי על סמך זמינותם. בתרחיש זה, מינוף ה-Farm Guardian מאפשר לנו לוודא את הזמינות האמיתית של backends. תהליך זה פועל באופן עצמאי ובמקביל ל-proxy, ומספק אמצעי לוודא אם בעיות בקצה האחורי באמת תורמות לצוואר בקבוק בצד האחורי. בנוסף, על ידי בחינת נתונים סטטיסטיים של קצה אחורי כאשר קצה אחורי מסומן כמורד, אנו יכולים לקבוע את מספר החיבורים המטופלים על ידי שרת זה, מה שמאפשר לנו לזהות את מגבלות החיבור של כל קצה אחורי.
הגדרת בדיקת FarmGuardian עבור TCP מאפשרת לנו לזהות כל בעיה עם לחיצת היד עם הקצה האחורי, מה שעלול להצביע על צוואר בקבוק בשכבת המערכת או שרת האינטרנט. מצד שני, הגדרת בדיקת FarmGuardian עבור HTTP עוזרת לזהות בעיות בשכבת היישום עם הקצה האחורי, מה שמצביע על צווארי בקבוק פוטנציאליים בשכבת היישום או מסד הנתונים.
תיקון פסקי זמן בצד הלקוח #
אימות שכבת רשת #
כדי לאמת את יציבות הרשת, בצע בדיקת פינג משרת או מחשב אחר לכתובת ה-IP של ה-IP הוירטואלי שהוגדר עבור חוות איזון העומס. זה מבטיח נקודת מבט חיצונית ועוזר לאשר את מהימנות הרשת.
אימות לקוחות לגיטימי #
השתמש בכלים מאובטחים כדי לזהות אם בעיות פסק זמן קשורות ללקוחות לגיטימיים, לרובוטים או לתוקפים פוטנציאליים. אם תקופות הזמן הקצובות מקושרות למשתמשים לא מורשים, הטמיע רשימות שחורות של IPDS ו/או הגנות DoS כדי להגן על השירותים שלך ולהבטיח משלוח רק למשתמשים חוקיים ואמיתיים.
כוונון פסקי זמן של פרוקסי #
יתר על כן, שקלו להתאים את זמני הקצוב של הפרוקסי כדי להתאים אותם לאופי הלקוחות שמתחברים לשירותים שלכם דרך מאזן העומסים. אם, לדוגמה, לקוחות מבוססי נייד, בעיות חומת אש או רשתות איטיות תורמים לזמני תגובה ארוכים יותר, כוונו את האפשרות זמן הקצוב של בקשת לקוח בהגדרות המתקדמות של חוות LSLB שלכם. ערך ברירת המחדל הוא 30 שניות ; ניתן להגדילו ל-60 שניות או יותר בהתאם לדרישות הספציפיות שלכם. ערך זמן הקצוב של הלקוח צריך לעלות על סכום זמן הקצוב של החיבור וזמן הקצוב של תגובת הקצה האחורי.
למידע מפורט יותר, עיין במאמר הבא: