कहां / ऑप्ट पैकेज लॉग लिखना चाहिए?


13

मैं एक कस्टम पैकेज स्थापित कर रहा हूं /opt/package_name, जिसमें FHS द्वारा सुझाए गए सभी कन्वेंशनों के बाद /etc/opt/package_nameऔर इन -स्टैटिक फाइल्स को इन /var/opt/package_name/static/- फाइल्स स्टोर करना है । [ ] [ ] [ ]

मुझे कुछ लॉगफाइल्स को स्टोर करने की भी आवश्यकता है। मैं चाहता हूं कि वे विश्लेषण उपकरणों द्वारा खोजे जा सकें, इसलिए उन्हें एक पारंपरिक स्थान पर भी होना चाहिए। क्या इनमें जाना चाहिए:

  • /var/log/package_name (सिस्टम पैकेज की तरह, भले ही यह एक कस्टम पैकेज हो)
  • /var/opt/package_name/log( /var/optसम्मेलन के बाद - लेकिन क्या यह खोज योग्य है?)
  • कुछ और?

क्या आपके पास विश्लेषण उपकरण का एक उदाहरण है जो स्कैन / var / लॉग को ध्यान में रखता है?
sourcejedi

5
उत्तर क्यों नहीं है?
जोशुआ

जवाबों:


19

मैं उन्हें अंदर /var/log/package_nameरखूंगा; यह बेहतर से कम आश्चर्य के सिद्धांत को संतुष्ट करता है /var/opt/package_name/log। मेरे पास इसके लिए कोई उद्धरण नहीं है; यह केवल उन मैचों से मेल खाता है जहां मैं लॉग के लिए देखूंगा।

मैं अपनी स्वयं की लॉग फ़ाइलों को लिखने से भी पीछे हट सकता हूं, और इसके बजाय syslogएक उपयुक्त टैग और सुविधा के साथ लॉग इन कर सकता हूं ; यदि मैं स्थापित विश्लेषण उपकरणों के साथ स्वच्छ एकीकरण की तलाश कर रहा हूं, तो मुझे विश्वास नहीं होता कि मैं संचार चैनल के लिए बेहतर कर सकता हूं:

  • सूचीबद्ध सूची के रूप में "लॉग विश्लेषण" के साथ हर सामान्य उपकरण पहले से ही देखता है syslog
  • लॉग फ़ाइल रिलीज़ और रोटेशन शब्दार्थ मेरे लिए संभाला जाता है; मुझे यह logrotateबताने के लिए एक तंत्र स्थापित करने की आवश्यकता नहीं है कि मुझे फ़ाइल को जाने और एक नया खोलने के लिए कहा जाए। मुझे logrotateघुमाने के लिए नई फ़ाइलों के बारे में बताने की ज़रूरत नहीं है !
  • केंद्रीय लॉगिंग सर्वर से लॉग लोड करना मेरे लिए संभाला जाता है, अगर साइट इसकी मांग करती है; मौजूदा स्थापित उपकरण जैसे rsyslogजरूरत पड़ने पर उपयोग में होंगे, इसलिए मुझे उस सुविधा को लागू करने पर विचार करने की आवश्यकता नहीं है।
  • प्रवेश फ़ाइलों के आसपास एक्सेस कंट्रोल (POSIX और, उदाहरण के लिए SELinux) पहले से ही संभाले हुए हैं, इसलिए मुझे वितरण-विशिष्ट सुरक्षा शब्दार्थों पर उतना ध्यान देने की आवश्यकता नहीं है।

जब तक मैं अपने लॉग के लिए कुछ कस्टम बाइनरी प्रारूप नहीं कर रहा हूं और तब भी, मैं JSON जैसे syslog- अनुकूल मशीन-पार्स करने योग्य पाठ प्रारूप पसंद करता हूं। मेरे पास अपनी अलग लॉग फ़ाइलों को सही करने के लिए एक कठिन समय है; विश्लेषण उपकरण पहले से ही syslogएक बाज की तरह देखते हैं।


8

जब आप अपने पैकेज कॉन्फ़िगरेशन फ़ाइलों के लिए FHS सम्मेलनों का अनुसरण कर रहे हैं, तो आपको संगत होना चाहिए और लॉग फ़ाइलों को संग्रहीत करना चाहिए /var/opt/package_name/log

FHS बताता है:

/ ऑप्ट में संकुल का चर डेटा / var / ऑप्ट / में स्थापित किया जाना चाहिए

और यह भी बताता है

कोई अन्य पैकेज फ़ाइलें / ऑप्ट, / var / ऑप्ट, और / etc / ऑप्ट पदानुक्रम के बाहर मौजूद नहीं हो सकती हैं सिवाय उन पैकेज फ़ाइलों के जिन्हें फ़ाइल सिस्टम ट्री के भीतर विशिष्ट स्थानों में ठीक से काम करने के लिए निवास करना चाहिए। उदाहरण के लिए, डिवाइस लॉक फ़ाइलों को / var / लॉक में रखा जाना चाहिए और डिवाइस / dev में स्थित होना चाहिए।

लॉग फ़ाइल के अंतर्गत /var/optहोने से पैकेज को ठीक से काम करने से नहीं रोका जा सकता है इसलिए /var/logइसके बजाय स्पष्ट रूप से मानक का उल्लंघन किया जाता है।

यह स्पष्ट नहीं है कि आपके द्वारा "क्या यह खोज योग्य है?" जैसा कि आप कस्टम लॉग को वैसे भी कस्टम टूल द्वारा हैंडल किए जाने की संभावना रखते हैं, लेकिन मान लें कि एक जेनेरिक टूल को उन्हें संसाधित करने के लिए डिज़ाइन किया गया है, तो यह आपके जैसे अनब्लॉक पैकेज के लिए मानक स्थान का पता लगाना चाहिए।

ध्यान दें कि syslogलॉगिंग कॉन्फ़िगरेशन को केंद्रीयकृत करने और ट्यून करने के लिए एक उपयोगी सुविधा है लेकिन लॉग को स्टोर करने के लिए समस्या के बारे में पूरी तरह से हल नहीं करता है जब आपको इसे अच्छी तरह से ज्ञात पथ के साथ सादे फ़ाइलों में करना होगा। एप्लिकेशन लॉग डायरेक्टरी में कभी-कभी संग्रहित कुछ फाइलों को एप्लिकेशन या स्वयं संबंधित प्रोग्रामों द्वारा अपने अपेक्षित पथ का उपयोग करके एक्सेस करने के लिए डिज़ाइन किया जाता है, उदाहरण के लिए एक प्रोसेस आईडी स्टोर करने वाली फ़ाइल, इसलिए syslogउनके लिए काम नहीं करेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.