بررسی نقش syslogd و klogd در لینوکس
بررسی نقش syslogd و klogd در لینوکس
بررسی syslogd
بیشتر توزیع های لینوکس از یک daemon خاص جهت log گیری و کارهای مربوط به آن استفاده می کنند.
در سیستم های سنتی نام برنامه ی ثبت وقایع syslogd است. اگر در خط فرمان کاربر root فرمان زیر را بزنیم،
می توانیم پروسس های مربوط به log را مشاهده کنیم :
کار syslogd ثبت وقایع مربوط به برنامه های user-mode است
و klogd به منظور ثبت وقایع kernel به کار می رود.
پس در توزیع های سنتی لینوکس، سیستم log کرنل از برنامه های عادی جداست.
در توزیع های لینوکس موجود که مبتنی بر init کار می کنند،
هر دوی این نرم افزارها فرزند init هستند، پس خروجی دستور زیر را مشاهده کنید
و برخی فایل هایی را که در خروجی می آیند را بررسی کنید،
تا به جزئیات log گیری برای برنامه های مختلف پی ببرید :
خودتان هم می توانید داخل syslog، log بنویسید.
معمولا خواندن log فایل ها پیچیده است زیرا دستگاه های مختلف بر روی آن پیغام های مختلف می گذارند
و برای فهم پیغام گذاشته شده نیاز به آشنایی با دستگاه تولید کننده وجود دارد (اسم رجیسترها و اطلإعات فنی و موارد مشابه ).
Klogd نیز پیام های kernel را به syslogd ارسال می نماید و syslogd پیام را در فایل می نویسد.
اگر یک پروسس تصمیم بگیرد پیامی را log نماید آن را به پروسس syslogd ارسال می نماید
و معمولا پیام ها در فایل var/log/messages/ نوشته می شوند.
فرمت log در فایل های log به صورت زیر می باشد (البته bash این قوانین را دقیق اجرا نمی کند) :
tm_stmp host application[pid]: message
که در آن tm_stmp تاریخ و ساعت واقعه، hostنام کامپیوتری که پیام در آن تولید شده،
[application[pid نام برنامه و شماره پروسس مربوطه و message پیغامی است که ثبت شده است.
نکته : ممکن است این سوال برایتان مطرح شود که چرا اسم host در تمام خط های فایلlog نوشته می شود؟
ببینید لینوکس را می توان به عنوان log server استفاده کرد.
به عنوان مثال فرض کنید در یک سازمان 70 سرور لینوکس داریم که هر کدام log های خودشان را تولید می کنند.
بررسی log های تک تک این سرورها کاری دشوار و زمان بر است.
اما می توان یک سرور مرکزی به عنوان log server تعیین کرد
که log های سایر سیستم ها بر روی آن بیاید.
بنابراین با استفاده از نامhost مشخص می شود که کدام log مربوط به چه کامپیوتری است.
خب حالا یک نگاهی به فایل etc/services/ بیندازیم :
در این فایل نام سرویس های مختلف و شماره پورت آنها آمده است.
در اکثر پورت ها udp و tcp برای سرویس یکسانی در نظر گرفته شده است اما پورت ۵۱۴ این گونه نیست.
پورت ۵۱۴ tcp متعلق به shell است و syslog هم از udp استفاده می کند.
پس به عنوان یک متخصص لینوکس این نکته را به خاطر داشته باشید.
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.