سرور OpenVPN باید گزارش خود را کجا بنویسد و چرا
log، log-append و syslog با هم تفاوت دارند و مدیر سرویس نسخهٔ خودش را نگه میدارد. یک جریان معتبر انتخاب کنید، چرخهٔ عمر را خوانا نگه دارید و مدت نگهداری را تعیین کنید.
طراحی گزارش به سه پرسش پاسخ میدهد: کدام فرایند یک رکورد ساخت، آن رکورد کجا فرود میآید و چه مدت زنده میماند. OpenVPN میتواند در فایل بنویسد، پیامها را به گزارشگر سیستم بسپارد یا آنها را به آنچه مدیر سرویس میگیرد واگذار کند، و اینها سه نسخه از یک جریان نیستند. هر انتخاب تغییر میدهد که چرخش از آنِ کیست، کدام کاربر میتواند نتیجه را بخواند و در هنگام راهاندازی چه رخ میدهد. پاسخها را پیش از یک رخداد روشن کنید، چون بعد از آن هرچه پیکربندی شده را به ارث میبرید.
دیمن در واقع با دستور چه میکند
دستورها انتزاعی نیستند؛ هر یک تعیین میکند فرایند پیامهایش را کجا بنویسد. log /path آن فایل را باز میکند، log-append /path آن را برای افزودن باز میکند و syslog پیامها را از طریق سوکت خود به گزارشگر محلی سیستم میسپارد. بدون هیچیک، خروجی به خروجی استاندارد میرود و مدیر سرویس تصمیم میگیرد بعد چه شود. پیش از آنکه نتیجه بگیرید دیمن پیکربندی شما را نادیده میگیرد، واحد مؤثر و نمایه را با هم بخوانید.
حالت آخر در نصب بستهای رایج است و توضیح میدهد چرا دو مدیر دربارهٔ جای گزارش اختلاف دارند. یکی ژورنال واحد را میخواند، دیگری فایلی را که دیمن هرگز ننوشته است.
پیکربندی در حال اجرا را بررسی کنید، نه فایل روی دیسک را. بازنویسی واحد از نوع drop-in یا یک فایل محیطی میتواند دستور مؤثر را بدون دست زدن به نمایهای که میخوانید تغییر دهد.
log میبرد، log-append نه
log وقتی دستور اجرا میشود فایل موجود را میبرد، پس راهاندازی دوباره شواهد پیش از خود را پاک میکند. log-append آنچه هست را نگه میدارد و میافزاید. هیچیک از دو گزینه چیزی را نمیچرخاند و هیچیک بعداً خودبهخود فایل را دوباره باز نمیکند، از اینرو چرخش به همکاری نیاز دارد.
اگر چرخش نام فایل را عوض کند در حالی که دیمن همچنان در توصیفگر قدیمی مینویسد، فایل جدید خالی میماند و مصرف دیسک در فایل تغییرنامیافته بالا میرود. به فرایند سیگنال بدهید تا دوباره باز کند، یا با راهبرد رونوشت و بُرش بچرخانید و پنجرهٔ رونوشت را بپذیرید.
پوشه، مالکیت و مجوزها بخشی از طراحیاند. دیمن ممکن است پس از راهاندازی بهعنوان کاربر بدون امتیاز اجرا شود، و پوشهای که root هنگام نصب ساخته است ممکن است آنوقت قابل نوشتن نباشد. آن را از طریق بستهبندی یا فرایند استقرار آماده کنید، نه با اصلاح مجوزها در میانهٔ رخداد.
مدیر سرویس نسخهٔ دوم را نگه میدارد
systemd بهطور پیشفرض خروجی استاندارد و خطای استاندارد را میگیرد، پس واحدی بدون تغییرمسیر صریح از پیش گزارش دارد. افزودن یک دستور فایل دو جریان با نگهداری، خواننده و برچسب زمان متفاوت میدهد.
این بهطور خودکار غلط نیست، اما باید یک تصمیم باشد. رکورد راهاندازی را در ژورنال نگه دارید، چون خطاهای پیش از وجود فایل پیکربندیشده جای دیگری دیده نمیشوند. سپس فایل را برای رخدادهای حالت پایدار معتبر کنید و آن را در runbook بنویسید. دو جریان معتبر یعنی دو پاسخ برای هر پرسش.
انتخاب را با آزمونی که عمداً شکست میخورد تأیید کنید. دیمن را با گواهی ناخواندنی راه بیندازید و ببینید کدام جریان خطا را ثبت میکند.
پرگویی با جزئیات قابل استفاده یکی نیست
سطح بالاتر verb سطرهای بیشتری میافزاید و پس از نقطهای سطرهایی که کسی نمیخواند. سطح 3 برای بیشتر استقرارها حالت پایدار معقولی است، در حالی که سطح 4 و بالاتر به تحقیقی محدود با پرسشی شناختهشده میخورد. سرکوب تکرار نوفه را کم میکند، اما نباید پنهان کند که یک رخداد چند وقت یکبار تکرار میشود. سطحی را تعیین کنید که میتوانید نگه دارید و آن را فقط برای تحقیقی نامدار با پایان بالا ببرید.
هویت نمونه و برچسبهای زمان را در رکورد نگه دارید. وقتی فایل ماهها افزوده شده و نام نمونه نیست، اتصال دوباره دقیقاً مانند اتصال نخست به نظر میرسد.
مراقب باشید چه چیز دیگری در آن فایل فرود میآید. خروجی تغییرمسیریافته میتواند متن اسکریپتهای فراخواندهشده را دربرداشته باشد، و برنامهٔ کمکیای که محیط خود را چاپ میکند اعتبارنامهها و مسیرهای کلید را در گزارشی خوانا میگذارد. دسترسی به گزارش را حتی وقتی خود دیمن چیز حساسی چاپ نمیکند یک تصمیم امنیتی بدانید.
چرخش، نگهداری و سیگنالهایی که دوباره بار میکنند
دربارهٔ نگهداری با صاحب دیسک تصمیم بگیرید و آن را پیش از آنکه حجم بهجای شما تصمیم بگیرد تعیین کنید. سیگنال بازبارگذاری فرمان نگهداری گزارش نیست: فرستادن سیگنال اشتباه تونل را دوباره راه میاندازد و هر کاربر را قطع میکند. روش بازگشایی را کنار قاعدهٔ چرخش بنویسید تا آن دو از هم فاصله نگیرند.
نتیجه باید سرویسی باشد که یک اپراتور بتواند توصیفش کند: یک جریان معتبر، هر رخداد در چرخهٔ عمر جایگرفته و رکوردی که بدون گردآوری هر فایل رازدار روی میزبان به دست میآید. همین توصیف آزمون پذیرش طراحی است و بررسی آن پیش از رخداد بعدی ارزان است.