آنچه در این مقاله میخوانید
آموزش راه اندازی سرور syslog و ارسال لاگ های سرور به آن
۱۱ مرداد ۱۴۰۴
در دنیای لینوکس، لاگهای سیستم به نوعی گنجینهای از اطلاعات هستند که میتوانند به شما کمک کنند تا باگهای فنی را پیدا کرده و آنهارا رفع کنید. زمانی که مشکلی پیش میآید، داشتن یا نداشتن لاگها میتواند زمان حل آنرا از چند ساعت تا چند روز کاهش دهد. بیشتر مواقع هم زمان اضافه برای جستجو ندارید، بنابراین باید مطمئن شوید که همیشه لاگها در دسترس هستند. این مهم است که از دادهها نسخههای پشتیبان داشته باشیم، زیرا ممکن است مشکلی بوجود آید و سیستم از کار بیافتد. در این مقاله از لیارا، به شما آموزش خواهیم داد که چگونه یک سرور Syslog راهاندازی کنید و چطور لاگهای سرور خود را به آن ارسال کنید، تا با داشتن لاگهایی که به راحتی قابل دسترسی و پشتیبانگیری هستند، بتوانید مشکلات را سریعتر شناسایی و حل کنید؛ تا پایان همراه ما باشید:)
امکاناتی که برای دنبال کردن این آموزش نیاز خواهید داشت:
یک هاست لینوکس به عنوان (سرور Syslog) و یک هاست لینوکس دیگر به عنوان (کلاینت Syslog).
همچنین بخوانید:
- Syslog چیست؟
- چگونه یک سرور Syslog را پیکربندی کنیم؟
- نحوه ارسال لاگها به سرور Syslog
- تأیید ارسال لاگها
- جمعبندی
- سوالات متداول

در کمتر از ۳۰ ثانیه، هاست لینوکس خود را در لیارا راهاندازی کنید و تجربهای سریع، امن و بدون دردسر داشته باشید!
✅ سازگار با PHP و MySOL ✅ پرداخت ساعتی ✅ امنیت پیشرفته
خرید هاست لینوکس
Syslog چیست؟
پروتکل Syslog استانداردی است برای جمعآوری و ارسال گزارشهای رویداد سیستم به یک سرور مرکزی است که به ذخیرهسازی، تجزیه و تحلیل و نظارت بر این دادهها کمک میکند. Syslog از معماری لایهای برای انتقال دادهها استفاده میکند که امکان ارسال پیامها را از طریق پروتکلهای مختلف فراهم میکند. این ویژگی، به کاربران این اجازه را میدهد که از اکستنشنهای سفارشی استفاده کنند، و دادهها را در قالبهای ساختاریافته ارسال کنند، بدون اینکه به ساختار اصلی پروتکل آسیبی برسد.
برای آشنایی با مدیریت پکیجها در سرور مجازی لینوکس با apt-get و apt-cache، مقاله زیر را مطالعه کنید.
مدیریت پکیجها در سرور مجازی لینوکس
چگونه یک سرور Syslog را پیکربندی کنیم؟
اولین قدم برای راهاندازی سرور syslog، وارد شدن به هاست لینوکسی است که میخواهید به عنوان سرور syslog از آن استفاده کنید. در این هاست، فایلهای لاگ شما ذخیره میشوند.
برای اینکار ابتدا، سیستم را بهروزرسانی کنید:
sudo apt update
پس از آنکه سیستم شما آپدیت شد، باید فایل rsyslog.conf
را ویرایش کنید، برای اینکار دستور زیر را وارد کنید:
sudo nano /etc/rsyslog.conf

