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 ও তার উপরে পরিচিত প্রশ্নসহ সীমিত তদন্তের উপযুক্ত। পুনরাবৃত্তি দমন শব্দ কমায়, তবে কোনও ঘটনা কতবার পুনরাবৃত্ত হয় তা লুকানো উচিত নয়। যে স্তর আপনি ধরে রাখতে পারেন তা ঠিক করুন, এবং কেবল শেষ আছে এমন নামকরা তদন্তের জন্য তা বাড়ান।
রেকর্ডে ইনস্ট্যান্সের পরিচয় ও টাইমস্ট্যাম্প রাখুন। ফাইল মাসের পর মাস যোগ হলে এবং ইনস্ট্যান্সের নাম না থাকলে পুনঃসংযোগ প্রথম সংযোগের মতোই দেখায়।
খেয়াল রাখুন সেই ফাইলে আর কী পড়ে। রিডাইরেক্ট করা আউটপুটে ডাকা স্ক্রিপ্টের লেখা থাকতে পারে, আর নিজের পরিবেশ ছাপানো সহায়ক প্রোগ্রাম শংসাপত্র ও কী-র পথ পাঠযোগ্য লগে রেখে দেয়। ডেমন নিজে সংবেদনশীল কিছু না ছাপালেও লগে প্রবেশাধিকারকে নিরাপত্তা সিদ্ধান্ত হিসেবে দেখুন।
ঘূর্ণন, ধারণকাল এবং যে সংকেতগুলো আবার লোড করে
ধারণকাল ডিস্কের মালিকের সাথে ঠিক করুন এবং ভলিউম আপনার হয়ে সিদ্ধান্ত নেওয়ার আগেই তা নির্ধারণ করুন। পুনঃলোড সংকেত লগ রক্ষণাবেক্ষণের আদেশ নয়: ভুল সংকেত পাঠালে টানেল আবার চালু হয় এবং প্রতিটি ব্যবহারকারী বিচ্ছিন্ন হয়। আবার খোলার পদ্ধতি ঘূর্ণন নিয়মের পাশে লিখুন যাতে দুটি আলাদা না হয়ে যায়।
ফলাফল এমন পরিষেবা হওয়া উচিত যা একজন অপারেটর বর্ণনা করতে পারেন: একটি কর্তৃত্বপূর্ণ প্রবাহ, প্রতিটি ঘটনা জীবনচক্রে স্থাপিত, এবং এমন রেকর্ড যা হোস্টের প্রতিটি গোপনীয়তা-বহনকারী ফাইল সংগ্রহ না করেই পাওয়া যায়। এই বর্ণনাই নকশার গ্রহণযোগ্যতা পরীক্ষা, আর পরের ঘটনার আগে তা যাচাই করা সস্তা।