خواندن لاگها با journalctl و پیدا کردن خطاهای سرور
لاگها بهترین دوست عیبیابی هستند؛ یاد بگیرید در چند ثانیه علت خطای سرویس یا حمله را پیدا کنید.
آخرین بهروزرسانی: ۲۸ مهر ۱۴۰۵ · زمان مطالعه: حدود 3 دقیقه · سطح: کاربردی
- خواندن لاگها با journalctl و پیدا کردن خطاهای سرور
- لاگهای امروز را ببینید
- برای ارسال لاگ به سرور مرکزی برنامه بسازید
چرا این موضوع مهم است؟
موضوع Linux یکی از پایههای نگهداری سرور است. رعایت آن باعث پایداری بیشتر، کاهش ریسک امنیتی و صرفهجویی در زمان پشتیبانی میشود.
این راهنما با فرض دسترسی مدیریتی (root یا sudo) نوشته شده و مراحل آن روی یک سرور تازه آزمایش شده است.
پیشنیازها
- دسترسی SSH با کاربر root یا کاربر دارای sudo
- Ubuntu 22.04/24.04 یا Debian 12 (سازگاری با توزیعهای مشابه)
- نسخه پشتیبان از فایلها و دیتابیسهای مهم
راهنمای گامبهگام
گام 1 — لاگهای امروز را ببینید
لاگهای امروز را ببینید. برای اطمینان، نتیجه را از یک مسیر دوم (مرورگر، کلاینت یا ابزار مانیتورینگ) هم بررسی کنید.
گام 2 — لاگ یک سرویس خاص را فیلتر کنید
لاگ یک سرویس خاص را فیلتر کنید. این کار را در بازه کمترافیک انجام دهید و در صورت نیاز کاربران را از قبل مطلع کنید.
گام 3 — خطاها را از بقیه جدا کنید
خطاها را از بقیه جدا کنید. این مرحله را با دقت انجام دهید و خروجی دستور را بررسی کنید تا از اعمال درست تغییرات مطمئن شوید.
گام 4 — بازه زمانی مشخصی را جستجو کنید
بازه زمانی مشخصی را جستجو کنید. پس از اجرا، وضعیت سرویس و لاگها را کنترل کنید؛ تغییر بدون بررسی میتواند خطای پنهان ایجاد کند.
گام 5 — لاگها را با logrotate مدیریت کنید
لاگها را با logrotate مدیریت کنید. اگر روی چند سرور کار میکنید، این مورد را یکبار روی محیط تست اجرا و سپس روی تولید اعمال کنید.
گام 6 — برای ارسال لاگ به سرور مرکزی برنامه بسازید
برای ارسال لاگ به سرور مرکزی برنامه بسازید. مقدارهای نمونه را با اطلاعات واقعی سرور خود جایگزین کنید و از اجرای دستور با مقادیر پیشفرض پرهیز کنید.
نمونه دستورها
journalctl --since "1 hour ago"
journalctl -u nginx -p err
journalctl --since "2026-01-01" --until "2026-01-02"نکات امنیتی و بهینهسازی
- نسخه پکیجها و سیستمعامل را بهروز نگه دارید؛ بسیاری از نفوذها از نسخههای قدیمی شروع میشوند.
- دسترسیها را حداقلی نگه دارید و فقط پورتها و کاربران لازم را باز بگذارید.
- پیش از هر تغییر بزرگ، نسخه پشتیبان قابل بازیابی تهیه کنید و بازیابی را تست کنید.
خطاهای رایج و راهحل
- قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
- خطای Permission denied معمولاً به مالکیت یا مجوز فایل مربوط است؛ chmod -R 777 راهحل نیست.
- قبل از بازگردانی بکاپ، مطمئن شوید نسخه بکاپ با نسخه فعلی سازگار است.
سؤالات متداول
لاگ Nginx کجاست؟
معمولاً /var/log/nginx/access.log و error.log؛ در systemd هم journalctl -u nginx.
چطور خطاهای SSH را ببینم؟
journalctl -u ssh یا /var/log/auth.log بسته به توزیع.
میلاد سرور پلنهای اقتصادی سرور مجازی ایران و سرور مجازی آلمان را با آیپی اختصاصی و قیمت شفاف ارائه میکند. برای مقایسه همه کشورها فهرست کامل سرورهای بینالملل را ببینید.
جمعبندی
با رعایت این مراحل، سرویس شما پایدارتر و امنتر خواهد بود؛ اما پایش منظم را فراموش نکنید.