ابرآراز | ArazCloud

راهنمای نصب و پیکربندی Rsyslog Server روی Debian

مدیریت و تحلیل لاگ‌ها در سیستم‌عامل‌های لینوکسی با استفاده از Rsyslog انجام می‌شود. این سرویس که به طور پیش‌فرض روی اکثر توزیع‌های لینوکسی نصب است، لاگ‌ها را در مسیر /var/log/ ذخیره می‌کند. در این مقاله، نحوه نصب و پیکربندی Rsyslog روی سیستم‌عامل Debian را بررسی می‌کنیم.

مقدمه‌ای بر Rsyslog

Rsyslog می‌تواند به عنوان کلاینت یا سرور عمل کند و پیام‌های لاگ را از طریق پروتکل‌های TCP/UDP ارسال یا دریافت کند. این سرویس، پیام‌های لاگ را از دستگاه‌های مختلف مانند سرورها، روترها و سوییچ‌ها دریافت و تجمیع می‌کند.

نقش‌های Rsyslog

  • کلاینت: ارسال پیام‌های لاگ به سرور Rsyslog.
  • سرور: دریافت پیام‌های لاگ از دستگاه‌های مختلف شبکه.

پورت‌های پیش‌فرض

  • TCP/UDP 514: پورت‌های پیش‌فرض برای ارتباط Rsyslog.

فیلترهای Rsyslog

Rsyslog از سه نوع فیلتر برای مدیریت لاگ‌ها استفاده می‌کند:

  1. فیلترهای Priority: مشخص‌کننده فرآیندهای داخلی تولیدکننده لاگ.
  2. فیلترهای Property-based: براساس ویژگی‌های لاگ.
  3. فیلترهای 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 سرور شما برای دریافت و مدیریت لاگ‌ها آماده است.