Syslogd Linux و Unix Command

يوفر Sysklogd اثنين من أدوات النظام التي توفر الدعم لتسجيل النظام وتعقب رسالة kernel. يتيح دعم كل من مآخذ نطاق الإنترنت و unix نطاق هذه الحزمة المساعدة لدعم تسجيل الدخول المحلي والبعيد.

يتم توفير تسجيل النظام بواسطة إصدار من syslogd (8) مشتقة من مصادر BSD الأسهم. يتم توفير دعم تسجيل kernel بواسطة الأداة المساعدة klogd (8) التي تسمح بإجراء عملية تسجيل kernel إما بطريقة مستقلة أو كعميل لـ syslogd.

يوفر Syslogd نوعًا من عمليات التسجيل التي يستخدمها العديد من البرامج الحديثة. تحتوي كل رسالة مسجلة على الأقل على وقت وحقل اسم مضيف ، وهو عادة حقل اسم برنامج ، ولكن ذلك يعتمد على مدى الثقة في برنامج التسجيل.

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

تتم قراءة ملف التكوين الرئيسي /etc/syslog.conf أو ملف بديل ، مع تحديد الخيار -f عند بدء التشغيل. يتم تجاهل أي سطور تبدأ بعلامة التجزئة ('' # '') والخطوط الفارغة. إذا حدث خطأ أثناء التحليل فسيتم تجاهل السطر بأكمله.

ملخص

syslogd [ -a socket ] [ -d ] [ -f config file ] [ -h ] [ -l hostlist ] [ -m interval ] [ -n ] [ -p socket ] [ -r ] [ -s domainlist ] [ - v ] [ -x ]

خيارات

مقبس

باستخدام هذه الوسيطة يمكنك تحديد مآخذ إضافية من ذلك syslogd للاستماع إليها. هذا مطلوب إذا كنت ستسمح بتشغيل بعض الخفي داخل بيئة chroot (). يمكنك استخدام ما يصل إلى 19 مآخذ إضافية. إذا كانت البيئة الخاصة بك تحتاج إلى أكثر من ذلك ، يجب عليك زيادة الرمز MAXFUNIX داخل الملف المصدر syslogd.c. يصف الأشخاص من OpenBSD مثالًا على البرنامج الخادع chroot () على http://www.psionic.com/papers/dns.html.

يدير وضع التصحيح. باستخدام هذا البرنامج لن يستمر الشوكة (2) لتعيين نفسه في الخلفية ، ولكن عكس ذلك البقاء في المقدمة وكتابة الكثير من معلومات التصحيح على tty الحالي. راجع قسم DEBUGGING لمزيد من المعلومات.

-f ملف التكوين

حدد ملف تكوين بديل بدلاً من /etc/syslog.conf ، وهو الإعداد الافتراضي.

-h

افتراضيًا ، لن يقوم syslogd بإعادة توجيه الرسائل التي يتلقاها من الأجهزة المضيفة البعيدة. سيؤدي تعيين رمز التبديل هذا على سطر الأوامر إلى إعادة توجيه السجل إلى أي رسائل بعيدة يتلقاها لإعادة توجيه المضيفات التي تم تعريفها.

-l قائمة المضيف

حدد اسم مضيف يجب تسجيله فقط باسم مضيفه البسيط وليس fqdn. يمكن تحديد عدة مضيفين باستخدام فاصل النقطتين (`:: '').

م فاصل

يسجل syslogd طابعًا زمنيًا للعلامة بشكل منتظم. الفاصل الزمني الافتراضي بين اثنين - MARK - خطوط هو 20 دقيقة. هذا يمكن تغييره مع هذا الخيار. يؤدي تعيين الفاصل الزمني إلى صفر إلى إيقاف تشغيله بالكامل.

-n

تجنب الخلفيات التلقائية. هذا مطلوب بشكل خاص إذا تم بدء syslogd والتحكم فيه بواسطة init (8).

-p مقبس

يمكنك تحديد مأخذ توصيل مجال يونكس بديل بدلاً من / dev / log .

-r

سيمكن هذا الخيار المرفق من تلقي رسالة من الشبكة باستخدام مقبس مجال الإنترنت مع خدمة سجل النظام (انظر (5)). الافتراضي هو عدم تلقي أي رسائل من الشبكة.

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

-s domainlist

حدد اسم المجال الذي يجب تجريده قبل التسجيل. قد يتم تحديد نطاقات متعددة باستخدام النقطتين (`:: ''). يرجى العلم بأنه لا يمكن تحديد نطاقات فرعية ولكن فقط نطاقات كاملة. على سبيل المثال إذا تم تحديد -s north.de وتقرر تسجيل المضيف إلى satu.infodrom.north.de لن يتم قطع أي نطاق ، سيكون عليك تحديد نطاقين مثل: -s north.de:infodrom.north.de .

-الخامس

نسخة الطباعة والخروج.

-x

تعطيل عمليات البحث عن الأسماء عند تلقي رسائل بعيدة. يتجنب هذا deadlocks عند تشغيل ملقم الأسماء على نفس الجهاز الذي يقوم بتشغيل البرنامج الخفي syslog.

إشارات

يتفاعل Syslogd مع مجموعة من الإشارات. يمكنك بسهولة إرسال إشارة إلى syslogd باستخدام ما يلي:

قتل -SIGNAL `القط / فار / تشغيل / syslogd.pid`

تنفس الصعداء حتى

هذا يتيح syslogd إجراء إعادة تهيئة. يتم إغلاق كافة الملفات المفتوحة ، سيتم إعادة قراءة ملف التكوين (الافتراضي هو /etc/syslog.conf ) ثم بدء تشغيل syslog (3) مرة أخرى.

SIGTERM

سوف يموت syslogd .

SIGINT ، SIGQUIT

إذا تم تمكين التصحيح يتم تجاهل هذه ، وإلا سوف يموت syslogd .

SIGUSR1

تبديل التصحيح على / قبالة. يمكن استخدام هذا الخيار فقط في حالة بدء تشغيل syslogd مع خيار التصحيح -d .

SIGCHLD

انتظر الطفولة إذا كان بعضها قد ولد ، بسبب رسائل الجدران.

تكوين ملف الاختلافات بناء الجملة

يستخدم Syslogd بنية مختلفة قليلاً لملف التكوين الخاص به من مصادر BSD الأصلية. في الأصل تم إرسال جميع الرسائل ذات الأولوية المحددة أعلاه إلى ملف السجل.

على سبيل المثال ، تسبب السطر التالي في إخراج كافة من daemons باستخدام تسهيلات daemon (تصحيح الأخطاء هو أقل أولوية ، لذا فإن كل مستوى أعلى سيطابق أيضًا) للانتقال إلى / usr / adm / daemons :

# Sample syslog.conf daemon.debug / usr / adm / daemons

تحت النظام الجديد ، يظل هذا السلوك هو نفسه. الفرق هو إضافة أربعة محددات جديدة ، وعلامة النجمة ( * ) ، وعلامة المعادلة ( = ) ، وعلامة التعجب ( ! ) ، وعلامة الطرح ( - ).

تحدد * أن جميع الرسائل الخاصة بالمنشأة المحددة سيتم توجيهها إلى الوجهة. لاحظ أن هذا السلوك يتم degenerate مع تحديد مستوى أولوية التصحيح. أشار المستخدمون إلى أن علامة النجمة أكثر سهولة.

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

على سبيل المثال ، سيقوم السطر التالي في syslog.conf بتوجيه رسائل التصحيح من كافة المصادر إلى ملف / usr / adm / debug .

# Sample syslog.conf *. = debug / usr / adm / debug

! يستخدم لاستبعاد تسجيل الأولويات المحددة. هذا يؤثر على كل الاحتمالات (!) لتحديد الأولويات.

على سبيل المثال ، ستسجل السطور التالية جميع رسائل بريد المرفق باستثناء تلك التي تحتوي على معلومات الأولوية إلى ملف / usr / adm / mail . وسيتم تسجيل جميع الرسائل الواردة من news.info (بما في ذلك) إلى news.crit (باستثناء) إلى ملف / usr / adm / news .

# Sample syslog.conf mail. *؛ mail.! = info / usr / adm / mail news.info؛ news.! crit / usr / adm / news

يمكنك استخدامه بشكل حدسي كمعدّل استثناء. التفسير المذكور أعلاه هو ببساطة مقلوب. القيام بذلك قد تستخدمه

mail.none

أو

بريد.!*

أو

البريد.! التصحيح

لتخطي كل رسالة تأتي مع مرفق البريد. هناك مجال كبير للعب معها. :-)

