জার্নাল্ডের সাথে প্রতি ইউনিট লগ স্টোরেজ নীতিটি কীভাবে কনফিগার করবেন?


14

আমার একটি বিশেষ পরিষেবা রয়েছে, এটি লগ বিরল, তবে গুরুত্বপূর্ণ তথ্য। আমি কয়েক মাস আগে এটি সেট আপ করেছি এবং আজ আমি journalctl -n 50 --unit=my-serviceকেবল দৌড়েছি সেখানে কোনও প্রবেশিকা নেই find

বেশিরভাগ ইউনিটগুলির জন্য আমি এই আচরণে পুরোপুরি খুশি - আমার এখনই কিছু ঘটেছিল যা এখনই ঘটেছিল (বা কিছু দিন আগে বেশিরভাগ ক্ষেত্রে), এবং আমি কয়েক মাস পুরানো রেকর্ডের যত্ন নিই না।

তবে, journaldকোনও একক নির্দিষ্ট ইউনিটের রেকর্ডগুলির জন্য একটি পৃথক স্টোরেজ এবং ধরে রাখার নীতি রাখার উপায় আছে কি ? আমি 5 বছরের জন্য এই বিশেষ লগগুলি ধরে রাখতে চাই - বলুন আকারটি যতই লাগবে না। অন্যান্য ইউনিটের লগগুলি এ দ্বারা প্রভাবিত হওয়া উচিত, এবং তাদের বিদ্যমান আচরণ বজায় রাখা উচিত।

আমি একরকম হারিয়ে যাওয়া বোঝাপড়া করছি journald.conf(5)এবং প্রতি ইউনিট কনফিগারেশনটি যখনই পাওয়া সম্ভব তখনই তা বুঝতে পারি না। যদি এটি হয় - একটি সংক্ষিপ্ত উদাহরণের প্রশংসা করবে - আমার কোন ফাইলটি সম্পাদনা করা / তৈরি করা উচিত এবং আমার কী লিখতে হবে। অথবা, আপনি যদি নিশ্চিতভাবে জানেন যে এটি অবশ্যই কার্যকর নয় - এটিও একটি ভাল উত্তর হবে।

দ্রষ্টব্য: আমার বিশেষ ক্ষেত্রে আর্চ লিনাক্স হোস্ট জড়িত, তবে আমি অনুমান করি এটির বেশি কিছু হওয়া উচিত নয়।


এই বৈশিষ্ট্যটি জার্নাল্ডে
swoop81

উত্তর:


7

দেখে মনে হচ্ছে যে আমি সম্ভবত জার্নাল্ডের ভাগ্যের বাইরে আছি। যদি না আমি একটি স্বতন্ত্র "দীর্ঘমেয়াদী স্টোরেজ" জার্নাল তৈরির উপায় খুঁজে বের করি (যেমন বর্তমানে প্রতি ব্যবহারকারী অনুসারে বিভিন্ন জার্নাল রয়েছে) তবে আমি নিশ্চিত নই যে এটি একটি কার্যকর এবং বুদ্ধিমান পদ্ধতির। আমার ধারণা, একটি সিসলোগড (এবং লোগ্রোটেট) স্থাপন করা আরও সহজ হবে।

লেনার্ট নিজেই নিশ্চিত করেছেন, বৈশিষ্ট্যটি 2014 এর শেষের দিকে উপস্থিত ছিল না

এবং মনে হয় এটি এখনও এখানে নেই। কমপক্ষে, "জার্নালড" লাইনটি প্রতি অগ্রাধিকার এবং প্রতি-পরিষেবা প্রতিরোধের সময়গুলি যখন ঘোরানো / ভ্যাকুয়ামিংয়ের অনুমতি দেয় তখনও টোডো ফাইলে থাকে (২০১-0-০7-১১-এ সংশোধনের লিঙ্ক)।


3
এটি দেখতে খুব বড় একটি ডিজাইনের ত্রুটির মতো, প্রায় পঙ্গু। বিশেষত যদি কেউ খুব চ্যাটি ইউনিটগুলির কমপক্ষে রক্ষণাবেক্ষণ বা লগ স্তর হ্রাস করতে চায়, যা লগগুলিকে আটকে দেয়।
প্রাচ্য

1
যে কেউ এই প্রশ্নে হোঁচট খাচ্ছে তার জন্য, টোডো
তে

1
এটা কিছু আকর্ষণ পেতে একটি প্রয়াস আমি এটা প্রকল্পের সঙ্গে একটি ইস্যু হিসেবে উত্থাপিত - github.com/systemd/systemd/issues/9519
slm

1

লগ ফাইল উত্পন্ন করার জন্য এটি উল্লেখযোগ্যভাবে সহজ। ডিফল্টরূপে জার্নাল্ডে সমস্ত লগইন সিসলগেও যায় এবং এই ডিফল্টটি তার জায়গায় হওয়া দরকার। Syslog এ প্রবেশ করা প্রবেশগুলি কীভাবে পরিচালনা করা হয় তা RSSyslog.conf নিয়ন্ত্রণ করে। এছাড়াও SyslogFacilityডিফল্ট daemonহিসাবে কোনও সার্ভিসের জন্য লগ এন্ট্রি সাধারণত daemon.logফাইল মধ্যে শেষ হয় /var/log

আপনার পরিষেবা ফাইলটিতে [পরিষেবা] বিভাগে যুক্ত করুন

SyslogFacility=local2

(সংখ্যাটি 0 ও 7 এর মধ্যে হতে পারে) https://www.freedesktop.org/software/systemd/man/systemd.exec.html

/Etc/rsyslog.conf সংশোধন করুন (সংশোধন করার জন্য বিদ্যমান লাইনগুলি সন্ধান করুন) যাতে স্থানীয় 2 নির্দিষ্ট ফাইলটিতে (প্রথম লাইন) লগইন হয় local2.noneএবং প্রদর্শিতভাবে যোগ করে (এটি ইতিমধ্যে জার্নালে রয়েছে) সিসলোগে লগইন হয় না ।

local2.*                        /var/log/your-service-name.log
*.*;auth,authpriv.none,local2.none          -/var/log/syslog

[সম্পাদনা] আপনাকেও সমস্ত ক্যাচটি সংশোধন করতে হবে

*.=info;*.=notice;*.=warn;\
        auth,authpriv.none;\
        cron,daemon.none;\
        mail,news.none,local2.none      -/var/log/messages

অবশ্যই প্রকৃত ধারণাগুলি লোগ্রোটেট দ্বারা করা দরকার।

আছে HTH

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.