לדלג לתוכן

לוגים בלינוקס - איך קוראים ומבינים

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

איפה בכלל מחפשים

רוב הלוגים הקלאסיים בלינוקס יושבים תחת /var/log. אם תיכנסו לשם עם ls /var/log תמצאו קבצים כמו syslog שמכיל אירועים כלליים של המערכת, ולוגים ייעודיים לתוכנות ספציפיות. אלה קבצי טקסט רגילים, ואפשר לפתוח אותם עם cat או less בדיוק כמו כל קובץ אחר.

journalctl - הדרך המודרנית לקרוא לוגים

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

journalctl

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

journalctl -u nginx

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

tail ו-grep - הצמד הקלאסי

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

tail -n 50 /var/log/syslog

מציג את 50 השורות האחרונות. ואם תוסיפו -f, כמו ב-journalctl, תקבלו מעקב חי אחר הקובץ.

grep נכנס כשאתם יודעים מה אתם מחפשים - למשל כל שורה שמכילה את המילה "error":

grep "error" /var/log/syslog

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

איך קוראים שורת לוג בפועל

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

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

למה זה כל כך שווה השקעה

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

למי שרוצה גם צד סייבר

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

איך תרגלו את זה

הדרך הכי טובה ללמוד לקרוא לוגים היא פשוט להסתכל עליהם. תפתחו /var/log/syslog על מכונת לינוקס שלכם, תראו מה יש שם, ותתרגלו לסנן עם grep ולעקוב עם tail. זה בדיוק העבודה המעשית שאנחנו עושים בפרק שירותים ולוגים בקורס לינוקס הבסיסי.

תרגלו קריאת לוגים בקורס לינוקס הבסיסי

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

הצטרפו לקהילה בדיסקורד