Starting with Debian Bookworm, the rsyslog package is no longer installed by default, which in the past provided the default logging functionality. Instead, the log is provided by systemd
's journal, which can be accessed by the journalctl(5) command.
There are situations, where it is necessary or desired to install rsyslog, though, e.g. to send all log messages to a central server. After installation, the rsyslogd
daemon is responsible for collecting service messages coming from applications and the kernel, then dispatching them into log files (usually stored in the /var/log/
directory). It obeys the /etc/rsyslog.conf
configuration file.
كل رسالة سجل ترتبط مع نظام فرعي لتطبيق ما (يدعى ”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
: رسالة تستخدم في التنقيح.
The syntax of the /etc/rsyslog.conf
file is detailed in the rsyslog.conf(5) manual page, but there is also HTML documentation available in the rsyslog-doc package (/usr/share/doc/rsyslog-doc/html/index.html
). The overall principle is to write “selector” and “action” pairs. The selector defines all relevant messages, and the action describes how to deal with them.
المُنتخِب هو لائحة تُفصَل عناصرها بفواصل منقوطة تتألف من أزواج من 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
).