2008-09-04 18 views
59

मुझे एक अपाचे सर्वर मिला है जिसमें 600 एमबी टॉपिंग है जो एक एक्सेस लॉग फ़ाइल है। यह फ़ाइल को खोजना या इसे पार्स करना वाकई मुश्किल है।
अपाचे के लिए कौन सा सॉफ़्टवेयर या मॉड्यूल उपलब्ध है जो इसे और अधिक प्रबंधनीय बनाने के लिए मेरी एक्सेस फ़ाइल की दैनिक प्रतिलिपि बना देगा?अपाचे लॉग फ़ाइलों को घुमाने के लिए सबसे अच्छा तरीका

+7

भाग्यशाली आप - जिसकी मुझे सामना करना पड़ रहा है 2.4 गीगाबाइट्स :( –

+0

आप यह इंगित कर सकते हैं कि आप वास्तव में अपाचे मॉड्यूल की तलाश में हैं या कुछ ऐसा है जो नियोजित ओएस पर निर्भर करता है, जैसे कि लॉग्रोटेट या क्रॉन (पहले से ही उल्लेख किया गया है उत्तर)। इससे जवाब देने में मदद मिल सकती है - मेरी राय में - सरल प्रश्न। – Kariem

+1

14 जीबी यहाँ! प्रविष्टियों के एक साल से अधिक। – Liam

उत्तर

45

क्या आपने logrotate पर देखा है - यह संभवतः यह प्राप्त करने का सबसे सरल, सबसे व्यापक रूप से उपलब्ध और अच्छी तरह से समझी गई विधि है। यह अत्यधिक विन्यास योग्य है और आपको जो चाहिए वह 9 0% करेगा।

+15

ब्रायन के उत्तर जैसे उपयोग उदाहरण वास्तव में सहायक होंगे। धन्यवाद। – Ryall

+1

'logrotate' के नकारात्मक पक्ष यह है कि जब तक प्रक्रिया पुनरारंभ नहीं हो जाती तब तक लॉगफाइल पुराने फ़ाइल नाम पर लिखा जाना जारी रहेगा। – MarkHu

6

लॉग्रोटेट शायद सबसे अच्छा समाधान है। अपने सभी लॉग के लिए सेटिंग्स को बदलने के लिए फ़ाइल '/etc/logrotate.conf' का प्रयोग करें। आप वैन 'साप्ताहिक' से 'दैनिक' बदलते हैं, इसलिए लॉग हर दिन घुमाए जाते हैं। साथ ही, आप 'संपीड़न' जोड़ना चाहेंगे ताकि अभिलेखागार संपीड़ित हो जाएं। यदि आपको पुराने लॉग की परवाह नहीं है, तो आप घूर्णन 'घुमाने 4' को कुछ कम करने के लिए सेट कर सकते हैं।

+0

मैं चिंतित हूं - इस और अपाचे-आपूर्ति 'rotatelogs' के बीच अंतर क्या हैं? और अपाचे मैनुअल में लॉग्रोटेट का उल्लेख क्यों नहीं किया जाता है (फिर भी यह क्रोनोलॉग का संदर्भ देता है)? –

+1

बस एक धारणा: ऐसा इसलिए हो सकता है क्योंकि सभी सिस्टम अपाचे पर लॉग्रोटेट उपलब्ध नहीं है। मैंने इसे केवल लिनक्स इंस्टॉलेशन पर इस्तेमाल किया है, जहां इसका उपयोग सभी सिस्टम लॉग रोल करने के लिए किया जाता है, और निश्चित रूप से अपाचे की लॉग फाइलें। – Kariem

26

मैं Cronolog का बड़ा प्रशंसक हूं। बस इसके माध्यम से अपने लॉग स्थापित करें और पाइप करें। दैनिक लॉग रोटेशन के लिए, कुछ इस तरह काम करेगा:

ErrorLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/error.log" 
CustomLog "|/usr/bin/cronolog /path/to/logs/%Y-%m-%d/access.log" combined 

सुंदर काम, और एक बार स्थापित है, आसान (मेरे अनुभव में) logrotate से।

+2

जब मैंने cronolog का उपयोग किया तो मुझे कुछ समस्याएं आईं जब लॉग फ़ाइल 2 जीबी डेटा तक पहुंच गई। उस बिंदु पर जब तक मैंने फ़ाइल को हटाया/नाम नहीं दिया, तब तक कोई और लॉगिंग और अपाचे रुक गया था। तब से मैं लॉग्रोटेट का उपयोग कर रहा हूं और सब ठीक है :) – maxgalbu

