كيفية الوصول وتهيئة سجلات النظام على أنظمة أوبونتو ودبيان

كيفية الوصول وتهيئة سجلات النظام على أنظمة أوبونتو ودبيان

مقدمة

غالبًا ما يحتاج مدراء النظام الذين يعملون مع أوبونتو ودبيان إلى الاستشارة ملفات السجل لاستكشاف المشاكل. هذه خطوة أساسية في تشخيص المشاكل وحلها على هذه أنظمة التشغيل.

تولد أنظمة لينكس ، بما في ذلك أوبونتو ودبيان ، مجموعة متنوعة من الرسائل التي يتم تسجيلها في ملفات السجل. هذه رسائل السجل حاسمة لفهم سلوك النظام وتحديد المشاكل. يعتمد لينكس على مزيج من ملفات التكوين والدلائل والبرامج والأوامر والخوادم لإدارة هذه رسائل السجل وتنظيمها. إن الإلمام بمواقع ملفات السجل والأوامر ذات الصلة يمكن أن يسرع بشكل كبير من عملية استكشاف الأخطاء وإصلاحها.

في هذا الدليل ، سنستكشف الجوانب الرئيسية لنظام تسجيل لينكس في سياق أوبونتو ودبيان.

الخطوة 1 – تحديد مواقع ملفات السجل الافتراضية

بشكل افتراضي ، يتم تخزين ملفات السجل على أوبونتو ودبيان في دليل /var/log. يمكنك عرض قائمة ملفات السجل في هذا الدليل باستخدام الأمر التالي:

$ ls -l /var/log

عند تنفيذه على النظام الخاص بك ، ستكون النتيجة مشابهة لما يلي:

total 49316
drwxr-xr-x. 2 root   root          6 Sep 27 19:17 anaconda
drwx------. 2 root   root         99 Jan  3 08:23 audit
-rw-rw----. 1 root   utmp    1234560 Jan  3 16:16 btmp
-rw-rw----. 1 root   utmp   17305344 Jan  1 00:00 btmp-20230101
drwxr-x---. 2 chrony chrony        6 Aug 10  2021 chrony
-rw-r--r--. 1 root   root     130466 Dec  8 22:12 cloud-init.log
-rw-r-----. 1 root   adm       10306 Dec  8 22:12 cloud-init-output.log
-rw-------. 1 root   root      36979 Jan  3 16:03 cron
-rw-------. 1 root   root      27360 Dec 10 23:15 cron-20221211
-rw-------. 1 root   root      94140 Dec 17 23:07 cron-20221218
-rw-------. 1 root   root      95126 Dec 24 23:14 cron-20221225
-rw-------. 1 root   root      95309 Dec 31 23:04 cron-20230101
... 

الخطوة 2 – عرض محتويات ملف السجل

تحت /var/log ، ستجد ملفات سجل مختلفة لأغراض محددة. بعض الأمثلة الشائعة تشمل:

  • wtmp
  • utmp
  • dmesg
  • messages
  • maillog أو mail.log
  • spooler
  • auth.log أو secure

تتتبع ملفات wtmp و utmp تسجيل دخول المستخدمين وخروجهم. لرؤية المستخدمين المسجلين حاليًا على خادم لينكس ، استخدم الأمر who. على أوبونتو ، يمكن أن يبدو الإخراج كالتالي:

root@ubuntu-22:~# who
root     pts/0        2023-01-03 16:23 (198.7.211.4)

لاسترداد سجلات الدخول ، الأمر last مفيد:

root@ubuntu-22:~# last
root     pts/0        198.7.211.4  Tue Jan  3 16:23   still logged in
reboot   system boot  5.19.0-23-generi Thu Dec  8 21:48   still running
wtmp begins Thu Dec  8 21:48:51 2022

لتحديد وقت إعادة التشغيل الأخير ، استخدم:

$ last reboot

في دبيان ، قد يظهر الإخراج على النحو التالي:

root@debian-11-trim:~# last reboot
reboot   system boot  5.10.0-11-amd64  Thu Dec  8 21:49   still running
wtmp begins Thu Dec  8 21:49:39 2022

