Awstats के लिए एकाधिक gz लॉग फ़ाइलों का विश्लेषण कैसे करें?


21

मैं awstats के लिए बहुत नया हूँ और मेरे apache वेबसर्वर पर Awstats को nginx एक्सेस लॉग्स का विश्लेषण करने के लिए कॉन्फ़िगर किया है (nginx webserver मेरे django ऐप के लिए है), मैं आंकड़े लेने में सक्षम हूं LogFile=/var/log/nginx/access.logलेकिन मैं कैसे कई लॉग्स का उपयोग कर सकता हूं जो कि gzip प्रारूप हैं। जैसे access.log.1.gz ... access.log.40.gz। मेरे पास विश्लेषण करने के लिए बहुत सारे लॉग हैं।

जवाबों:


29

आप शायद यहाँ क्या करना चाहते हैं, इन सभी लॉगफ़ाइल्स का एक बार विश्लेषण करना है, उसके बाद से केवल वर्तमान लॉगफ़ाइल्स का विश्लेषण करते रहें।

सबसे सरल बात यह है कि उन सभी फाइलों को एक ही फाइल में अनज़िप कर दें, फिर एक बार उस पर रनस्टैट्स चलाएं, फिर उस समय से आपके एक्सेस.लॉग फ़ाइल पर awstats को इंगित करें।

awstats में सामान्यतः एक स्क्रिप्ट होती है, जिसे logresolvemerge.pl कहा जाता है, जो संपीड़ित फ़ाइलों को पढ़ सकता है, और उन्हें जागृत करने के लिए उचित रूप से विलय कर देगा।

अपने सभी मौजूदा लोगों को मर्ज करने के लिए, दौड़ें

perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog

इसमें शायद थोड़ा समय लगेगा।

आप तब इस फ़ाइल पर एक बार चला सकते हैं awstats (उचित रूप से LogFile सेट करें)।

तब से, आपके पास सबसे हाल ही में लॉगफ़ाइल पर चलने वाली awstats होनी चाहिए - जो कि आपका वर्तमान कॉन्फ़िगरेशन कर रहा है।

इस पर निर्भर करते हुए कि आप कितनी बार नगाटेक्स लॉगफ़ाइल्स को घुमाने के लिए आवारागर्दी चला रहे हैं, आप इसे चालू लॉगफ़ाइल और पिछले दोनों को पढ़ना चाह सकते हैं। (उदाहरण के लिए, यदि आप 12 में हर दिन नंगेक्स लॉगफ़ाइल्स को घुमाते हैं, लेकिन क्या 1 पर हर दिन awstats चलते हैं, तो जब भी आवारागर्दी लॉगफ़ाइल चलाता है, उसमें केवल वही होगा जो अंतिम रोटेशन के बाद से लिखा गया है। आप इस तरह अपने LogFile कमांड के अंदर logresolvemerge.pl का उपयोग कर सकते हैं:

LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.1.gz |"

यह awstats को logresolvemerge.pl कमांड को दो logfiles के मापदंडों के रूप में चलाने के लिए कहता है, और awstats उस स्क्रिप्ट के आउटपुट में पढ़ेगा (यह वही है जो पाइप करता है)


मुझे नहीं पता था कि इनस्टैट स्क्रिप्ट कॉन्फ़िगर फ़ाइल में पाइप को संभाल सकती है। नाइस + 1।
d -_- b

सहमत - logresolvemerge.plआउटपुट को जागृत करने के लिए पाइपिंग एक महान समाधान है।
Jez

पाइपिंग के बारे में, देखें stackoverflow.com/questions/13832701/…
brauliobo

7

वैकल्पिक रूप से, आप एक वास्तविक समय लॉग विश्लेषक, जैसे कि GoAccess का उपयोग कर सकते हैं। यह वास्तव में तेज़ है और आपको किसी भी लॉग को अनज़िप करने की आवश्यकता नहीं है।apache & nginx

http://goaccess.prosoftcorp.com/

zcat -f access.log* | goaccess -a -s -b

या

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