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

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

קבעו את השדות לפני התקלה הראשונה

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

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

השאירו חורים כחורים. תבנית שמכריחה תשובה מזמינה המצאות, והקשר מומצא גרוע ממקום ריק.

FieldExampleWhy it earns its place
Time with offset2026-11-03T09:14+08:00Orders events across sources in different zones
Triggerresume from sleepSeparates a cause from a coincidence
Stagehandshake ok, no routeNames the boundary that failed

תעדו את אותן חמש עובדות בזמן התקלה

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

date -Is
journalctl -u wg-quick@wg0 --since "-2 min" --no-pager
wg show wg0 latest-handshakes transfer
ip route get 203.0.113.10
ping -c 3 -W 2 192.0.2.1

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

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

אתרו את השלב שנשבר

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

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

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

השוו תנאי אחד בכל פעם

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

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

שתפו קטע, לא את הפרופיל

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

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

מאמרים קשורים