Product SiteDocumentation Site

9.5. أحداث syslog

9.5.1. المبدأ والآلية

خدمة rsyslogd مسؤولة عن جمع رسائل الخدمات الواردة من التطبيقات ومن النواة، ثم إرسالها إلى ملفات السجلات (التي تخزن عادة في المجلد /var/log/). تطيع هذه الخدمة التعليمات في ملف الضبط /etc/rsyslog.conf.
كل رسالة سجل ترتبط مع نظام فرعي لتطبيق ما (يدعى ”facility“ في الوثائق):
  • auth وauthpriv: للمصادقة؛
  • cron: تأتي من خدمات الجدولة، cron وatd؛
  • daemon: تتعلق بخدمة ليس لها تصنيف خاص (DNS، ‏NTP، الخ)؛
  • ftp: تتعلق بمخدم FTP؛
  • kern: رسائل واردة من النواة؛
  • lpr: تأتي من النظام الفرعي الخاص بالطباعة؛
  • mail: تأتي من النظام الفرعي الخاص بالبريد الإلكتروني؛
  • news: رسائل النظام الفرعي Usenet (خصوصاً من مخدم NNTP‏ –Network News Transfer Protocol، أو بروتوكول نقل الأخبار عبر الشبكة– الذي يدير المجموعات الإخبارية)؛
  • syslog: رسائل من المخدم syslogd نفسه؛
  • user: رسائل المستخدم (عامة)؛
  • uucp: رسائل من مخدم UUCP ‏(Unix to Unix Copy Program، أو برنامج النسخ من يونكس إلى يونكس، بروتوكول قديم كان يستخدم لتوزيع رسائل البريد الإلكتروني)؛
  • local0 حتى local7: محجوزة للاستخدامات المحلية.
تعطى كل رسالة أولوية أيضاً. هذه قائمة الأولويات مرتبة تنازلياً:
  • emerg: ”النجدة!“ هناك حالة طارئة، النظام غير قابل للاستخدام على الأرجح.
  • alert: أسرِع، أي تأخير قد يكون خطيراً، يجب اتخاذ إجراء فوراً؛
  • crit: الحالة حرجة؛
  • err: خطأ؛
  • warn: تحذير (يحتمل أن يكون خطأ)؛
  • notice: الحالة طبيعية، لكن الرسالة مهمة؛
  • info: رسالة إعلامية؛
  • debug: رسالة تستخدم في التنقيح.

9.5.2. ملف الإعداد

صيغة الملف /etc/rsyslog.conf مفصلة في صفحة الدليل rsyslog.conf(5)‎، لكن هناك أيضاً توثيق بصيغة HTML متوفر في الحزمة rsyslog-doc ‏(/usr/share/doc/rsyslog-doc/html/index.html). المبدأ العام هو كتابة زوج يتألف من ”مُنتخِب selector“ و ”فعل action“. يعرف المنتخب جميع الرسائل المطلوبة، أما الفعل فيصف طريقة التعامل معها.

9.5.2.1. صيغة المنتخب

المُنتخِب هو لائحة تُفصَل عناصرها بفواصل منقوطة تتألف من أزواج من subsystem.priority (أزواج من نظام فرعي.أولوية، مثال: auth.notice;mail.info). يمكن استخدام النجمة لتعبر عن جميع النظم الفرعية أو جميع مستويات الأولوية (مثال: *.alert أو mail.*). يمكن جمع عدة نظم فرعية، عبر استخدام الفاصلة (مثال: auth,mail.info). كما أن الأولوية المذكورة تغطي الرسائل ذات الأولوية نفسها أو الأولويات أعلى؛ أي أن auth.alert يشير إلى رسائل النظام الفرعي auth ذات الأولوية alert أو emerg. إذا سبقت الأولوية بعلامة التعجب (!)، فسوف تشير إلى نقيضها، أي إلى الأولويات الأقل منها حصراً؛ أي أن auth.!notice يشير إلى الرسائل الصادرة عن auth، بأولوية info أو debug. وإذا سبقت بإشارة المساواة (=)، فسوف تقابل الأولوية المحددة وحدها فقط (auth.=notice يشير إلى رسائل auth ذات الأولوية notice فقط).
كل عنصر في لائحة المنتخب أقوى من العناصر السابقة له. لذلك يمكن حصر مجموعة من الأولويات أو استثناء عناصر محددة منها. مثلاً، kern.info;kern.!err يعني الرسائل من النواة التي تتراوح أولويتها بين info و warn. تشير الأولوية none إلى المجموعة الخالية (لا تشير لأي أولوية)، ويمكن استخدامها لاستثناء نظام فرعي من مجموعة من الرسائل. بالتالي، *.crit;kern.none يشير إلى جميع الرسائل ذات الأولوية crit أو أعلى عدا التي ترد من النواة.

9.5.2.2. صيغة الأفعال

الأفعال المختلفة المتوفرة هي:
  • إضافة الرسالة إلى ملف (مثال: /var/log/messages
  • إرسال الرسالة إلى مخدم syslog بعيد (مثال: @log.falcot.com
  • إرسال الرسالة إلى أنبوب مسمّى سابق (مثال: |/dev/xconsole
  • إرسال الرسالة إلى مستخدم واحد أو أكثر، إذا كانوا مسجلي دخولهم (مثال: root,rhertzog
  • إرسال الرسالة إلى جميع المستخدمين المسجلي دخولهم (مثال: *
  • كتابة الرسالة في طرفية نصية (مثال: /dev/tty8).