উত্তর:
আমার অভিজ্ঞতায় লোগ্রোটেট দুর্দান্ত। এটি খুব নমনীয় এবং বেশিরভাগ সফ্টওয়্যার দিয়ে ভাল কাজ করে।
তবে এর সাথে কিছু সমস্যা রয়েছে এবং ক্রোনোলজ মূলত একটি ওয়েব লগ রোটেশন সুবিধা হওয়ায় আমি লোগ্রোটেট + অ্যাপাচি দিয়ে আমার অভিজ্ঞতাটি লিখে যা সমস্যা ছিল:
লগগুলি ঘোরানোর সময়, আমাদের অবশ্যই অ্যাপাচি অবহিত করতে হবে যে একটি লগটি ঘোরানো হচ্ছে, এমনকি যদি লোগ্রোটেট অ্যাক্সেস.লগের নাম পরিবর্তন করে। ফাইলটির নাম পরিবর্তন করা ইনোড নম্বরকে প্রভাবিত করে না।
ডিবিয়ান ইচ (এবং সম্ভবত আরও অনেকগুলি ডিস্ট্রো) তে, লোগ্রোটেট অ্যাপাচি লগগুলি ঘোরানোর জন্য ব্যবহৃত হচ্ছে। এখন, অ্যাপাচে একটি চমত্কার পুনঃসূচনা রয়েছে যা অ্যাপাচি চাইল্ড প্রসেসগুলি বিদ্যমান সংযোগগুলি পরিবেশন শেষ করার পরে প্রস্থান করার পরামর্শ দেয়, অ্যাপাচি তার কনফিগারেশনটি পুনরায় পাঠ করে, নতুন শিশু প্রক্রিয়া তৈরি করে, যা একটি নতুন লগ ফাইলে লিখতে শুরু করে (ক্ষেত্রে পূর্ববর্তীটি ছিল আবর্তিত)।
এটি দুর্দান্ত সমাধানের মতো শোনাচ্ছে তবে গ্রেসফুল রিস্টার্টটি সর্বদা নির্দিষ্ট পরিস্থিতিতে (ভারী বোঝার মতো) কাজ করে না, সুতরাং অ্যাবাচি লোগ্রোটেট কনফিগারেশনে ডেবিয়ান বিকাশকারীরা একটি গ্রেফিস রিস্টার্টের পরিবর্তে অ্যাপাচি পুনরায় চালু করার সিদ্ধান্ত নিয়েছে। দুর্ভাগ্যক্রমে এর ফলে সমস্ত সংযোগ একবারে বাদ যায়, যা ভারী বোঝাই সাইটের জন্য খুব খারাপ। এছাড়াও, অ্যাপাচি পুনঃসূচনাও অ্যাপাচি বন্ধ হওয়া এবং শুরু না করার মতো সমস্যা সৃষ্টি করতে পারে (নির্দিষ্ট লোডের পরিস্থিতিতেও), বিশদের জন্য নীচে বাগ লিঙ্কগুলি দেখুন।
নীচের লাইনটি হ'ল লোগ্রোটেট দুর্দান্ত, তবে কিছু প্রোগ্রামের জন্য নির্দিষ্ট সমস্যার দিকে নিয়ে যেতে পারে। ক্রোনোলজ নিয়ে আমার খুব বেশি অভিজ্ঞতা নেই, তবে এটি কোনও পাইপের মাধ্যমে লগগুলি লেখার জন্য, লগ ফাইলগুলি ঘোরানোর সময় কোনও অ্যাপাচি পুনরায় লোডের প্রয়োজন হয় না, যা মূলত উপরে বর্ণিত সমস্তগুলি সমাধান করে।
সম্পর্কিত লোগ্রোটেট / অ্যাপাচি ডিবিয়ান বাগগুলি:
আমি ক্রোনোলজকে পছন্দ করি তবে এটি কোনও দৃ but় পছন্দ নয়।
লোগ্রোটেট যেখানে ক্রোন দ্বারা শুরু হয়েছিল, এবং কোনও সিস্টেম যদি কোনও কারণে যখন ঘোরানো উচিত ছিল তখন ডাউন হয়, তবে আপনার লগ ফাইলগুলি ঘোরানো হবে না।
নামটিতে লগ ফাইলগুলির তারিখ (% Y% m.combined.access.log) থাকাও আমি পছন্দ করি কারণ আমি লগগুলি দীর্ঘ সময় ধরে রাখি। বেশিরভাগ সিস্টেমে, ডিফল্টরূপে, অ্যাপাচি লোগ্রোটেট ফাইলগুলি অ্যাক্সেস.লগ, অ্যাক্সেস.লগ.1 ইত্যাদি নামকরণ করে। লোগ্রোটেটের সাহায্যে লগফাইলে একটি তারিখ ব্যবহার করা সম্ভব হতে পারে তবে শেষবার যখন দেখলাম তখন কীভাবে করব তা অনুধাবন করতে পারিনি।
শুধুমাত্র কখনও লোগ্রোটেট ব্যবহৃত হয়। এটি ডিবিয়ান ডিফল্টরূপে ব্যবহার করে এবং এটি নিয়ে আমার কোনও অভিযোগ কখনও হয়নি।
আমি প্রায় একচেটিয়াভাবে cronolog
ওভার ব্যবহার logrotate
।
logrotate
ডেবিয়ান সহ আসে এবং আমি এটি মেল সার্ভার লগের মতো সিস্টেম পরিষেবাদির জন্য কাজ করার অনুমতি দিই। তবে অ্যাপাচি এবং lighttpd
লগ ফাইলগুলির জন্য, এটি সবই cronolog
।
আমি যে কারণে ব্যবহার করি তার মধ্যে একটি cronolog
হ'ল ওয়েব সার্ভার কনফিগারেশনের লগ-ফাইল লাইনে সমস্ত কনফিগারেশন ঘটে
উদাহরণস্বরূপ একটি lighttpd
কনফিগারেশন ফাইলের মধ্যে আপনি এটি রাখতে পারেন:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%W-access.log"
এবং প্রত্যেকে অন্য কোনও কনফিগারেশন ছাড়াই প্রতি সপ্তাহে নতুন নতুন লগ ফাইল পান। অথবা আপনি সৃজনশীল পেতে পারেন এবং এর মতো কিছু করতে পারেন:
accesslog.filename = "|/usr/bin/cronolog --symlink=/var/log/webs/access.log /var/log/webs/%Y/%m/%a-access.log"
এবং একটি লগ ফাইল পান যা সপ্তাহের দিনগুলিতে ট্র্যাফিক দেখায়। যেমন সমস্ত রবিবার, সমস্ত মঙ্গলবার।
সর্বোত্তম এটি হ'ল সার্ভারটি যে কোনও সময়ের জন্য বন্ধ থাকলেও, পুনরায় চালু করার সময় সঠিক লগ ফাইলটি ব্যবহার করা হবে।