يمكن للأمر lastlog أن يكشف عن أوقات آخر تسجيل دخول للمستخدمين:

$ lastlog

قد يشبه الإخراج على نظام دبيان ما يلي:

root@debian-11-trim:~# lastlog
Username         Port     From             Latest  
root             pts/0    162.243.188.66   Tue Jan  3 16:23:03 +0000 2023
daemon                                     **Never logged in**  
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**
man                                        **Never logged in**
lp                                         **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
proxy                                      **Never logged in**
www-data                                   **Never logged in**
backup                                     **Never logged in**
list                                       **Never logged in**
irc                                        **Never logged in**
gnats                                      **Never logged in**
nobody                                     **Never logged in**
_apt                                       **Never logged in**  
messagebus                                 **Never logged in**
uuidd                                      **Never logged in**
...

للوصول إلى محتويات ملفات السجل النصية ، يمكن استخدام أوامر مثل cat أو head أو tail. على سبيل المثال ، لعرض آخر عشرة أسطر من ملف /var/log/messages على خادم دبيان:

$ sudo tail /var/log/messages

المخرج المتوقع:

root@debian-11-trim:~# tail /var/log/messages  
Jan  1 00:10:14 debian-11-trim rsyslogd: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="30025" x-info="https://www.rsyslog.com"] rsyslogd was HUPed
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 ssh_watcher.go:65: [SSH Watcher] Port knocking detected.  
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:43: [DO-Managed Keys Actioner] Metadata contains 1 ssh keys and 1 dotty keys
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:49: [DO-Managed Keys Actioner] Attempting to update 1 dotty keys  
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:65: [DO-Managed Keys Actioner] Attempting to create 1 ssh keys
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:105: [DO-Managed Keys Actioner] Action metadata updated
Jan  3 16:23:02 debian-11-trim kernel: [   22.685314] Bluetooth: RFCOMM TTY layer initialized 
Jan  3 16:23:02 debian-11-trim kernel: [   22.685320] Bluetooth: RFCOMM socket layer initialized
Jan  3 16:23:02 debian-11-trim kernel: [   22.685321] Bluetooth: RFCOMM ver 1.11
Jan  3 16:23:03 debian-11-trim login[956]: ROOT LOGIN  on '/dev/pts/0'

للسجلات التي تتحدث في الوقت الفعلي ، يمكن استخدام الأمر tail -f لـ “متابعة” السجل وعرض الإدخالات الجديدة أثناء إضافتها:

$ sudo tail -f /var/log/syslog

لعرض بداية ملف سجل ، استخدم head:

$ sudo head /var/log/syslog 

الخطوة 3 – استخدام Logrotate لإدارة السجلات

يؤتمت المساعد logrotate إدارة ملفات السجل. يمكنه أرشفة ملفات السجل القديمة ، وضغط السجلات ، وتنظيف دلائل السجل لمنع الاستخدام المفرط للقرص.

لتكوين logrotate ، قم بتحرير ملف /etc/logrotate.conf باستخدام محرر نصوص (مثل nano أو vim). ملف تكوين logrotate معلق بشكل جيد ويوفر إرشادات واضحة حول كيفية إعداد قواعد التدوير لملفات السجل.

فيما يلي مثال على ما قد يبدو عليه ملف التكوين:

# انظر "man logrotate" للتفاصيل  
# دوّر ملفات السجل أسبوعيًا
weekly 
# احتفظ بسجلات 4 أسابيع  
rotate 4
# أنشئ ملفات سجل جديدة (فارغة) بعد تدوير القديمة
create
# استخدم التاريخ كلاحقة للملف المدوّر
dateext
# ألغ تعليق هذا إذا كنت تريد ضغط ملفات السجل الخاصة بك
#ضغط 
# تترك الحزم معلومات تدوير السجل في هذا الدليل  
include /etc/logrotate.d
# لا تملك أي حزمة wtmp ، أو btmp -- سندورها هنا
/var/log/wtmp {
    missingok
    monthly
    create 0664 root utmp
    minsize 1M
    rotate 1
}
/var/log/btmp {
    missingok
    monthly
    create 0660 root utmp
    rotate 1
}
# يمكن أيضًا تكوين سجلات محددة للنظام هنا

