خدمة 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
: رسالة تستخدم في التنقيح.
صيغة الملف /etc/rsyslog.conf
مفصلة في صفحة الدليل rsyslog.conf(5)، لكن هناك أيضاً توثيق بصيغة HTML متوفر في الحزمة rsyslog-doc (/usr/share/doc/rsyslog-doc/html/index.html
). المبدأ العام هو كتابة زوج يتألف من ”مُنتخِب selector“ و ”فعل action“. يعرف المنتخب جميع الرسائل المطلوبة، أما الفعل فيصف طريقة التعامل معها.
المُنتخِب هو لائحة تُفصَل عناصرها بفواصل منقوطة تتألف من أزواج من 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
أو أعلى عدا التي ترد من النواة.
الأفعال المختلفة المتوفرة هي:
إضافة الرسالة إلى ملف (مثال: /var/log/messages
)؛
إرسال الرسالة إلى مخدم syslog
بعيد (مثال: @log.falcot.com
)؛
إرسال الرسالة إلى أنبوب مسمّى سابق (مثال: |/dev/xconsole
)؛
إرسال الرسالة إلى مستخدم واحد أو أكثر، إذا كانوا مسجلي دخولهم (مثال: root,rhertzog
)؛
إرسال الرسالة إلى جميع المستخدمين المسجلي دخولهم (مثال: *
)؛
كتابة الرسالة في طرفية نصية (مثال: /dev/tty8
).