داشتن یک سرور لینوکس از راه دور جداگانه برای ذخیره گزارش ها مزایای خود را دارد. در اینجا نحوه راه اندازی سرور جمع آوری گزارش از راه دور با استفاده از rsyslog آمده است.
ورود به سیستم یک جنبه مهم مدیریت سرور لینوکس است. پیام های گزارش برای تجزیه و تحلیل علت اصلی و جلوگیری از وقوع خطاهای احتمالی در آینده مفید هستند. تجزیه و تحلیل و اشکال زدایی خطاهای سرور یک مهارت اصلی برای مهندسان فناوری اطلاعات و مدیران سیستم است.
این راهنما به شما نشان می دهد که چگونه یک سرور ثبت از راه دور، که به عنوان میزبان گزارش نیز شناخته می شود، در لینوکس راه اندازی کنید. یک میزبان لاگ به شما امکان می دهد تا لاگ های محلی لینوکس را برای سهولت دسترسی و تجزیه و تحلیل در یک سرور متمرکز از راه دور جمع آوری کنید.
چرا یک سرور لاگ اختصاصی داریم؟
سیستم عامل لینوکس اکثر فعالیت های سرور شما را برای ممیزی و اشکال زدایی با استفاده از دیمون syslog (پروتکل ثبت سیستم) ثبت می کند. بنابراین ممکن است از خود بپرسید که چرا من به یک سرور اختصاصی برای لاگ های خود نیاز دارم؟ در اینجا برخی از مزایای داشتن یک سرور لاگ اختصاصی وجود دارد:
- امنیت بهتر است زیرا سرور ثبت از راه دور فقط چند پورت به بیرون باز دارد.
- عملکرد سرور بهبود یافته است زیرا میزبان ثبت از راه دور بسیاری از خدمات را اجرا نمی کند، به جز مواردی که برای ورود به سیستم استفاده می شود.
- بایگانی و مدیریت پیام های گزارش را آسان می کند.
پیامهای گزارش برای ممیزی سرورها و خط پایه شما مهم هستند و بخش اصلی فرآیندهای نگهداری پیشگیرانه در زیرساخت سرور شما هستند.
مرحله 1: نصب rsyslog در لینوکس
این راهنما بر روی اوبونتو 20.04 تمرکز دارد، اما اگر از دیگر توزیعهای اصلی لینوکس استفاده میکنید، روند باید تقریباً یکسان باشد.
rsyslog یک سرویس ثبت از راه دور برای لینوکس است و به طور پیشفرض در اکثر توزیعهای مدرن لینوکس، به عنوان مثال، اوبونتو و سایر سیستمهای مبتنی بر دبیان از پیش نصب شده است.
سرویس rsyslog یک شبح مدرن و بهبود یافته برای syslog است که فقط به شما امکان می دهد لاگ ها را به صورت محلی مدیریت کنید. با دیمون rsyslog، می توانید گزارش های محلی خود را به برخی از سرورهای لینوکس راه دور پیکربندی شده ارسال کنید.
اگر rsyslog را روی رایانه شخصی خود نصب نکرده اید، می توانید به راحتی این کار را با استفاده از دستور زیر در توزیع های مبتنی بر دبیان انجام دهید:
sudo apt install rsyslog
در لینوکس Red Hat می توانید آن را با تایپ کردن نصب کنید:
yum install rsyslog
در فدورا و مشتقات آن، اجرا کنید:
dnf install rsyslog
برای نصب rsyslog در آرچ لینوکس:
yay -S rsyslog
برای بررسی وضعیت rsyslog دستور زیر را اجرا کنید:
systemctl status rsyslog
خروجی:
مرحله 2: پیکربندی Log Host Server
میزبان گزارش سروری است که برای دریافت پیام های گزارش از سرورها یا رایانه های شخصی دیگر پیکربندی شده است. پیکربندی rsyslog در فایل /etc/rsyslog.conf قرار دارد.
می توانید فایل /etc/rsyslog.conf را با استفاده از هر ویرایشگر متنی دلخواه باز کنید. در این راهنما، ما از Vim استفاده خواهیم کرد.
برای ایجاد تغییرات در فایل پیکربندی، به امتیازات بالاتری نیاز دارید.
قبل از شروع ویرایش فایل پیکربندی، باید یک نسخه پشتیبان یا کپی از فایل بگیرید. برای انجام این کار، دستور را اجرا کنید:
sudo cp /etc/rsyslog.conf /etc/rsyslog_original.config
سپس فایل /etc/rsyslog.conf را با استفاده از ویرایشگر متن باز کنید.
sudo vim /etc/rsyslog.conf
دو پروتکل وجود دارد که می توانید برای ارسال/دریافت فایل های گزارش با rsyslog استفاده کنید: TCP و UDP. این راهنما به شما نشان می دهد که چگونه هر دو را پیکربندی کنید.
برای کار کردن از راه دور، نیازی به پیکربندی UDP و TCP ندارید. فقط یکی از این دو را انتخاب کنید.
اگر ترجیح میدهید از UDP استفاده کنید، خطوط زیر را با حذف نماد پوند (#) جلوتر از خطوط، جستجو کرده و از نظر آنها خارج کنید. می توانید این خطوط را در قسمت ماژول های فایل پیکربندی پیدا کنید.
module(load="imudp")
input(type="imudp" port="514")
اگر ترجیح میدهید از TCP استفاده کنید، خطوط زیر را با حذف نماد Pound (#) که در ابتدای خطوط قرار دارد، لغو کامنت کنید:
module(load="imtcp")
input(type="imtcp" port="514")
شکل زیر فایل پیکربندی rsyslog را نشان می دهد که برای استفاده از ارتباطات UDP پیکربندی شده است:
سپس، مکانی را که rsyslog لاگ های شما را در آن ذخیره می کند، پیکربندی کنید. برای سازماندهی بهتر، باید لاگ های ورودی را بر اساس مبدأ آنها دسته بندی کنید. با افزودن خطوط زیر یک الگو را در فایل پیکربندی rsyslog خود تعریف کنید:
$template remote-incoming-logs, "/var/log/remote/%HOSTNAME%".log
*.* ?remote-incoming-logs
خطوط فوق به rsyslog دستور می دهد تا گزارش ها را در پوشه /var/log/remote/hostname ذخیره کند، جایی که hostname نام سرویس گیرنده راه دوری است که پیام های گزارش را به میزبان گزارش ارسال می کند.
اکنون تغییراتی را که ایجاد کرده اید ذخیره کنید. اگر از Vim استفاده می کنید، در اینجا نحوه ذخیره و خروج یک فایل آورده شده است.
در نهایت، خدمات rsyslog را مجددا راه اندازی کنید تا تغییراتی که ایجاد کرده اید اعمال شوند.
sudo systemctl restart rsyslog
مرحله 3: فایروال خود را پیکربندی کنید
اگر فایروال شما فعال است، مطمئن شوید که پورتی که در بالا پیکربندی کرده اید قادر به برقراری ارتباط با دنیای خارج است. شما باید قوانین فایروال خود را ویرایش کنید تا لاگ های ورودی را مجاز کنید.
برای توزیع های مبتنی بر دبیان، به سادگی از ابزار UFW برای فعال کردن پروتکل انتقال UDP یا TCP استفاده کنید.
مطالب مرتبط: نحوه پیکربندی فایروال در اوبونتو با استفاده از UFW
اگر از UDP استفاده می کنید، دستور زیر را اجرا کنید، جایی که 514 شماره پورت پیکربندی شده است:
sudo ufw 514/udp
اگر از TCP در پورت 514 استفاده می کنید، به سادگی اجرا کنید:
sudo ufw 514/tcp
در فدورا، می توانید از فایروال-cmd برای دستیابی به نتایج مشابه استفاده کنید.
firewall-cmd --zone=zone --add-port=514/udp
برای لینوکس Red Hat، فایل iptables واقع در /etc/sysconfig/iptables را با استفاده از ویرایشگر متن انتخابی خود باز کنید و قانون زیر را اضافه کنید:
-A INPUT -m state --state NEW -m udp -p udp --dport 514 -j ACCEPT
برای اعمال تغییرات، سرویس iptables را مجددا راه اندازی کنید.
service iptables restart
مرحله 4: پیکربندی Logging Client
کلاینت ماشینی است که لاگ های خود را به سرور میزبان لاگ از راه دور یا متمرکز می فرستد. فایل پیکربندی rsyslog واقع در /etc/rsyslog.conf را باز کنید:
sudo vim /etc/rsyslog.conf
اگر از UDP استفاده می کنید، که در آن 192.168.12.123 آدرس IP سرور راه دور است، خط زیر را اضافه کنید، گزارش های خود را در آن می نویسید:
*.* @192.168.12.123:514
اگر از TCP استفاده می کنید، به جای آن خط زیر را اضافه کنید. توجه داشته باشید که این خط دارای دو علامت @ است.
*.* @@192.168.12.123:514
تغییرات خود را ذخیره کنید و سرویس rsyslog را روی کلاینت با دستور زیر راه اندازی مجدد کنید:
sudo systemctl restart rsyslog
مرحله 5: مشاهده پیام های گزارش روی سرور
می توانید از SSH برای ورود به سرور راه دور خود و مشاهده گزارش های ارسال شده از سرورهای مشتری استفاده کنید. در این مورد، rsyslog به گونهای پیکربندی میشود که گزارشهای مشتری را در فهرست /var/log/remote سرور راه دور ذخیره میکند.
cd /var/logs/remote
سپس با استفاده از دستور ls محتویات دایرکتوری را فهرست کنید:
ls -l
همانطور که در خروجی مشاهده می کنید، دایرکتوری حاوی پیام های ورود به سیستم سرورهای راه دور به نام های andiwa و rukuru است. فایل های لاگ آنها به ترتیب andiwa.log و rukuru.log نام دارند.
سپس می توانید با استفاده از یک ویرایشگر متن یا با ابزارهای مشاهده فایل لینوکس مانند cat یا کمتر، به فایل های گزارش نگاه کنید.
ثبت از راه دور به شما کنترل بیشتری می دهد
این راهنما نحوه راهاندازی سرور ثبتنام از راه دور (میزبان ورود به سیستم) در لینوکس را بررسی کرده است.
یک میزبان گزارش سازماندهی و کنترل بهتری را در مورد ورود به سیستم به شما ارائه می دهد. حتی در سناریوهایی که سیستمی آسیب دیده یا غیرقابل دسترسی است، همچنان میتوانید گزارشهای آن را از میزبان گزارش مشاهده کنید و متوجه شوید که چه مشکلی رخ داده است.