11

विंडोज के लिए वास्तविक आदेश है, जो ऑनलाइन खोजने के लिए काफी मुश्किल है है:

CustomLog '|" "*Apache-Path/bin/rotatelogs.exe" 
    "**Apache-Path*/logs/backup/internet_access_%d-%m-%y.log" 86400' combined 

कहाँ "internet_access" सा नाम आप अपनी फ़ाइलों के लिए चुनते हैं, 86400 से एक में सेकंड की संख्या है दिन। आपको अपाचे-पथ को उस प्रासंगिक निर्देशिका में बदलने की आवश्यकता है जिसे आपने अपाचे को इंस्टॉल किया है।

+0

पथों के चारों ओर उद्धरण लपेटने की कोशिश करने के बजाय, मैंने उन्हें छोटा कर दिया, जैसे "सी:/प्रोग्रा ~ 1/..." इसके अलावा, यह लिया गया थोड़ी देर, लेकिन मुझे अंततः एहसास हुआ कि मुझे पथों में आगे की कमी की जरूरत है। – Pedro

+1

पथ में बैकस्लैश का उपयोग न करें, यह काम नहीं करेगा! वैकल्पिक रूप से, आप [mod_log_rotate] (http://www.sitebuddy.com/mod_log_rotate) का उपयोग कर सकते हैं। इस मॉड का उपयोग विंडोज के तहत cmd.exe मुद्दों को भी रोकता है। – s106mo

+0

लॉग रोटेशन को लागू करने के लिए मुझे Apache2.4 (विंडोज 8) में कुछ समस्याएं थीं। लेकिन नीचे के रूप में तय किया गया। httpd.conf फ़ाइल में निम्न पंक्ति ServerRoot "c:/Apache24" जोड़ें "। | Bin/rotatelogs लॉग/access.log% Y-% m-% d 86400" # अपाचे स्थापना पथ #CustomLog आम # यह उपरोक्त काम नहीं करता है, लेकिन जब .exe जोड़ा गया, यह काम किया। कस्टमलॉग "| बिन/rotatelogs.exe लॉग/access.log।% वाई-% एम-% डी 86400" सामान्य – user292049

1

windows os पर rotatelog.exe या cronolog.exe। वे http.conf में पाइप कमांड में उपयोग किए जाते हैं केवल प्रवेश लॉग रोटेशन के लिए apache के लिए Mod_log_rotate अतिरिक्त मॉड्यूल केवल यूनिक्स ओएस के लिए लॉग्रोटेट करें।

0

मैं एक मॉड्यूल है कि बाहरी पाइप आदि की आवश्यकता के बिना आप के लिए यह करता है:

http://www.poptart.org/bin/view/Poptart/ModAutorotate

मैं अपाचे में जोड़ने के लिए कोशिश की है संग्रह मॉड्यूल लेकिन उस के लिए टूट गया लगता है थोड़ी देर

2

CustomLog "| bin/rotatelogs/var/लॉग/लॉगफ़ाइल 5M" आम

यह विन्यास लॉगफ़ाइल जब भी यह 5 मेगाबाइट के आकार तक पहुँच जाता है रोटेट किए जाएंगे।

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M" 

यह अपाचे लॉग को पुनर्निर्देशित करने का सबसे अच्छा तरीका होगा। Httpd के साथ मोड संकलित करने की कोई ज़रूरत नहीं है।

+0

पुरानी फाइलों को हटाने या उन्हें ओवरराइट करने के लिए कुछ rotatelogs विकल्प है? – Tobia