زمانی که وارد ویرایشگر متن nano شدید، باید نمادهای (#) را در بخش UDP syslog reception حذف کنید. (طبق تصویر بالا)
پس از اعمال تغییرات، برای ذخیره و خروج کلیدهای Ctrl + X
و Enter
را فشار دهید.
حالا باید سرویس rsyslog را راهاندازی کنید تا تنظیمات جدید اعمال شود. برای اینکار دستور زیر را وارد کنید:
sudo service rsyslog restart
در این مرحله، کاری که انجام دادیم این بود که به هاست لینوکس اجازه دادیم تا بر روی پورت 514 گوش دهد، اگر بخواهید میتوانید شماره پورت را تغییر دهید.
نکته: بسته به تنظیمات شبکه و فایروال محیط شما، ممکن است نیاز باشد که پیکربندیهای فایروال را برای مجاز کردن ترافیک ورودی به پورت 514 UDP به روزرسانی کنید. این میتواند شامل باز کردن پورت در فایروالهای سختافزاری یا نرمافزاری مانند iptables
یا ufw
باشد تا ترافیک Syslog به سرور مقصد منتقل شود.
آخرین کاری که باید در سمت سرور انجام دهید، این است که تائید کنید سرور در واقع در حال گوش دادن به پورت 514 است. برای اینکار از دستور Netstat
استفاد کنید:
sudo netstat -lupn
بیایید خط به خط بررسی کنیم که این دستور که دقیقا چه کاری انجام میدهد:
sudo
(Super User Do): این پیشوند باعث میشود دستور با سطح دسترسی کاربر ریشه (root) اجرا شود؛ برای انجام تنظیمات سیستمی یا دسترسی به پورتهای رزرو شده، معمولاً به این سطح دسترسی نیاز است.netstat
: ابزاری قدرتمند برای بررسی اتصالات شبکه، جدولهای مسیریابی، آمار اینترفیسها، کانکشنهای NAT و عضویتهای مولتیکست است. این دستور یک دید جامع از وضعیت فعلی شبکه سیستم ارائه میدهد.-l
: این پارامتر فقط سوکتهایی را نمایش میدهد که در حالت “listening” هستند، یعنی در حال انتظار برای دریافت اتصال یا داده.-u
: خروجی را محدود به پورتهای UDP میکند. چون Syslog بهصورت پیشفرض از UDP استفاده میکند، این گزینه در بررسی لاگ سرور حیاتی است.-p
: نام برنامه و شماره PID (شناسه فرآیند) که آن پورت را باز کرده است، نمایش داده میشود. این اطلاعات برای شناسایی دقیق سرویسهای در حال اجرا کاربردی است.-n
: آدرسهای IP و پورتها را بهصورت عددی نمایش میدهد و از resolve کردن آنها به hostname جلوگیری میکند؛ این باعث سرعت بیشتر در اجرای دستور میشود.
با اجرای این ترکیب از پارامترها، میتوانیم بررسی کنیم که آیا سرور Syslog واقعاً روی پورت 514 در حال شنود است یا نه:

همانطور که میبینید، سرور ما در حال گوشدادن روی پورت 514/UDP است. این یعنی تنظیمات مربوط به Syslog با موفقیت اعمال شدهاند و سرور آماده دریافت لاگها از کلاینتهاست.
نحوه راهاندازی اولیه سرور مجازی با اوبونتو Ubuntu را در مقاله زیر بخوانید.
راهاندازی سرور مجازی
نحوه ارسال لاگها به سرور Syslog
خوشبختانه، حالا که سرور syslog ما راهاندازی شده و روی پورت 514 در حال گوش دادن است، وقت آن است که سیستم کلاینت لینوکس (کلاینت Syslog) را طوری پیکربندی کنیم که لاگها را به این سرور ارسال کند.
برای اینکار ابتدا وارد سیستم کلاینت شوید و با دستور زیر سیستم را آپدیت کنید:
sudo apt upgrade && apt update
بعد از اینکه سیستم کلاینت بهروزرسانی شد، حالا باید دقیقا همان پیکربندی که قبلا روی سرور ویرایش کردیم، اینبار روی این ماشین(کلاینت) ویرایش کنیم:
sudo nano /etc/rsyslog.conf
چنانچه بخواهید، همه لاگهای سیستم کلاینت را به سرور Syslog ارسال کنید، در انتهای فایل کانفیگ، خط زیر را اضافه کنید:

اگر هم بخواهید فقط لاگهای مربوط به کرنل را که سطح شدت آنها از نوع Warning یا بالاتر است (مثل error یا critical)، به سرور Syslog ارسال کنید، باید خط زیر را در انتهای فایل کانفیگ rsyslog.conf
وارد کنید:

در آخر، با کلید ترکیبی Ctrl + X
فایل را ذخیره کنید و خارج شوید.
آموزش کامل دستور passwd در لینوکس برای تغییر پسورد سرور، مقاله زیر را میتوانید، بخوانید.
آموزش دستور passwd
تأیید ارسال لاگها
پس از راهاندازی و پیکربندی سرور syslog، تنها کاری که باید انجام دهید ایناست که بررسی کنید که آیا لاگها بهدرستی به سرور ما ارسال میشوند یا نه! برای اینکار از دستور logger
استفاده کنید. برای تست تنظیمات خود، دستور زیر را وارد کنید:
logger TEST TEST TEST
دستور بالا، یک ورودی لاگ با محتوای «TEST TEST TEST» ایجاد میکند. برای بررسی لاگها در سرور کلاینت، دستور زیر را اجرا کنید:
sudo tail /var/log/syslog
دستور tail
، آخرین ۱۰ خط از یک فایل متنی را نمایش میدهد. بنابراین باید بتوانید ورودی لاگ خود را مانند تصویر زیر مشاهده کنید:

اکنون، همان دستور (sudo tail /var/log/syslog
) را روی سرور اجرا کنید.
خروجی:

همانطور که میبینید، ورودی تست لاگها هم در سرور و هم در کلاینت نمایش داده میشود.
با سرور مجازی لینوکس لیارا، قدرت، سرعت و امنیت را یکجا داشته باشید!
✅ منابع اختصاصی و مقیاسپذیر✅ استقرار سریع بدون پیچیدگی ✅ قیمت مقرونبهصرفه
خرید سرور مجازی لینوکس ساعتی لیارا
جمعبندی
تبریک:) شما با استفاده از این مقاله موفق شدید یک سرور Syslog راهاندازی کنید و توانستید لاگهای سیستمهای لینوکسی را به طور مرکزی مدیریت و ارسال کنید. این موضوع یک قدم بزرگ در جهت بهبود مدیریت سیستمها و نظارت بر سلامت آنهاست. امیدواریم این آموزش برایتان مفید و کاربردی بوده باشد. با این ابزار، شما همیشه یک گام جلوتر از مشکلات خواهید بود. حالا میتوانید به راحتی بر روی سرورهای خود نظارت کنید و به سرعت به رفع مشکلات بپردازید.
نحوه شخصیسازی اتصال به سرور مجازی لینوکس (VPS) با SSH را در در مقاله زیر مطالعه کنید.
شخصیسازی اتصال به سرور مجازی لینوکس
سوالات متداول
آیا میتوانم پورت Syslog را تغییر دهم؟
بله، شما میتوانید پورت پیشفرض 514 را در تنظیمات rsyslog.conf
تغییر دهید.
آیا سرور Syslog از پروتکلهای دیگر به غیر از UDP پشتیبانی میکند؟
بله، Syslog بهطور پیشفرض از پروتکل UDP استفاده میکند، اما میتواند به راحتی با پروتکلهای دیگر مانند TCP نیز کار کند.
چطور میتوانم مطمئن شوم که سرور Syslog در حال کار است؟
برای اطمینان از اینکه سرور Syslog به درستی در حال گوش دادن به پورت 514 است، میتوانید از دستور netstat
استفاده کنید.
چطور میتوانم فقط برخی از لاگها را ارسال کنم؟
در تنظیمات فایل rsyslog.conf
میتوانید لاگهایی که میخواهید ارسال کنید را مشخص کنید.
آیا میتوانم لاگها را به چند سرور مختلف ارسال کنم؟
شما میتوانید تنظیمات ارسال لاگها را طوری پیکربندی کنید که لاگها به چند سرور مختلف ارسال شوند.