cloudavid
cloudavid
خواندن ۳ دقیقه·۲ سال پیش

بررسی و پیکربندی لاگ در لینوکس با استفاده از rsyslog

یکی از قابلیت‌های سیستم‌عامل ثبت رخدادها و اتفاقات جاری سیستم است. این قابلیت کمک زیادی به بررسی وضعیت سیستم، عیب یابی و مدیریت سیستم می‌کند.
در لینوکس از ابزارها و روش‌های مختلفی برای ثبت و مدیریت لاگ مانند syslogd و syslogd-ng استفاده می‌شده است. در حال حاضر متداول‌ترین روش‌ها برای انجام این کار rsyslog و systemd-journal است.
در این مستند در مورد نصب و پیکربندی rsyslog و همچنین مفاهیم مهم در بحث لاگ صحبت خواهیم کرد.

نصب و چک کردن سرویس rsyslog

برای نصب rsyslog از dnf به شکل زیر استفاده می‌کنیم (البته به صورت معمول و پیش فرض این بسته نرم‌افزاری در تمامی لینوکس‌ها نصب می‌باشد).

در ادامه با استفاده از systemctl از وضعیت آن آگاه می‌شویم.

دسته بندی لاگ‌ها (Facility و Severity)

قبل از این که در مورد پیکربندی rsyslog صحبت کنیم باید دو مفهوم مهم Facility و Severity را بشناسیم.

مفهوم Facility نوع یا طبقه بندی لاگ‌ها را مشخص می‌کند که لاگ توسط چه سرویس یا نرم افزاری تولید شده است. با توجه به استاندارد، Facility یکی از موارد جدول زیر می‌تواند باشد (RFC 3164).

مفهوم Severity شدت، درجه یا سطح اهمیت لاگ را مشخص می‌کند. با توجه به استاندارد، سطوح Severity به صورت زیر تعریف می‌شوند.

پیکربندی rsyslog

تنظیمات مربوط به rsyslog در فایل /etc/rsyslog.conf قرار دارد.

در این فایل در سمت چپ نوع لاگ با استفاده از Facility و Severity (با ساختار Facility.Severity) و در سمت راست فایل یا مکانی که لاگ ذخیره، ارسال یا نشان داده می‌شود، مشخص شده است.

به عنوان مثال در خط زیر *.info به معنای همه‌ی انوع لاگ با سطح info و قبل از آن (سطح ۰ الی ۶) است، در ادامه‌ی این خط mail.none;authpriv.none;cron.none به این معنا است که هیچ لاگی از نوع mail، authpriv یا cron را شامل نشود. در سمت راست نیز مکان ذخیره لاگ مشخص شده است.

در ادامه‌ی تنظیمات این فایل، لاگ‌های authpriv، mail و cron در فایل‌های مجزایی ذخیره می‌شوند.

تنظیمات خط زیر به معنای این است که همه‌ی لاگ‌ها با سطح emerg یا panic (که در فایل /var/log/messages نیز ذخیره می‌شوند) در کنسول نیز نشان داده شوند.

فایل messages

با توجه به تنظیمات پیش‌فرض لاگ که توضیحات آن ارائه شد فایلی که بیشتر از همه برای بررسی لاگ‌ها با آن سر و کار داریم /var/log/messages است.

اگر نگاهی به این مسیر بیندازیم می‌بینیم که علاوه بر این فایل چند فایل دیگر نیز با نام‌های شبیه آن به صورت زیر داریم. فایل‌های دیگر در واقع همین فایل در بازه‌های زمانی هفته‌های گذشته هستند که به دلیل تنظیمات پیش فرض rotation لاگ‌ها به این صورت ذخیره می‌شوند (لاگ هفته‌ی جاری + لاگ ۴ هفته گذشته).

تنظیمات مربوط به rotate در فایل /etc/logrotate.conf انجام می‌شود.

بررسی لاگ‌ها در messages

برای بررسی لاگ‌ها به صورت زنده از tailf یا tail -f به صورت زیر استفاده می‌کنیم.

برای بررسی و جستجو در لاگ‌ها از ابزارهایی مانند vi یا vim نیز استفاده می‌شود. به علاوه در صورتی که در لاگ‌ها خواسته باشیم کلمه کلیدی خاصی را جستجو کنیم از cat و grep نیز می‌توانیم استفاده کنیم.

همانطور که در لاگ‌های ارائه شده مشخص است، لاگ‌های ایجاد شده در قالب پیام‌هایی (Messages) ذخیره می‌شوند که در ابتدای این پیام یک برچسب زمانی یا Timestamp وجود دارد که زمان رخداد لاگ را مشخص می‌کند و در ادامه توضیحات مربوط به لاگ ارائه می‌شود.

با توجه به اهمیت زمان لاگ، همگام بودن زمان و تاریخ سیستم از اهمیت بالایی برخوردار است و پیشنهاد می‌شود برای انجام این کار از سرویس NTP استفاده شود.



لاگrsysloglinuxسیستم عامللینوکس
ارائه دهنده زیرساخت امن و پایدار برای تداوم کسب و کارها
شاید از این پست‌ها خوشتان بیاید