לדלג לתוכן

2.1 שירותים ולוגים הרצאה

מהו שירות (Service) ו-Daemon?

  • שירותים (services) הם תוכנות שפועלות ברקע ומספקות פונקציונליות למערכת או למשתמשים.
  • לעומת זאת Daemon הוא סוג של שירות שרץ ללא תלות במשתמש מסוים ומספק שירותים שונים, כמו רשת, ניהול קבצים ועוד.

כלומר service-ים יהיו שירות שמספק GUI ליוזר או טרמינל, וdaemon-ים יהיו שירות שמספק חיבור לאינטרנט למחשב כולו, או למשל crond.

מערכת init – המערכת ההיסטורית לניהול שירותים

התהליך init הוא התהליך הראשון שמערכת ההפעלה מריצה. תפקידו להפעיל שירותים ולהגדיר את סביבת העבודה של המשתמשים. init משתמש בקובץ /etc/inittab לניהול תהליכים ומבוסס על "רמות ריצה" (runlevels).

רמות ריצה ב-init

רמות ריצה (runlevels) הן מצבי עבודה שונים של מערכת ההפעלה, שכל אחד מהם מגדיר אילו שירותים יופעלו או ייעצרו. הרמות נעות בין 0 ל-6:

  1. 0 – כיבוי המערכת.
  2. 1 – מצב תחזוקה (Single User Mode), בו רק משתמש העל (root) יכול לעבוד.
  3. 2 – מצב מרובה-משתמשים ללא שירותי רשת (תלוי בהפצה).
  4. 3 – מצב מרובה-משתמשים עם תמיכה ברשת, אך ללא ממשק גרפי.
  5. 4 – משמש להתאמות אישיות (ברוב ההפצות אינו בשימוש).
  6. 5 – מצב מרובה-משתמשים עם ממשק גרפי (GUI).
  7. 6 – אתחול מחדש (Reboot).

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

מערכת systemd – המערכת המודרנית לניהול שירותים

כיום, רוב ההפצות משתמשות ב-systemd, שהוא מחליף מודרני ל-init. הוא מהיר יותר, תומך ב-parallel startup, ומאפשר ניהול שירותים בצורה גמישה יותר.

פקודות systemd נפוצות

  • הפעלת שירות מסויים:
systemctl start service_name
  • עצירת שירות מסויים:
systemctl stop service_name
  • בדיקת מצב שירות מסויים:
systemctl status service_name
  • הפעלת שירות באופן אוטומטי עם האתחול:
systemctl enable service_name
  • מניעת הפעלה אוטומטית:
systemctl disable service_name

היום כמעט כל לינוקס עובד על systemd, ונוכל להשתמש בפקודה systemctl כדי לנהל את השירותים במחשב שלנו, להוסיף שירותים, למחוק וכו.

לוגים בלינוקס

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

סוגי לוגים נפוצים

לוג הjournal – מערכת הלוגים של systemd

  • שירות systemd-journald הוא שירות שאחראי על רישום הודעות מערכת ולוגים ב-systemd. הוא מחליף את syslog המסורתי ומאפשר גישה נוחה ללוגים בצורה חכמה ומסוננת.

פקודות נפוצות לשימוש ב-journal

  • הצגת הלוגים האחרונים:
journalctl -n 50
  • הצגת לוגים משירות מסוים:
journalctl -u service_name
  • הצגת לוגים מאתחול אחרון:
journalctl -b
  • מעקב אחרי לוגים בזמן אמת:
journalctl -f

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

journalctl -u cron

הפעלה וכיבוי של systemd-journald

אם נרצה להדליק, לכבות או לבדוק את מצב השירות נוכל להשתמש ב-systemctl.

  • הפעלת journal:
systemctl start systemd-journald
  • עצירת journal:
systemctl stop systemd-journald
  • בדיקת מצב השירות:
systemctl status systemd-journald

לוגי syslog – מערכת לוגים מסורתית

  • מערכת syslog היא מערכת הרישום הוותיקה בלינוקס, ומנהלת לוגים עבור תהליכים, שירותים ואירועי מערכת.
  • קובצי לוג נפוצים:
    • /var/log/syslog – לוג כללי של המערכת והשירותים.
    • /var/log/auth.log – לוג אירועי התחברות והרשאות.
    • /var/log/kern.log – לוג קרנל (אירועים ברמת הליבה של המערכת).
    • /var/log/dmesg – לוג אתחול החומרה של הקרנל.

לוג dmesg – לוג חומרה ואתחול הקרנל

  • הפקודה dmesg מציגה הודעות מערכת הקשורות לאתחול ולזיהוי חומרה.
dmesg | less

לוג auditd – לוגים לניטור אבטחה

  • שירות auditd הוא שירות לוגים שמאפשר ניטור אירועים ברמת האבטחה, כמו גישה לקבצים, שינויים בהרשאות ועוד.
  • צפייה בלוגי האבטחה:
aureport -au

יש עוד המון לוגים בלינוקס, מוזמנים לחפש בעצמכם בתקייה /var/log