في هذا المثال ، يتم تدوير ملفات السجل أسبوعيًا ، والاحتفاظ بها لمدة 4 أسابيع إجمالًا ، ويتم إنشاء ملفات سجل جديدة بعد التدوير. بالإضافة إلى ذلك ، يتم ضغط ملفات السجل بعد التدوير.

لإضافة أو تحرير قواعد أو تحرير قواعد التدوير المحددة للسجل ، يمكنك إنشاء أو تحرير الملفات في الدليل /etc/logrotate.d. على سبيل المثال ، سيحتوي الملف /etc/logrotate.d/nginx على قواعد محددة لتدوير سجلات خادم Nginx للويب.

الخطوة 4 – استخدام خادم rsyslog

خادم rsyslog هو خدمة تسجيل نظام قوية ومرنة متاحة على أنظمة أوبونتو ودبيان. يحل محل خدمة syslog القديمة ويوفر ميزات متقدمة للتعامل مع رسائل السجل. يسمح rsyslog لك بتصفية رسائل السجل وتوجيهها وتخزينها بتنسيقات ووجهات مختلفة.

التثبيت والتكوين الأساسي

  1. التثبيت:

تحقق مما إذا كان rsyslog مثبتًا بالفعل على النظام الخاص بك عن طريق تشغيل:

$ sudo dpkg -l | grep rsyslog

إذا لم يكن مثبتًا ، يمكنك تثبيته باستخدام الأمر التالي:

$ sudo apt-get update
$ sudo apt-get install rsyslog
  1. ملفات التكوين: يقع ملف التكوين الرئيسي لـ rsyslog في /etc/rsyslog.conf. ومع ذلك ، يُنصح بإجراء تغييرات التكوين في ملفات منفصلة في /etc/rsyslog.d/ للحفاظ على التنظيم وتجنب تعديل الملف الرئيسي مباشرةً.

فهم أسطر التكوين

يتكون ملف rsyslog.conf من سلسلة من أسطر التكوين ، يتألف كل منها من تعليمة من جزأين: محدد و إجراء. يتم فصل هذه الأجزاء بمسافات بيضاء.

  1. المُحدِد: يحدد جزء المُحدِد مصدر وأهمية رسالة السجل. وهو ينقسم إلى مكونين بنقطة (.):
    • المرفق: يدل على منشأ الرسالة ، مثل auth ، kern ، mail ، user ، إلخ.
    • الأولوية: تمثل مستوى خطورة الرسالة ، من debug (الأدنى) إلى emerg (الأعلى).
  2. الإجراء: يحدد جزء الإجراء ما يجب على rsyslog القيام به بالنسبة لرسائل السجل التي تطابق المحدد المقدم. يمكن أن يتضمن ذلك كتابة الرسائل إلى ملفات سجل محددة أو تحويلها إلى خوادم بعيدة ، وما إلى ذلك.

سطر تكوين مثال

فيما يلي مثال على سطر تكوين يسجل رسائل النواة (kern) ذات مستوى أولوية err (خطأ):

kern.err        /var/log/kernel_errors.log

في هذا المثال:

  • kern.err هو المُحدِد ، مما يشير إلى أنه لرسائل النواة ذات أولوية الخطأ.
  • /var/log/kernel_errors.log هو الإجراء ، والذي يحدد أنه يجب حفظ رسائل السجل المطابقة في ملف kernel_errors.log.

عرض ملفات التكوين

على أنظمة أوبونتو ، غالبًا ما يتم العثور على ملف التكوين الافتراضي في /etc/rsyslog.d/50-default.conf. يمكنك استخدام الأمر التالي لعرض محتوياته:

$ cat /etc/rsyslog.d/50-default.conf

المرافق والأولويات

تمثل المرافق المختلفة مصادر متنوعة لرسائل السجل ، مثل auth ، kern ، mail ، وغيرها. يتم تعيين أولوية لكل رسالة تشير إلى مستوى خطورتها ، من debug (أدنى) إلى emerg (أعلى).

فيما يلي بعض المرافق والأولويات التي يتعرف عليها rsyslog:

