مقدمه
به عنوان یک مدیر سیستم، مدیریت گزارشها بخش مهمی از حفظ سلامت و عملکرد سرورهای لینوکس شما است. یکی از سیستمهای اصلی گزارشگیری در توزیعهای لینوکس مدرن، زیرسیستم گزارشگیری systemd یعنی journactl است. با گذشت زمان، گزارشها میتوانند انباشته شده و مقدار قابل توجهی از فضای دیسک را مصرف کنند، که در صورت پر شدن دیسک میتواند منجر به مشکلاتی شود. در این آموزش، نحوه بهینهسازی journalctl را برای صرفهجویی در فضای دیسک سرور و در عین حال حصول اطمینان از حفظ اطلاعات گزارش لازم برای اهداف عیبیابی و ممیزی پوشش خواهیم داد.
آشنایی با Journalctl و مجله Systemd
قبل از اینکه به بهینه سازی بپردازیم، داشتن یک درک اولیه از journalctl و مجله systemd بسیار مهم است. مجله systemd یک گزارش جفتی است که دادههای گزارش را در قالب ساختاریافته و نمایهسازی شده ذخیره میکند. journalctl ابزار کد و دستوراتی است که برای تعامل با مجله استفاده می شود.
گزارشها در مجله systemd بهطور پیشفرض در راهاندازی مجدد ثابت هستند و بدون انجام تنظیمات مناسب، میتوانند به طور نامحدود رشد کنند. اینجاست که بهینه سازی مطرح می شود.
مرحله 1 – ارزیابی استفاده از دیسک فعلی توسط گزارش های journal
برای شروع، بیایید ارزیابی کنیم که گزارشهای مجله در حال حاضر از چه فضایی استفاده میکنند:
journalctl --disk-usage
این دستور مقدار کل فضای دیسک مصرف شده توسط گزارش های journal را به شما می گوید.
Archived and active journals take up 3.5G in the file system.
قدم دوم – تنظیم Systemd-journald
systemd journal از طریق یک فایل پیکربندی می شود /etc/systemd/journald.conf
. برای بهینه سازی استفاده از دیسک، باید این فایل را ویرایش کنید.
sudo nano /etc/systemd/journald.conf
در اینجا تنظیمات کلیدی وجود دارد که باید در نظر بگیرید:
SystemMaxUse
: این حداکثر فضایی را که لاگ ها می توانند روی دیسک استفاده کنند تعیین می کند. پس از رسیدن به این حد، گزارشهای قدیمیتر حذف میشوند تا فضا برای موارد جدید باز شود.SystemKeepFree
: این تضمین می کند که systemd همیشه مقدار مشخصی از فضای خالی را روی دیسک باقی می گذارد.MaxRetentionSec
: این حداکثر زمان برای ذخیره ورودی های گزارش را تعیین می کند. ورودی های قدیمی تر از این زمان پاک می شوند.MaxFileSec
: این حداکثر زمان را قبل از شروع یک فایل journal جدید تنظیم می کند.
این تنظیمات را بر اساس اندازه دیسک سرور خود و میزان اطلاعات گزارشی که باید نگه دارید پیکربندی کنید. برای مثال:
SystemMaxUse=500M
SystemKeepFree=1G
MaxRetentionSec=1month
MaxFileSec=1week
این تنظیمات گزارشها را به 500 مگابایت محدود میکند، اطمینان حاصل میکند که حداقل 1 گیگابایت فضای دیسک همیشه آزاد است، گزارشها را حداکثر تا یک ماه نگه میدارند، و هر هفته یک فایل گزارش جدید را شروع میکنند.
پس از ویرایش فایل، تغییرات خود را ذخیره کرده و مجدداً سرویس:systemd-journald
را راه اندازی کنید .
sudo systemctl restart systemd-journald
مرحله 3 – برش دستی journal
اگر نیاز به کاهش فوری استفاده از فضای دیسک دارید، می توانید به صورت دستی journal را برش دهید. برای حذف ورودی های قدیمی بیش از یک زمان خاص،از کد زیر استفاده کنید:
sudo journalctl --vacuum-time=1month
برای محدود کردن اندازه journal به یک اندازه خاص،از کد استفاده کنید:
sudo journalctl --vacuum-size=500M
این دستورات ورودیهای قدیمیتر را حذف میکنند تا به بازه زمانی یا محدودیت اندازهای که تعیین کردهاید احترام بگذارند.
مرحله 4 – تنظیم (چرخش گزارش) Log Rotation
در حالی که
systemd-journald
چرخش گزارش خود را بر اساس فایل پیکربندی(config) انجام میدهد، اگر از سیستمهای گزارشگیری دیگر در کنار systemd-journald
استفاده میکنید، میتوانید چرخش گزارش اضافی را نیز تنظیم کنید. برای مثال، logrotate
ابزاری است که گزارشهای سیستم را میچرخاند، فشرده میکند و ایمیل میکند. میتوانید با ویرایش فایلهای پیکربندی آن در /etc/logrotate.conf
و /etc/logrotate.d logrotate
را پیکربندی کنید.
نتیجهگیری
بهینه سازی journalctl
یک مرحله کلیدی در مدیریت فضای دیسک سرور لینوکس شما است. با پیکربندی systemd-journald
، برش دستی گزارشها، راهاندازی چرخش گزارش، و نظارت بر استفاده از دیسک، میتوانید اطمینان حاصل کنید که سرور شما بدون خالی شدن فضای دیسک به دلیل فایلهای گزارش کارآمد کار میکند. به یاد داشته باشید که نیاز به فضای دیسک را با نیاز به داده های گزارش کافی برای تجزیه و تحلیل و عیب یابی متعادل کنید. بررسی منظم و تنظیم پیکربندی ورود به سیستم به شما کمک می کند تا تنظیمات بهینه را حفظ کنید.