برنامه syslog در OpenBSD

یکی از بخش های مهم هر سیستمی بخش گزارشگیری است که در حقیقت ثبت وقایع اتفاق افتاده در زمانی هست که مدیری سیستم به سیستم وارد نشده و در روز می تواند با خواندن این گزارشات از وضعیت سرور و سیستم خود آگاه شود. قابلیت گزارشگیری در سیستم های مبتنی بر یونیکس با استفاده از برنامه syslog انجام می شود و در محل خاصی ذخیره می شود. در برنامه syslog دو متغییر وجود دارد برای تهیه کردن گزارش، Facility  و priority. همچنین این برنامه قابلیت ارسال کردن گزارشات خود را به یک سرور اصلی در شبکه را دارا می باشد. این برنامه با استفاده از دو قابلیت facility  و priority برنامه هایی را که به آن اعلام می شود را گزارشگیری می کند. در ادامه در مورد این دو قابلیت توضیحاتی داده می شود.

بخش facility (امکانات)

Facility در حقیقت منبع یک برنامه را مشخص می کند، در اصل هر برنامه ای که به یک فایل گزارش جداگانه نیاز دارد باید از facility استفاده کند. هر برنامه یا پروتکلی مثل ftp mail و … facility جداگانه ای را به خود اختصاص داند. در این برنامه یک سری facility های پیش فرض به صورت زیر وجود دارد:

auth     اطلاعاتی در مورد ورود کاربران به سیستم را ذخیره می کند، این امکان زمانی که کاربر به سیستم وارد شود یا از su استفاده کند فعال می شود.

Cron     پیامی هایی که از برنامه cron دریافت می شود با استفاده از این facility  قابل گزارشگیری است.

ftp        پیام هایی که از سرور ftp راه اندازی می شود با استفاده از این facility  قابل گزارشگری است.

Ker       مربوط می شود به بخش هسته سیستم عامل.

Mail      پیام هایی که از سرور mail راه اندازی می شود با استفاده از این facility  قابل گزارشگری است.

Syslog   پیام هایی که از سرور syslog راه اندازی می شود با استفاده از این facility  قابل گزارشگری است.

البته این امکان هم وجود دارد که شما به تناسب درخواست خود برنامه مورد علاقه خود را به برنامه گزارشگیری اضافه کنید.

بخش priority  (اولویت):

برنامه های مختلفی که شما قصد دارید گزارشات آنها را مشاهده کنید همه گزارش های خود را به سمت syslog ارسال می کنند، اما همه آنها برای شما مفید و حیاتی نیست و شاید به بعضی از آنها هم نیازی نداشته باشید، برای جلوگیزی از حجم زیاد اطلاعات برنامه syslog در ۹ ردیف اولویت تعیین کرده است و از طریق این ۹ ردیف است که تشخیص می دهد کدام گزارش برای شما لازم است و کدام گزارش را شما درخواست به ذخیره سازی آنرا دارید تا برای شما ذخیره کند، در ادامه با این ۹ ردیف آشنا می شود:

emerg:  گزارشات اضطراری سیستم. این پیام ها برروی ترمینال براینکه حیاتی و اضطراری هستند نمایش داده می شود. شما با استفاده از این اولویت پیغام های اضطراری هر سرویسی را گزارش گیری کنید.

critical : با این اولویت مشکلات بحرابی برای شما ذخیره می شود مثل از دست رفتن یک هارد دیسک.

alert:  این الویت به شما خبر می دهد مه سرویس در حال کار است ولی شاید در آینده نزدیک دچار خطا و مشکل شود.

err: خطاهای پیش امده را ذخیره می کند. این خطاها نیاز به توجه دارد ولی به سیستم شما اسیبی نمی رساند.

warning: پیام های متفرقه در این بخش قرار می گیرند. این پیغام ها باعث توقف هیچ سرویسی برای سیستم شما نمی شود.

notic: اطلاعات مهم در مورد deamon ها مثل راه اندازی و خاموش شدن سرویس مورد نظر را برای شما ذخیره می کند.

info: اطلاعات پایه ای در این بخش نمایش و ذخیره می شوند. بیشتر برای سرویس هایی که اطلاعات منتقل می کنند استفاده می شودمثل پیغام های ارسال شده توسط mail server یا پرسجو در Web سرور.

Debug:  این اطلاعات برای برنامه نویسان مهم است که کار باگ گیری انجام می دهند.

فایل syslog.conf :

برنامه syslog پیغام هایی را دریافت می کنند که الویت و امکانات ان در فایل syslog.conf ذخیره شده است. این فایل به دو بخش تقسیم می شود، بخش اول نوع log را مشخص می کند که شامل الویت و امکانات است و بخش دوم محلی را مشخص می کند که پیغام ها در آنجا دخیره شود. یک مثال در زیر مشاهده می کنید:

daemon.info                      /var/log/daemon

شما می توانید در این بخش از قواعد ستاره (wildcards) به صورت زیر استفاده کنید:

mail.*                                    /var/log/mail

با استفاده از این خط برای سرویس میل تمام پیغام های خطا در فایل /var/log/mail ذخیره می شود. با استفاده از این قابلیت شما می توانید با استفاده از خط زیر همه همه پیغام ها را در فایل مورد نظر ذخیره کنید:

*.*                                         /var/log/all

شما می توانید با استفاده از ; بعضی از قابلیت ها را جدا کنید، مثل خط زیر که همه پیغام ها را ذخیره کن بجز authpriv.none :

*.*;authpriv.none           /var/log/all

شما می توانید چندین امکان رو در یک سطح از اولویت را در یک فایل به صورت زیر ذخیره کنید:

auth,daemon,syslog,user.info   /var/log/info

اضافه کردن برنامه خواص به لیست:

در بعضی از موارد شما دوست دارید برنامه خاصی که در لیست امکانات نیست را گزارشگیری کنید، برای این کار شما باید اسم برنامه را در فایل syslog.conf اضافه کنید در قالب دو خط یک خط نام برنامه و خط بعدی نوع لاگ و محل لایگ مثل خط زیر:

!sudo

*.*         /var/log/sudo

با این خط همه گزارشاتی که برنامه sudo از خود ارسال می کند در فایل مورد نظر شما ذخیره می شود.

در بعضی از موارد شما قصد دارید که برنامه شما فقط در فایل مورد نظر فایل ذخیره کند نه در جای دیگری برای این منظور از دو علامت !! قبل از نام برنامه استفاده کنید به صورت زیر:

!!sudo

*.*         /var/log/sudo

!*

در خط پایانی هم باید از !* استفاده کنید.