मैं कैसे देख सकता हूं कि प्रत्येक अपाचे वर्चुअल होस्ट कितना बैंडविड्थ का उपयोग कर रहा है?


24

मेरे पास अपाचे कई वर्चुअल होस्ट की सेवा के लिए है, और मैं यह देखना चाहूंगा कि प्रत्येक साइट कितना बैंडविड्थ का उपयोग करती है। मैं देख सकता हूं कि पूरा सर्वर कितना उपयोग करता है, लेकिन मैं अधिक विस्तृत रिपोर्ट चाहता हूं।

ज्यादातर चीजें जो मुझे पता चली हैं, वे आभासी मेजबानों के लिए बैंडविड्थ को सीमित करने के लिए हैं, लेकिन मैं ऐसा नहीं करना चाहता हूं; मैं बस यह देखना चाहता हूं कि कौन सी साइट्स कितने बैंडविड्थ का उपयोग कर रही हैं।

यह बिलिंग उद्देश्यों के लिए नहीं है, केवल जानकारी के लिए।

क्या एक अपाचे मॉड्यूल है जिसका मुझे उपयोग करना चाहिए? या ऐसा करने का कोई और तरीका है?

जवाबों:


23

आपके द्वारा बाद की जानकारी लॉग में है, इसलिए आपको AWStats जैसे एक लॉग विश्लेषक को देखना चाहिए । दूसरा विकल्प Google Analytics का उपयोग करना है।

लॉग का विश्लेषण करने के लिए, यहां एक मोटा उदाहरण दिया गया है, जिसका उपयोग आप यह बताने के लिए कर सकते हैं कि कमांड से लॉग फ़ाइल की रिपोर्ट में कितने एमबी ट्रैफ़िक है:

cat /var/log/apache/access.log | awk '{SUM+=$10}END{print SUM/1024/1024}'

5
बिल्ली का बेकार उपयोग: awk '...' /var/log/apache/access.log भी काम करता है
marco

क्या इंटरनेट (आउटबाउंड ट्रैफ़िक) के लिए कुछ वेब पेज (ओं) से भेजे गए ट्रैफ़िक की गणना का सुझाया तरीका (ओं) का होगा?
खालिद

2
हाँ। लेकिन सावधान रहें कि आप दुर्घटना से प्रतिक्रिया कोड का योग नहीं करते हैं। मुझे एहसास हुआ कि मेरी गिनती बहुत कम थी क्योंकि मेरे लिए $ 10 http प्रतिक्रिया कोड है। मेरे अपाचे कस्टम लॉग के लिए मुझे इसके बजाय {SUM + = $ 11} का उपयोग करने की आवश्यकता थी।
फिल


3

मेरा सुझाव है कि आप अद्भुत अपाचे लॉगिंग तंत्र और इसके कम ज्ञात % I और % O झंडे का उपयोग करें:

प्रारूप को परिभाषित करें:

LogFormat "% t% a% v% U% q% I% O" IOFormat

अपने मुख्य httpd.conf में इसका उपयोग करें :

CustomLog /var/log/apache2/all-bw.log IOFormat

मान शायद सभी हेडर सूचनाओं का लेखा-जोखा नहीं कर रहे हैं, लेकिन वर्चुअलहॉस्ट ट्रैफ़िक का सटीक विचार रखने के लिए काफी सटीक हैं।

हर n मिनट (उदाहरण के लिए 5) वर्चुअल होस्ट प्रति एग्री करने के लिए एक पर्ल स्क्रिप्ट के साथ लॉग को स्कैन करें और इसे कैक्टि पर भेजें।

ये झंडे mod_logio द्वारा प्रदान किए गए हैं जो संभवतः आपकी अपाचे (जैसा कि यह मेरे डेबियन के अपाचे के लिए है) में बनाया गया है।


2
अपाचे 2.0 प्रलेखन में उद्धृत के रूप में हम, यह भी ध्यान दें कि httpd 2.0 में, 1.3 के विपरीत,% b और% B प्रारूप स्ट्रिंग क्लाइंट को भेजे गए बाइट्स की संख्या का प्रतिनिधित्व नहीं करते हैं, लेकिन बस HTTP प्रतिक्रिया के बाइट्स में आकार ( उदाहरण के लिए, यदि कनेक्शन निरस्त है, या यदि एसएसएल का उपयोग किया जाता है तो) अलग होगा। Mod_logio द्वारा प्रदान किया गया% O प्रारूप नेटवर्क पर भेजे गए बाइट्स की वास्तविक संख्या को लॉग करेगा।
29

2

यदि आप Apache के साथ awstats का उपयोग करने का निर्णय लेते हैं, तो बॉक्स से बाहर यह आपको आपके संपूर्ण सर्वर के लिए एकत्रित बैंडविड्थ दिखाएगा।

