مدیریت و تحلیل لاگها در سیستمعاملهای لینوکسی با استفاده از Rsyslog انجام میشود. این سرویس که به طور پیشفرض روی اکثر توزیعهای لینوکسی نصب است، لاگها را در مسیر /var/log/
ذخیره میکند. در این مقاله، نحوه نصب و پیکربندی Rsyslog روی سیستمعامل Debian را بررسی میکنیم.
مقدمهای بر Rsyslog
Rsyslog میتواند به عنوان کلاینت یا سرور عمل کند و پیامهای لاگ را از طریق پروتکلهای TCP/UDP ارسال یا دریافت کند. این سرویس، پیامهای لاگ را از دستگاههای مختلف مانند سرورها، روترها و سوییچها دریافت و تجمیع میکند.
نقشهای Rsyslog
- کلاینت: ارسال پیامهای لاگ به سرور Rsyslog.
- سرور: دریافت پیامهای لاگ از دستگاههای مختلف شبکه.
پورتهای پیشفرض
- TCP/UDP 514: پورتهای پیشفرض برای ارتباط Rsyslog.
فیلترهای Rsyslog
Rsyslog از سه نوع فیلتر برای مدیریت لاگها استفاده میکند:
- فیلترهای Priority: مشخصکننده فرآیندهای داخلی تولیدکننده لاگ.
- فیلترهای Property-based: براساس ویژگیهای لاگ.
- فیلترهای Expression-based: براساس عبارات خاص.
فیلترهای Priority
- auth/authpriv: پیامهای احراز هویت
- cron: پیامهای وظایف cron
- daemon: پیامهای سرویسها
- kernel: پیامهای کرنل
- mail: پیامهای سرور ایمیل
- syslog: پیامهای syslog
- lpr: پیامهای پرینتر
- local0 – local7: پیامهای سفارشی
سطوح Priority
- emerg, panic (سطح 0): سیستم غیرقابل استفاده
- alert (سطح 1): نیاز به اقدام فوری
- err (سطح 3): وضعیت بحرانی
- warn (سطح 4): هشدار
- notice (سطح 5): وضعیت نرمال با نیاز به بررسی
- info (سطح 6): اطلاعرسانی
- debug (سطح 7): پیامهای دیباگ
نصب Rsyslog
اگر Rsyslog به طور پیشفرض نصب نیست، میتوانید از دستور زیر برای نصب آن استفاده کنید:
sudo apt-get install rsyslog
بررسی وضعیت سرویس
برای اطمینان از نصب و فعال بودن سرویس، دستور زیر را اجرا کنید:
systemctl status rsyslog.service
پیکربندی Rsyslog به عنوان سرور
ویرایش فایل تنظیمات
فایل تنظیمات Rsyslog را با دستور زیر باز کنید:
sudo vi /etc/rsyslog.conf
فعالسازی دریافت پیامها
با فشردن کلید I
به حالت ویرایش بروید و علامت #
را از قبل از عبارات provides TCP syslog reception
و provides UDP syslog reception
حذف کنید.
تنظیم دسترسیها
برای محدود کردن دسترسی به یک زیرشبکه، IP یا دامنه خاص، دستور زیر را به فایل تنظیمات اضافه کنید:
input(type="imtcp" port="514")
AllowedSender TCP, 127.0.0.1, x.x.x.x/24, *.yourdomain.com
ایجاد Template
Template نحوه ذخیرهسازی لاگها را مشخص میکند. دستورات تعریف Template را به فایل تنظیمات اضافه کنید:
template(name="MyTemplate" type="string" string="/var/log/%FROMHOST-IP%/%PROGRAMNAME:::secpath-replace%.log")
یا به شکل زیر:
template(name="MyTemplate" type="list") {
constant(value="/var/log/")
property(name="fromhost-ip")
constant(value="/")
property(name="programname" SecurePath="replace")
constant(value=".log")
}
با این تنظیمات، پیامهای لاگ در مسیر /var/log/
و با فرمتی مشخص ذخیره میشوند.
متغیرهای قابل استفاده
%syslogseverity%
%syslogfacility%
%timegenerated%
%HOSTNAME%
%syslogtag%
%msg%
%FROMHOST-IP%
%PRI%
%MSGID%
%APP-NAME%
%TIMESTAMP%
%$year%
%$month%
%$day%
راهاندازی مجدد سرویس
برای اعمال تغییرات، سرویس Rsyslog را مجدداً راهاندازی کنید:
sudo service rsyslog restart
sudo systemctl restart rsyslog
بررسی پورتهای باز
برای اطمینان از گوش دادن Rsyslog به پورتهای TCP و UDP، دستور زیر را اجرا کنید:
sudo netstat -taupn | grep rsyslog
با انجام این مراحل، Rsyslog سرور شما برای دریافت و مدیریت لاگها آماده است.