OpenVPN کے لاگز کس کے ہیں: ڈیمن، rsyslog یا logrotate؟
ایک لکھنے والا، ایک گھمانے والا، ایک رکھنے کی پالیسی۔ پہلے راستہ چنیں، تنگ فلٹر کے لیے ڈیمن کو نام دیں، اور ایک ہی گھمائی گئی فائل سے دوبارہ کھلنا ثابت کریں۔
لاگ گھمانا ایک اندازے کے مطابق ٹوٹتا ہے: تین اجزا میں سے ہر ایک سمجھتا ہے کہ فائل اسی کی ہے، اور نتیجہ وہ گھمایا ہوا لاگ ہے جو نئی فائل خالی رہنے کے باوجود بڑھتا رہتا ہے۔ ڈیمن ایک ڈسکرپٹر تھامے رکھتا ہے، logrotate راستے کا نام بدلتا ہے، اور rsyslog بالکل کسی اور جگہ لکھتا ہے۔ ڈھیر میں ایک اور قاعدہ ڈالنے سے پہلے ایک لکھنے والا اور ایک گھمانے والا چنیں۔ نیچے دی گئی فہرست اسی ترتیب سے چلتی ہے، کیونکہ ہر اگلا قدم اسی پر منحصر ہے۔
فیصلہ کریں کہ فائل کون لکھتا ہے
دو ڈیزائن جائز ہیں۔ پہلے میں VPN عمل خود اپنے log یا log-append اختیار کے ذریعے فائل لکھتا ہے۔ دوسرے میں یہ اندراجات سسٹم لاگر کو بھیجتا ہے اور rsyslog یا journald فیصلہ کرتا ہے کہ وہ کہاں اتریں گے۔
یہ متبادل ہیں، پرتیں نہیں۔ دونوں فعال کرنے والا میزبان آخر میں دو ایسی فائلوں کے ساتھ رہتا ہے جو مطابقت نہیں رکھتیں، اور جو آپ پڑھ رہے ہیں وہ اکثر پرانی ہوتی ہے۔ راستہ سوچ سمجھ کر چنیں، پھر دوسرے لکھنے والے کو ہٹا دیں۔
کچھ بھی بدلنے سے پہلے سروس کی موثر ترتیب پڑھیں، بشمول وہ drop-in فائلیں جو unit فائل کو زیر کر سکتی ہیں۔ آپ کی ترمیم کردہ پروفائل میں موجود ہدایت اس بات کا ثبوت نہیں کہ یہی وہ ہدایت ہے جو چلتی ہوئی عمل نے لوڈ کی۔ unit کا موازنہ عمل کے دلائل سے، اور پھر ان فائلوں سے کریں جو اس نے واقعی کھولیں۔
ڈیمن کو نام دیں تاکہ فلٹر تنگ رہے
syslog راستے پر ڈیمن کو الگ شناخت دیں اور اسی پر فلٹر کریں۔ وہ قاعدہ جو اس VPN مثال کے پروگرام نام سے مطابقت رکھتا ہے، اس کے اندراجات کو ایک مشترکہ فائل سے باہر رکھتا ہے جس کی رکھنے کی پالیسی کسی اور کی ہے۔
تنگ قواعد اگلے سوال کو بھی جواب دے قابل بناتے ہیں: یہ سطر کس سروس نے بنائی؟ جو فلٹر VPN لفظ رکھنے والی ہر چیز سے مطابقت رکھتا ہے وہ خوشی سے دوسری سرنگ کی ٹریفک بھی جمع کر لے گا اور دونوں کو دھندلا کر دے گا۔ unit جو درست شناخت کنندہ لاگر کو دیتا ہے اسی سے ملائیں۔
اندراجات کو طے شدہ منزل میں بھی گرنے سے روکنے کے لیے عمل کے بعد قاعدہ بند کریں۔ دو فائلوں میں دہرائی گئی سطریں لاگنگ کی خرابی جیسی لگتی ہیں، حقیقت میں وہ ایک گمشدہ رکاوٹ ہیں۔ وہی ایک کوتاہی رکھنے کی پالیسی کی ڈسک لاگت بھی دگنی کر دیتی ہے۔
ڈسکرپٹر گنوائے بغیر گھمائیں
جب ڈیمن فائل لکھتا ہے، logrotate راستے کا نام بدلتا ہے لیکن عمل اپنا کھلا ڈسکرپٹر رکھتا ہے۔ نئی اندراجات نام بدلی فائل میں جاتی رہتی ہیں، جب تک کوئی چیز عمل کو اصل راستہ دوبارہ کھولنے پر مجبور نہ کرے؛ اسی لیے گھمانا کام کرتا دکھ سکتا ہے جبکہ نئی فائل خالی رہتی ہے۔
حل وہ postrotate عمل ہے جو سروس کے دستاویزی دوبارہ لوڈ یا دوبارہ آغاز کے رویے کو فعال کرتا ہے۔ لاگر کو سگنل بھیجنا بالکل الگ عمل ہے اور اپنی فائل رکھنے والے ڈیمن کے لیے کچھ نہیں کرتا۔
جہاں دوبارہ کھلنا ناممکن ہو، copytruncate متبادل ہے: فائل کی نقل کریں، پھر اسے وہیں کاٹ دیں۔ یہ ڈسکرپٹر کو درست رکھتا ہے مگر نقل اور کٹائی کے درمیان لکھا سب کچھ ضائع کر دیتا ہے، اس لیے یہ حل نہیں بلکہ سودا ہے۔ بوجھ کے تحت وہ خلا آپ کی پکڑنے کی کوشش کی ہوئی خرابی ہی کو نگل سکتا ہے۔
ہر فائل کے لیے دونوں میں سے ایک چنیں اور انتخاب لکھیں، کیونکہ ایک ہی راستے پر دونوں کو ملانا ایسے خلا پیدا کرتا ہے جنہیں بعد میں منسوب کرنا بہت مشکل ہے۔ ایک ہی ڈائریکٹری میں دونوں نمونے ملنے پر قاری نہیں بتا سکتا کہ کون سا مستند ہے۔
رکھنے کی مدت واقعے کی کھڑکی سے مقرر کریں
رکھنے کی مدت، کمپریشن اور زیادہ سے زیادہ حجم اس بات سے آنا چاہیے کہ آپ واقعی کتنا پیچھے تحقیق کرتے ہیں۔ کمپریشن اور حجم کی حد کے ساتھ سات دن کی کھڑکی بہت سی تعیناتیوں کے لیے معقول آغاز ہے؛ کسی سبق سے نقل کی گئی تعداد نہیں۔
پالیسی ایک ہی جگہ رکھیں۔ اگر logrotate فائل گھماتا ہے اور rsyslog بھی اسے گھماتا ہے، دوسرا گھمانا جیت جاتا ہے اور پہلے کا نام رکھنے کا طریقہ گڑبڑ کے طور پر رہ جاتا ہے۔ مالک چنیں، دوسرا گھمانا بند کریں، اور وہ فیصلہ پالیسی کے ساتھ لکھیں۔
rsyslog کی دستاویزات اس کے روٹنگ اور عمل کے ماڈل کا احاطہ کرتی ہیں، جبکہ OpenVPN سروس کی دستاویزات ڈیمن کے اپنے لاگنگ اختیارات کے لیے مستند رہتی ہیں۔ ان میں سے کوئی بھی آپ کی جگہ آپ کی رکھنے کی پالیسی طے نہیں کرتا۔
ایک گھمانا اور ایک نئے واقعے کی جانچ کریں
ایک ہی گھمانا زبردستی کریں اور پھر ایک نیا واقعہ پیدا کریں، جیسے ناکام تصدیق۔ تصدیق کریں کہ نیا اندراج نئی فائل میں ظاہر ہوتا ہے اور پرانی فائل بڑھنا بند ہو گئی ہے۔
نئی فائل کی اجازتیں بھی دیکھیں، کیونکہ کسی اور مالک کے ساتھ اسے دوبارہ بنانے والا گھمانا اگلی تحریر میں لکھنے والے کو توڑ دیتا ہے اور ایسا خلا بناتا ہے جو حادثے جیسا لگتا ہے۔ جانے سے پہلے مالک اور موڈ کا موازنہ سروس اکاؤنٹ سے کریں۔ پھر تصدیق کریں کہ کمپریس شدہ محفوظ شدہ دستاویز پڑھی جا سکتی ہے، کیونکہ جسے کوئی نہ کھول سکے وہ رکھنا نہیں۔ پرانی فائل میں تازہ ترین اندراج کو تیزی سے پڑھنا کمپریشن اور اجازتیں دونوں ثابت کرتا ہے۔
ہر مرحلے کا مالک لکھ کر ختم کریں: کون سا جزو لکھتا ہے، کون گھماتا ہے، اور رکھنے کی پالیسی کہاں رہتی ہے۔ وہی اندراج اگلے لاگنگ واقعے کو کسی پرت نے سطر گرا دی ہوگی کے اندازے میں گزاری جانے والی پوری دوپہر کی بجائے پانچ منٹ کی جانچ بنا دیتا ہے۔