प्रति वर्चुअल होस्ट आधार पर बैंडविड्थ देखने के लिए, मैं व्लॉगर को स्थापित करने की सलाह देता हूं

व्लॉगर वास्तव में आपके प्रत्येक वर्चुअल होस्ट के लिए अपाचे एक्सेस लॉग जानकारी इकट्ठा करेगा जिसे आपने अलग-अलग निर्देशिकाओं / फाइलों में ऐसा करने के लिए सेट किया है।

उदाहरण के लिए यदि आपकी Apache लॉग फ़ाइल / var / log / apache2 में है, तो विशिष्ट vlogger स्थापना आपके वर्चुअल होस्ट के लिए कुछ इस तरह का निर्माण करेगी (जैसे vhost1.com vhost2.com):

/var/log/apache2/vhost1.com/access.log
/var/log/apache2/vhost2.com/access.log

Vlogger आपको आपके लिए इन लॉग को घुमाने का विकल्प देता है, एक्सेस लॉग फ़ाइल के नामकरण टेम्पलेट को बदलने का एक तरीका प्रदान करता है (जैसे कि एक तारीख जोड़ें), और दावा करता है कि यह अपाचे से बेहतर बड़ी संख्या में लॉग फ़ाइलों को संभालता है।

इसका एक पक्ष यह है कि आपके पास अब एक समग्र सर्वर दृश्य नहीं होगा (आपको अलग से लॉग एकत्र करने की आवश्यकता होगी या शायद एक अतिरिक्त एपाचे सेटिंग या शायद किसी अन्य विधि का उपयोग करें?)।

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


1

Xerxes द्वारा प्रस्तावित लॉग प्रारूप को पार्स करने के लिए यहां कुछ रेगेक्स है।

\ [([0-9] +) / (\ w +) / ([0-9] {4}) [^ \]] + \] \ s (\। घ {1,3} \ घ {1, 3}। \ घ {1,3}। \ घ {1,3}) \ s ([^ /] +) [^ \ रों] \ s (\ d +) \ s (\ d +)

उदाहरण लॉग:

[12 / जनवरी / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 581 669 [12 / जनवरी / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com / 624 747 [12 / जनवरी / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /icons/blank.gif 687 186 [12 / जनवरी / 2011: 14: 25: 04 +0000] 157.157। 12.206 files.hjaltijakobsson.com /icons/compressed.gif 693 188 [12 / जनवरी / 2011: 14: 25: 04 +0000] 157.157.12.206 files.hjaltijakobsson.com /favicon.ico 592 512

मेल खाता है:

Subpattern 1 (महीने का दिन): 12
Subpattern 2 (abbr। माह): Jan
Subpattern 3 (वर्ष): 2011
Subpattern 4 (आगंतुक होस्ट): 157.157.12.206
Subpattern 5 (वर्चुअल होस्ट): फाइलें
.hjaltijakobsson.com Subpattern 6 ( इनकमिंग बाइट्स): 581
सबपैटर्न 7 (आउटगोइंग बाइट्स): 669

चीयर्स।


1

स्वीकार किए गए उत्तर पर थोड़ा ट्विस्ट यह मानते हुए कि सर्वर पर वास्तव में कई vhosts है (और इसलिए कई site.com.access_log_s)। यह प्रत्येक vhost को सॉर्ट और लिस्ट करेगा

for f in *.access_log ; do echo `awk '{SUM+=$10}END{print SUM/1024/1024}' $f` $f ; done | sort -rn | more

और gzipped लॉग की एक निर्देशिका के लिए

for f in *.access_log.*.gz ; do echo `zcat $f|awk '{SUM+=$10}END{print SUM/1024/1024}'` $f `stat -c%z $f`; done | sort -rn | more 

0

हम्म, आप बाद के रिपोर्टिंग के लिए पैकेट लॉग करने के लिए IPTables और स्ट्रिंग मिलान के साथ बुराई प्राप्त कर सकते हैं। केवल गैर एसएसएल कनेक्शन के लिए काम करेगा।

या कुछ प्रोटोकॉल और सत्र के बारे में पता है, जैसे Snort उपयोग में जूता हो सकता है ...


0

सही बात। लॉग को फ़िल्टर करना एक अच्छा विचार है। मैं फ़ाइलों को डाउनलोड करते समय अपने अपाचे सर्वर की बैंडविड्थ भी प्राप्त करना चाहता हूं।

LogFormat "%h %l %t %u \"%r\" %>s %b/%D**" combined

आउटपुट %bऔर %dआउटपुट की गणना करता है , जो आपको वर्तमान की बैंडविड्थ देगा।

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