- يجوز استخدامه فقط لبدء بادئة اسم ملف إذا كنت تريد حذف مزامنة الملف بعد كل الكتابة إليه.

قد يستغرق هذا بعض التأقلم بالنسبة لأولئك الأفراد الذين يستخدمون سلوك بي إس دي النقي ، لكن المختبرين أشاروا إلى أن هذا التركيب أكثر مرونة من سلوك بي إس دي. لاحظ أن هذه التغييرات يجب ألا تؤثر على ملفات syslog.conf القياسية (5). يجب عليك بشكل خاص تعديل ملفات التكوين للحصول على السلوك المحسّن.

دعم عن بعد تسجيل

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

لتمكين هذا عليك تحديد الخيار -r في سطر الأوامر. السلوك الافتراضي هو أن syslogd لن يستمع إلى الشبكة.

تتمثل الاستراتيجية في جعل syslogd يستمع إلى مأخذ توصيل unix domain لرسائل السجل المنشأة محليًا. سيسمح هذا السلوك syslogd للتشغيل مع syslog الموجود في مكتبة C القياسية. في نفس الوقت يستمع syslogd على منفذ سجل النظام القياسي للرسائل الموجهة من المضيفين الآخرين. لجعل هذا العمل بشكل صحيح يجب أن يكون الخدمات (5) الملفات (عادة موجودة في / etc ) الإدخال التالي:

