Apache लॉग फ़ाइलों का विश्लेषण करने के लिए कमांड लाइन टूल [बंद]


16

मेरे पास अपाचे लॉग फ़ाइलों का एक गुच्छा है जिसका मैं विश्लेषण करना चाहूंगा। मैं एक ऐसे उपकरण की तलाश कर रहा हूं जिसमें ज्यादा सेटअप की आवश्यकता न हो; कुछ ऐसा जो मैं अपने लाइव वेब सर्वर पर गड़बड़ किए बिना कमांड लाइन के माध्यम से लॉग रन कर सकता हूं।

कोई सिफारिशें?


और जिस OS का आप उपयोग करने जा रहे हैं वह है ...
Izzy

लिनक्स या
मैकओएसएक्स

1
"विश्लेषण" ज्यादा नहीं कहता है। तुम क्या करने की कोशिश कर रहे हो? एक स्ट्रिंग के लिए देखो, क्रंच नंबर?
डेविड

goaccess.prosoftcorp.com स्वतंत्र और भयानक है, यहाँ पाया गया: webmasters.stackexchange.com/questions/4852/…
jitbit

जवाबों:


7

जबकि उपर्युक्त उपकरण सभी शांत हैं मुझे लगता है कि मुझे पता है कि प्रश्नकर्ता क्या पूछ रहा था। यह अक्सर मुझे पीड़ा देता है कि मैं जिस तरह से अन्य फ़ाइलों के साथ कर सकता हूं, मैं एक एक्सेस-लॉग से जानकारी नहीं खींच सकता।

यह डंब एक्सेस लॉग फॉर्मेट के कारण है:

127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"

उन्होंने तारीख के लिए [] और अन्य चीजों के लिए "" का उपयोग क्यों किया? क्या उन्हें लगता है कि हमें नहीं पता था कि एक तारीख 4 क्षेत्र में थी? यह अविश्वसनीय रूप से निराशाजनक है।

इसके लिए अभी सबसे अच्छा उपकरण है gawk:

gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'

इससे ऊपर के डेटा पर आपको मिलेगा:

"GET /manual/elisp/index.html HTTP/1.1"

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

FSPAT बनाने को यहाँ परिभाषित किया गया है: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html

इसलिए आप एक gawk बनाने के लिए एक उपनाम सेट कर सकते हैं जो अपाचे लॉग को पार्स कर सकता है:

alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq

मेरे लिए यह बनाया:

"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"

और निश्चित रूप से लगभग कुछ भी अब संभव है।

का आनंद लें!


1
2 टिप्पणी: दिनांक वास्तव में फ़ील्ड 4 में नहीं है, लेकिन फ़ील्ड 4 + 5 ^ ^ (GMT से शिफ्ट के बिना, तिथि का बहुत कम मूल्य है)। और एक एक्सेस_लॉग का अधिकांश समय 12 फ़ील्ड्स के रूप में होता है (वास्तव में, 12 से अधिक फ़ील्ड हो सकते हैं, क्योंकि 12 वें http एजेंट है, जिसमें इसके नाम में भी कई स्थान हो सकते हैं .. पहले 11 फ़ील्ड पार्स करना आसान है और 12 वां क्षेत्र (और शायद अधिक) शेष http एजेंट होना चाहिए)। तो आप बस: awk '($9 == 200) {print $6,$7,$8}'अपने उदाहरण में उसी चीज़ को प्रदर्शित कर सकते हैं । वहां FPAT का उपयोग करने की आवश्यकता नहीं है (भले ही यह विधि अन्य मामलों में उपयोगी हो सकती है)
Olivier Dulac

मुझे लगता है कि आप आलोचना कर रहे हैं। दिनांक 4 फ़ील्ड में है यदि आप फ़ील्ड को [] द्वारा बाध्य मानते हैं। अधिकांश समय लॉग फ़ाइल एक समय क्षेत्र में होती है, इसलिए ज़ोन आवश्यक नहीं है। उदाहरण दिखाने का मतलब यह नहीं था कि कुछ इस तरह से संभव था, लेकिन सामान्य चाल दिखाने के लिए।
निक फेरियर

1
मैं बहुत आश्चर्यचकित हूं ... मैंने बिल्कुल भी "आलोचना नहीं" की, केवल 2 टिप्पणियों की ओर इशारा किया (और कहा कि वास्तव में आपके द्वारा उपयोग की जाने वाली विधि अन्य मामलों में उपयोगी हो सकती है, लेकिन यहां बस जरूरत नहीं है) ...
ओलिवियर दुलक

6

वोटो शांत है। अन्य उपयोगिताएँ भी हैं। अक्सर, मैं बैश, sed, और awk का उपयोग करके लॉग को पार्स करूँगा।


wtop, और विशेष रूप से उनके लॉग एनालाइज़र लॉग्रेप महान हैं, एक बार जब आप अपने लॉग फॉर्मेट में .conf को अनुकूलित करते हैं, तो आपको जो चाहिए वह प्राप्त करने के लिए एक तेज़ तरीका प्रदान करेगा (शीर्ष यूआरएल, ट्रैफ़िक, आदि ..)
aseques

6

अपाचेतोप बहुत शांत है; यह लाइव आँकड़े प्रिंट करता है। आप इसे लेकर दौड़ें

apachetop -f /var/log/apache2/www.mysite.com.access.log

इसे डेबियन / उबंटू में स्थापित करने के लिए:

apt-get install apachetop

या स्रोत से: https://github.com/JeremyJones/Apachetop


1

आप किस तरह का आउटपुट चाहते हैं?

अगर आप सिर्फ चीजों को गिनना चाह रहे हैं तो कुछ logfile.txt grep करें wc -l बेहतरीन काम करता है। यदि आप सुंदर रेखांकन चाहते हैं ... इतना नहीं।


खिड़कियों के लिए खोज आदेश की नकल करता है कुछ हद तक grep।
क्रिस नावा

0

यदि आपके पास एक विंडोज़ वर्कस्टेशन है जिसे आप उपयोग कर सकते हैं तो लॉगरपर्स पसंद का उपकरण है!


0

एनालॉग बॉक्स से बाहर अच्छी तरह से काम करता है और इसके लिए बहुत सारे सेटअप की आवश्यकता नहीं होती है। logwrangler एक ऐसा पैकेज है जो एनालॉग के साथ काम करता है जो अच्छे आउटपुट उत्पन्न करता है और इसके लिए बहुत कम सेटअप की आवश्यकता होती है।


0

एक कमांड लाइन टूल का उपयोग करने के बजाय मैं Apache Logs Viewer को आज़माने के लिए सॉकेट करूंगा। यह एक फ्री टूल है जो अपाचे लॉग फाइल की निगरानी और विश्लेषण कर सकता है। यह मक्खी पर कुछ बहुत अच्छा ग्राफ और रिपोर्ट उत्पन्न कर सकता है।

Http://www.apacheviewer.com से अधिक जानकारी

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