المرافق:

  • auth أو authpriv: أحداث المصادقة والأمن
  • user: رسائل سجل من برامج المستخدم
  • mail: رسائل سجل تولدها نظام البريد
  • local0 إلى local7: محجوزة للاستخدام المحلي
  • kern: الرسائل المنشأة من نواة لينكس

الأولويات:

  • debug: معلومات تصحيح الأخطاء من البرامج
  • info: رسائل معلومات بسيطة
  • notice: ظروف قد تتطلب انتباهًا
  • warn: تحذيرات
  • err: أخطاء
  • crit: ظروف حرجة
  • alert: ظروف تحتاج إلى تدخل فوري
  • emerg: ظروف طارئة

إن فهم هذه المرافق والأولويات أمر ضروري لتكوين rsyslog بفعالية.

  1. التسجيل الأساسي: بشكل افتراضي ، يسجل rsyslog الرسائل إلى ملف /var/log/syslog. يمكنك عرض محتويات هذا الملف باستخدام cat أو أوامر أخرى كما ذُكر سابقًا.

التكوين المتقدم والتصفية

  1. التصفية باستخدام القوالب:

يسمح rsyslog لك بتصفية رسائل السجل ومعالجتها بناءً على سمات مختلفة مثل المرفق أو الخطورة أو اسم البرنامج. يمكنك إنشاء قوالب مخصصة لتنسيق رسائل السجل. على سبيل المثال ، لتحويل سجلات محددة إلى خادم بعيد:

  • أنشئ ملف تكوين مخصص في /etc/rsyslog.d/ ، مثل /etc/rsyslog.d/50-remote.conf.
  • أضف الأسطر التالية لتحويل الرسائل من المرفق auth إلى خادم بعيد بعنوان IP 1.2.3.4:
if $programname == 'sshd' and $syslogfacility-text == 'auth' then @@1.2.3.4:514
  1. إنشاء ملفات سجل مخصصة:

يمكنك إنشاء ملفات سجل مخصصة لتطبيقات أو خدمات محددة. على سبيل المثال ، لإنشاء ملف سجل لخدمة تسمى myapp:

  • أنشئ ملف تكوين مخصص في /etc/rsyslog.d/ ، مثل /etc/rsyslog.d/60-myapp.conf.
  • أضف الأسطر التالية لإنشاء ملف سجل في /var/log/myapp.log لرسائل من برنامج myapp:
if $programname == 'myapp' then /var/log/myapp.log

تطبيق التغييرات وإعادة تشغيل rsyslog

بعد إجراء التغييرات على ملفات تكوين rsyslog ، تحتاج إلى إعادة تشغيل خدمة rsyslog لتطبيقها:

$ sudo service rsyslog restart

التصحيح واستكشاف الأخطاء وإصلاحها

إذا واجهت مشاكل في التسجيل أو التكوين ، فيمكنك التحقق من ملف /var/log/syslog للحصول على رسائل متعلقة بـ rsyslog. بالإضافة إلى ذلك ، يسجل rsyslog نفسه إجراءاته ، لذلك يمكنك استخدام الأمر التالي لعرض هذه السجلات:

$ sudo journalctl -u rsyslog

سيظهر لك هذا سجلات rsyslog ، التي يمكن أن تكون مفيدة لتشخيص أي مشاكل متعلقة بخدمة التسجيل نفسها.

الخلاصة

إن الوصول إلى سجلات النظام وتكوينها مهارة أساسية لمدراء نظام لينكس. توفر أوبونتو ودبيان مجموعة قوية من الأدوات والأوامر لإدارة ملفات السجل ، والتي تعد أمرًا حاسمًا لتشخيص المشاكل ورصد سلوك النظام.

من خلال فهم مواقع ملفات السجل الافتراضية ، واستخدام أوامر عرض السجل مثل cat و tail و head ، وتكوين تدوير السجل باستخدام logrotate ، يمكن للمسؤولين إدارة ملفات السجل والحفاظ عليها بفعالية على أنظمتهم. يضمن ذلك الحفاظ على بيانات السجل المهمة مع منع تراكم الاستخدام المفرط للقرص.

LEAVE A COMMENT