syslog 514 / udp

إذا كان هذا الإدخال مفقودًا syslogd ، فلن يتمكن أي منهما من تلقي الرسائل البعيدة أو إرسالها ، نظرًا لأنه تعذر فتح منفذ UDP. بدلا من ذلك ، سوف يموت syslogd على الفور ، تهب رسالة خطأ.

ولإعادة توجيه الرسائل إلى مضيف آخر ، استبدل سطر الملف العادي في ملف syslog.conf باسم المضيف الذي سيتم إرسال الرسائل إليه مع كلمة @.

على سبيل المثال ، لإعادة توجيه جميع الرسائل إلى مضيف بعيد باستخدام إدخال syslog.conf التالي:

# نموذج ملف التكوين syslogd إلى # رسائل إلى مضيف بعيد إلى الأمام جميع. *. *hostname

لإعادة توجيه كافة رسائل kernel إلى مضيف بعيد ، يكون ملف التكوين كما يلي:

# ملف تكوين نموذج لإعادة توجيه كافة رسائل # kernel إلى مضيف بعيد. kern. *hostname

إذا كان لا يمكن حل اسم المضيف البعيد عند بدء التشغيل ، لأنه قد لا يمكن الوصول إلى اسم الخادم (قد يتم تشغيله بعد syslogd) ، فلا داعي للقلق. سيعيد Syslogd محاولة حل الاسم عشر مرات ثم يشتكي. هناك إمكانية أخرى لتجنب هذا هو وضع اسم المضيف في / etc / hosts .

