פתרון תקלות בשרתי self-hosted
איך מבינים למה אפליקציה self-hosted לא עולה, לא נגישה או נופלת שוב ושוב.
רוב התקלות בשרת self-hosted שייכות לכמה משפחות מוכרות: קונטיינר שאף פעם לא מגיע למצב תקין, פורט שלא נמצא איפה שה-proxy מצפה לו, דיסק שמתמלא, או הגדרה שרכיב אחד קורא אחרת מרכיב אחר.
הנושא הזה מרכז כלים שבודקים קבצים לפני שמריצים אותם, ועמודים שמובילים מסימפטום לסיבה שלו, עם הפקודות שמאמתות כל שלב על השרת שלכם.
מסלול מומלץ
- רושמים את הסימפטום
מה נכשל, מה הודעת השגיאה המדויקת ומה השתנה רגע לפני שזה התחיל.
- בודקים את הקבצים
מעבירים את קובץ ה-Compose ב-Analyzer כדי לשלול קודם טעויות תצורה.
- מאמתים על השרת
קוראים את הלוגים ואת המצב של כל קונטיינר על השרת עצמו, לפני שמשנים משהו.
כלים ועמודים
| עמוד | סוג | על העמוד |
|---|---|---|
| Docker Compose Analyzer | כלי | בדיקות סטטיות לקובץ docker-compose.yml, בדפדפן שלכם. שום דבר לא יוצא מהעמוד. |
| בודק cloud-init | כלי | מדביקים את ה-user-data שעומדים לתת לשרת חדש ומקבלים ממצאים שאומרים מה לשנות ולמה, כל אחד עם הפניה לתיעוד של cloud-init. הקובץ נשאר בדפדפן, ומפתח פרטי שנמצא בו ממוסך מיד. |
| השוואת קובצי Docker Compose | כלי | הדביקו שתי גרסאות של קובץ Compose וראו מה באמת השתנה, ואילו שינויים מעלים את הסיכון. סדר המפתחות ותחביר קצר או ארוך לא נחשבים. שני הקבצים נשארים בדפדפן. |
| בודק Dockerfile | כלי | מדביקים Dockerfile ומקבלים ממצאים שאומרים מה לשנות ולמה, כל אחד עם הפניה לתיעוד של Docker עצמו. הקובץ נשאר בדפדפן, וסודות שבו ממוסכים. |
| בדיקת DNS לפני עלייה לאוויר | כלי | לפני שמפנים מבקרים לשרת חדש, בודקים מה ה-DNS באמת עונה: האם השם מצביע לכתובת של השרת, האם ה-resolvers כבר מסכימים, והאם משהו יעצור את התעודה. הדפדפן שואל ישירות שני resolvers ציבוריים; שום דבר לא עובר דרך ANAROQ ולא נשאר אצלנו. |
| בודק התנגשויות רשת של Docker | כלי | מזינים את טווחי ה-LAN וה-VPN, או מדביקים פלט של ip route, ורואים אילו רשתות של Docker יתנגשו בהם, ו-pool שעוקף אותם ל-daemon.json. שום דבר שתזינו או תדביקו לא יוצא מהעמוד. |
| רשימת בדיקה לעלייה לאוויר | כלי | לפני ששרת self-hosted עולה לאוויר, עוברים על מה שבדרך כלל נשבר ראשון. כל סעיף אומר מה לבדוק, נותן פקודת קריאה להריץ על השרת, מסביר למה זה חשוב ומקשר לכלי באתר שעוזר. הסימונים נשמרים בקישור, ולא נשלחים לשום מקום. |
| קונטיינר שמופעל מחדש שוב ושוב: מוצאים את הסיבה לפי קוד היציאה | קריאה | בדיקה צעד אחר צעד לקונטיינר Docker שתקוע בלולאת restart: קוראים את הסטטוס ואת קוד היציאה, הולכים בענף שמתאים, ומתקנים את הסיבה בפקודות שמריצים על השרת שלכם. |
ראו גם: בדיקה ופתרון תקלות · מתודולוגיה · כלים חינמיים