مالک گزارشهای OpenVPN کیست: دیمن، rsyslog یا logrotate؟
یک نویسنده، یک چرخاننده، یک سیاست نگهداری. اول مسیر را انتخاب کنید، دیمن را برای فیلتری باریک نامگذاری کنید و باز شدن دوباره را با یک فایل چرخیده اثبات کنید.
چرخش گزارشها به شکلی قابل پیشبینی میشکند: سه مؤلفه هر یک گمان میکنند مالک فایل هستند و نتیجه، گزارشی چرخیده است که رشد میکند در حالی که فایل جدید خالی میماند. دیمن یک توصیفگر نگه میدارد، logrotate مسیر را تغییر نام میدهد و rsyslog جای کاملاً دیگری مینویسد. پیش از افزودن قاعده دیگری به توده، یک نویسنده و یک چرخاننده انتخاب کنید. فهرست بررسی زیر به همین ترتیب پیش میرود، چون هر گام بعدی به آن وابسته است.
تصمیم بگیرید چه کسی فایل را مینویسد
دو طراحی مشروع است. در اولی، فرایند VPN خودش فایلی را از طریق گزینه log یا log-append مینویسد. در دومی، رکوردها را به ثبتکننده سیستم میفرستد و rsyslog یا journald تصمیم میگیرد کجا فرود بیایند.
اینها جایگزیناند، نه لایه. میزبی که هر دو را فعال کند در پایان دو فایل ناسازگار دارد و فایلی که میخوانید اغلب کهنه است. مسیر را آگاهانه انتخاب کنید و سپس نویسنده دیگر را بردارید.
پیش از تغییر هر چیز، پیکربندی مؤثر سرویس را بخوانید، از جمله فایلهای drop-in که ممکن است فایل واحد را بازنویسی کنند. وجود یک دستور در نمایهای که ویرایش کردید اثبات نمیکند که همان دستوری است که فرایند در حال اجرا بار کرده. واحد را با آرگومانهای فرایند و سپس با فایلهایی که واقعاً باز کرد مقایسه کنید.
دیمن را نامگذاری کنید تا فیلتر باریک باشد
در مسیر syslog، به دیمن هویتی متمایز بدهید و بر همان فیلتر کنید. قاعدهای که با نام برنامه این نمونه VPN منطبق است، رکوردهایش را بیرون از فایل مشترکی نگه میدارد که سیاست نگهداری آن به چیز دیگری تعلق دارد.
قواعد باریک پرسش بعدی را نیز پاسخپذیر میکنند: کدام سرویس این خط را تولید کرد؟ فیلتری که با هر چیزی که واژه VPN دارد منطبق شود، با کمال میل ترافیک تونل دومی را جمع میکند و هر دو را مبهم میکند. با شناسه دقیقی که واحد به ثبتکننده میدهد منطبق شوید.
قاعده را پس از کنش ببندید تا رکوردها به مقصد پیشفرض هم نیفتند. خطوط تکراری در دو فایل مانند یک باگ ثبت به نظر میرسند و در واقع یک توقف گمشدهاند. همین یک حذف، هزینه دیسک سیاست نگهداری را نیز دو برابر میکند.
بدون از دست دادن توصیفگر بچرخانید
وقتی دیمن فایل را مینویسد، logrotate مسیر را تغییر نام میدهد اما فرایند توصیفگر باز خود را نگه میدارد. رکوردهای جدید تا زمانی که چیزی فرایند را به باز کردن دوباره مسیر اصلی وادار کند در فایل تغییرنامیافته ادامه مییابند؛ به همین دلیل ممکن است چرخش کارآمد به نظر برسد در حالی که فایل جدید خالی میماند.
راهحل یک کنش postrotate است که رفتار مستند بارگذاری دوباره یا راهاندازی مجدد سرویس را فعال میکند. فرستادن سیگنال به ثبتکننده کنشی کاملاً دیگر است و برای دیمنی که فایل خودش را نگه میدارد کاری نمیکند.
جایی که باز شدن دوباره ناممکن است، copytruncate جایگزین است: فایل را کپی کنید و سپس در جای خود کوتاه کنید. توصیفگر را معتبر نگه میدارد به بهای از دست دادن هر چیزی که میان کپی و کوتاهسازی نوشته شده، پس یک معامله است نه راهحل. زیر بار، همین شکاف میتواند دقیقاً همان خرابی را ببلعد که میخواهید بگیرید.
برای هر فایل یکی از دو گزینه را انتخاب کنید و انتخاب را بنویسید، چون آمیختن آنها روی یک مسیر شکافهایی میسازد که بعداً نسبت دادنشان بسیار دشوار است. خوانندهای که هر دو الگو را در یک پوشه بیابد نمیتواند بگوید کدام مرجع است.
نگهداری را از پنجره رخداد تعیین کنید
نگهداری، فشردهسازی و بیشینه حجم باید از این نتیجه شوند که واقعاً چقدر عقب را بررسی میکنید. پنجرهای هفت روزه با فشردهسازی و سقف حجم نقطه شروعی معقول برای بسیاری از استقرارهاست؛ عددی که از یک آموزش کپی شده چنین نیست.
سیاست را در یک جا نگه دارید. اگر logrotate فایل را میچرخاند و rsyslog هم آن را میچرخاند، چرخش دوم برنده است و طرح نامگذاری اولی به صورت بههمریختگی باقی میماند. مالک را انتخاب کنید، چرخش دیگر را خاموش کنید و آن تصمیم را کنار سیاست یادداشت کنید.
مستندات rsyslog مدل مسیریابی و کنش آن را پوشش میدهد، در حالی که مستندات سرویس OpenVPN برای گزینههای ثبت خود دیمن مرجع میماند. هیچیک از این دو سیاست نگهداری را به جای شما تعیین نمیکند.
یک چرخش و یک رخداد تازه را بیازمایید
یک چرخش واحد را به زور انجام دهید و سپس یک رخداد تازه بسازید، مانند یک احراز هویت ناموفق. تأیید کنید که رکورد تازه در فایل تازه ظاهر میشود و فایل قدیمی از رشد بازمانده است.
دسترسیهای فایل تازه را هم بررسی کنید، چون چرخشی که آن را با مالک دیگری بازسازی میکند، نویسنده را در نوشتن بعدی میشکند و شکافی میسازد که مانند فروپاشی به نظر میرسد. پیش از رفتن، مالک و حالت را با حساب سرویس مقایسه کنید. سپس تأیید کنید که بایگانی فشرده خواناست، چون بایگانی که هیچکس نمیتواند بازش کند نگهداری نیست. خواندن سریع تازهترین رکورد در فایل قدیمی هم فشردهسازی و هم دسترسیها را اثبات میکند.
با ثبت مالک هر گام تمام کنید: کدام مؤلفه مینویسد، کدام میچرخاند و سیاست نگهداری کجاست. همین ثبت است که رخداد ثبت بعدی را به بررسی پنج دقیقهای تبدیل میکند، نه به یک بعدازظهر حدس زدن درباره اینکه کدام لایه خط را انداخت.