مع syslogd s العادي ، ستحصل على syslog-loops إذا أرسلت رسائل تم استلامها من مضيف بعيد إلى نفس المضيف (أو أكثر تعقيدًا إلى مضيف ثالث يرسلها مرة أخرى إلى المضيف الأول ، وهكذا). في نطاقي (Infodrom Oldenburg) حصلنا بطريق الخطأ على قرص مضغوط وتم ملء أقراصنا بنفس الرسالة المفردة. :-(

لتجنب ذلك في أوقات أخرى يتم إرسال أية رسائل تم تلقيها من مضيف بعيد إلى مضيف بعيد آخر (أو هو نفسه) بعد الآن. إذا كانت هناك سيناريوهات لا يكون فيها ذلك منطقيًا ، فيرجى ترك خط جوي (جوي).

إذا كان المضيف البعيد موجودًا في نفس المجال مثل المضيف ، يتم تشغيل syslogd ، فسيتم تسجيل اسم المضيف البسيط بدلاً من fqdn بالكامل.

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

باستخدام الخيار -l ، هناك أيضًا إمكانية لتحديد مضيف واحد كآلات محلية. هذا أيضاً ينتج عن تسجيل أسماء المضيف الخاصة بهم فقط وليس fqdns.

يتم فتح مقبس UDP المستخدم لإعادة توجيه الرسائل إلى الأجهزة المضيفة البعيدة أو لتلقي الرسائل منها فقط عند الحاجة إليها. في الإصدارات السابقة لـ 1.3-23 ، تم فتحه في كل مرة ولكن لم يتم فتحه للقراءة أو إعادة التوجيه على التوالي.

الإخراج إلى توجيهات الإخراج المسماة (FIFOs)

هذا الإصدار من syslogd لديه دعم لتسجيل الإخراج إلى أنابيب الاتصال المسماة (fifos). يمكن استخدام ماسورة fifo أو مسمى كوجهة لرسائل السجل عن طريق إضافة رمز pipy (`| '') إلى اسم الملف. هذا هو مفيد لتصحيح الأخطاء. لاحظ أنه يجب إنشاء fifo باستخدام الأمر mkfifo قبل بدء تشغيل syslogd.

توجيهات ملف التهيئة التالي تصحيح رسائل من kernel إلى fifo:

# تكوين عينة لتوجيه kernel debugging # messages فقط إلى / usr / adm / debug وهو # pipe مسمى. kern. = debug | / usr / adm / debug

مخاوف التثبيت

ربما يكون هناك اعتبار مهم واحد عند تثبيت هذا الإصدار من syslogd. يعتمد هذا الإصدار من syslogd على التنسيق الصحيح للرسائل بواسطة وظيفة syslog. تغير عمل وظيفة سجل النظام في المكتبات المشتركة في مكان ما في منطقة libc.so.4. [2-4]. وكان التغيير المحدد هو إنهاء الرسالة قبل إرسالها إلى مقبس / dev / log . يعتمد الأداء الصحيح لهذا الإصدار من syslogd على إنهاء الرسالة.

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

يمكن تشغيل كل من syslogd (8) و klogd (8) من init (8) أو البدء كجزء من تسلسل rc. *. إذا تم بدء تشغيله من init ، فيجب تعيين الخيار -n ، وإلا ، فستحصل على الكثير من daemons syslog. هذا لأن init (8) يعتمد على معرف العملية.

التهديدات الأمنية

هناك إمكانية لاستخدام برنامج syslogd daemon كقناة لردع رفض الخدمة. شكرًا جزيلاً على John Morrison (jmorriso@rflab.ee.ubc.ca) لتنبيهي إلى هذه الإمكانية. يمكن للبرنامج الخادع (mer) أن يغمر بسهولة خادوم syslogd مع رسائل syslog الناتجة في ملفات السجل التي تستهلك كل المساحة المتبقية في نظام الملفات . بالطبع سيؤدي تنشيط التسجيل عبر مآخذ نطاق inet إلى كشف نظام للمخاطر خارج البرامج أو الأفراد على الجهاز المحلي.

هناك عدد من الطرق لحماية جهاز:

  1. تنفيذ نواة جدار النواة للحد من الأجهزة المضيفة أو الشبكات التي يمكنها الوصول إلى مقبس 514 / UDP.
  2. يمكن توجيه التسجيل إلى نظام ملفات معزول أو غير جذر ، والذي في حالة ملئه ، لن يؤثر على الجهاز.
  3. يمكن استخدام نظام الملفات ext2 الذي يمكن تهيئته للحد من نسبة معينة من نظام الملفات إلى الاستخدام من الجذر فقط. لاحظ أن هذا سيتطلب تشغيل syslogd كعملية غير جذر. لاحظ أيضًا أن هذا سيمنع استخدام تسجيل الدخول عن بُعد لأن syslogd لن يكون قادرًا على الربط بمقبس 514 / UDP.
  4. سيؤدي تعطيل مآخذ نطاق inet إلى الحد من المخاطرة على الجهاز المحلي.
  5. استخدم الخطوة رقم 4 ، وإذا استمرت المشكلة ولم تكن ثانوية لبرنامج / خدعة مارقة ، يمكنك الحصول على طول قصاصة مصاصة بقياس يصل إلى 3.5 قدم (* متر) * ولديك محادثة مع المستخدم المعني. قضيب مصاصة def. --- 3/4 أو 7/8 أو 1 في. قضبان الصلب تصلب ، والخيوط الذكور على كل نهاية. الاستخدام الأولي في صناعة النفط في غرب داكوتا الشمالية وغيرها من المواقع لضخ النفط "تمتص" من آبار النفط. الاستخدامات الثانوية هي لبناء كميات كبيرة من الأعلاف والتعامل مع الأفراد المتعصبين أو المتحاربين في بعض الأحيان.

التصحيح

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

رقم

يحتوي هذا الحقل على رقم تسلسلي يبدأ من الصفر. يمثل هذا الرقم الموضع في بنية البيانات الداخلية (أي المصفوفة). إذا تم ترك رقم واحد ، فقد يكون هناك خطأ في السطر المقابل في /etc/syslog.conf .

نمط

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

عمل

يصف هذا الحقل الإجراء المعين الذي يتم إجراؤه عند تلقي رسالة تتطابق مع النمط. ارجع إلى صفحة syslog.conf (5) لجميع الإجراءات الممكنة.

الحجج

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

أنظر أيضا

مسجل (1) ، سجل النظام (2) ، (5)

المتعاونين

Syslogd مأخوذ من مصادر BSD ، قام Greg Wettstein (greg@wind.enjellic.com) بتنفيذ المنفذ إلى Linux ، قام Martin Schulze (joey@linux.de) بإصلاح بعض الأخطاء وإضافة العديد من الميزات الجديدة. كتب Klogd في الأصل من قبل ستيف لورد (lord@cray.com) ، قام جريج فيتشتين بتحسينات كبيرة.

الدكتور جريج فيتشتاين
تطوير نظم Enjellic

قسم علم حوسبة بحوث الأورام
مركز روجر ماريس للسرطان
فارغو ، إن دي
greg@wind.enjellic.com

ستيفن تويدي
قسم علوم الحاسب
جامعة ادنبره ، اسكتلندا
sct@dcs.ed.ac.uk

جحا فيرتانن
jiivee@hut.fi

شين الدرتون
shane@ion.apana.org.au

مارتن شولز
Infodrom أولدنبورغ
joey@linux.de

هام: استخدم الأمر man ( ٪ man ) لمعرفة كيفية استخدام أمر ما على جهاز الكمبيوتر الخاص بك.

مقالات ذات صلة