मैं अपने अपाचे वेबसर्वर पर वर्तमान कनेक्शन कैसे देख सकता हूं?


37

मैं Webmin / Virtualmin की मदद से स्थापित एक बुनियादी LAMP में अपाचे का उपयोग करते हुए काफी सारे वर्चुअल होस्ट की मेजबानी कर रहा हूं। मैं एक शीर्ष जैसे टूल की तलाश कर रहा हूं जिसमें मैं वर्तमान कनेक्शन की निगरानी कर सकता हूं। लगता है कि वर्चुअल होस्टिंग पार्ट मुझे यहां परेशान कर रहा है। यहाँ मैंने कोशिश की है:

  • netstat- मैं कनेक्शन देख सकता हूं, लेकिन वे मुझे दिखाते हैं जैसे कि वे सभी मेरे प्राथमिक डोमेन का उपयोग कर रहे हैं, जैसे mydomain.com:www
  • iftop- मुझे यह बहुत पसंद है, लेकिन जैसा कि नीचे है netstat: वर्चुअल होस्ट नहीं दिखाता है।
  • apachetop- लगता है कि मेरे सभी आभासी मेजबानों के लिए जानकारी नहीं दिखा रहा है। मैं कस्टम लॉग फ़ाइलों को अलग करने के लिए लॉग इन कर रहा हूं, जिस पर मुझे संदेह है कि यह काम क्यों नहीं करता है।
  • ntop, darkstat, MRTG, bwm-ng, IPTraf- या तो काम नहीं कर रहा।

इसलिए, मूल रूप से, मैं वर्तमान आउटपुट के समान कुछ खोज रहा हूं netstat, लेकिन वर्चुअल होस्ट को शामिल करने के लिए अनुरोध अनुरोध के लिए है, जैसे avirtualsite.com:www:।


मैं VirtualMin / Webmin के साथ उपयोग करने के लिए Apache2 - डिफ़ॉल्ट LAMP इंस्टॉलेशन का उपयोग कर रहा हूं - मैंने अभी पाया apachetop- लेकिन वह केवल उस फ़ाइल की निगरानी करता है जो मैं प्रदान करता हूं .. सभी सर्वरों को नहीं ...
Piotr Kula

जवाबों:


35

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

mod_status आपकी मदद करेगा।

अस्वीकरण: मैं यह नहीं बता सकता कि यह वेबमिन में कैसे किया जाता है - मैं सर्वर स्थापित करने के लिए नंगे कॉन्फ़िगरेशन फ़ाइलों का उपयोग करता हूं। यहाँ केवल चरणों का एक मूल अवलोकन है।

यह एक topतरह का टूल है, लेकिन इसे वेब पेज के रूप में दर्शाया गया है। यह अपाचे से सीधे वर्तमान स्थिति को सूचीबद्ध करता है, इसलिए यह इस तरह की पार्सिंग लॉग फ़ाइलों पर निर्भर नहीं करता apachetopहै।

  1. सक्षम करें mod_status:

    sudo a2enmod status
    
  2. अपने आप तक पहुँच प्रदान करें।

    • खोलें /etc/apache2/mods-enabled/status.confऔर संपादित करें:
    • (वैकल्पिक, लेकिन अधिक अजीब और थोड़ा धीमा) के ExtendedStatusलिए सेट करेंOn
    • भीतर <Location /server-status>, संलग्न के साथ लाइन करने के लिए आपके आईपी पते Allowके निर्देश। उदाहरण:

      Allow from 127.0.0.1 ::1 66.77.88.99
      
  3. फिर से शुरू करें:

    sudo service apache2 restart
    
  4. उदाहरण के लिए, अपने ब्राउज़र में टूल का आनंद लें: http://1.2.3.4/server-status

    यह इस उदाहरण स्क्रीनशॉट की तरह दिखेगा ।

  5. F5अपडेट पाने के लिए दबाते रहें । या एक भयानक ब्राउज़र प्लगइन प्राप्त करें और इसे अपडेट किया जा रहा देखें!


Webmin

भविष्य के आगंतुकों के लिए ओपी द्वारा परिशिष्ट

वेबमिन में, स्टेटस मॉड्यूल के बारे में बुनियादी कदम यहाँ देखे जा सकते हैं:

  • सर्वर -> अपाचे वेबसर्वर -> अपाचे मॉड्यूल कॉन्फ़िगर करें
  • स्थिति मॉड्यूल का चयन करें और चयनित मॉड्यूल सक्षम करें पर क्लिक करें

यहाँ छवि विवरण दर्ज करें


दिलचस्प है - लेकिन अगर मेरे पास 100 आभासी वेबसाइटें हैं - तो क्या यह मुझे सभी वेबसाइटों के आँकड़े दिखाएगा? क्योंकि /var/log/apache2/access.log में सामंजस्य लॉग खाली है क्योंकि हम डिफ़ॉल्ट वेबसाइट का उपयोग नहीं करते हैं, प्रत्येक वेबसाइट का अपना / भरा हुआ /access.log भर में फैला हुआ है
Piotr Kula

2
मैं अब आपको बहुत पसंद करता हूं। गिम्मी एक चुंबन: * +1
पिओर कुला

प्रतिभा- यही मुझे चाहिए था। यह मुझे अब vhost दिखा रहा है! धन्यवाद एक लाख आदमी! मैं नहीं जानता कि आपके ज्ञान का बदला कैसे चुकाऊंगा!
पियोत्र कुला

गंभीरता से! मैं इस स्थिति उपकरण बहुत प्यार करता हूँ! मैंने इसके लिए बहुत सी लिपियों का पता लगाया है। इसने मुझे साइट्स को पैच करने, अपग्रेड करने और फिक्स करने में मदद की। आपकी मदद की सराहना की है, काश मैं तुम्हें मेरे सभी प्रतिनिधि दे सकता है!
पायोत्र कुला

@ppumkin कृपया अतिशयोक्ति न करें। यह इन कार्यों के लिए एक बहुत ही बुनियादी और आम अपाचे मॉड्यूल है। अपाचे के बारे में कोई भी स्वाभिमानी पुस्तक इसका उल्लेख करेगी। मुझे खुशी है कि मैं इसमें मददगार था, हालांकि।
gertvdijk

15

आपके द्वारा कोशिश किए जा रहे सभी उपकरण आपको कभी सही उत्तर नहीं देंगे। कारण यह है कि आपके द्वारा अनुरोध की जा रही जानकारी कनेक्शन होने पर खो जाती है।

आइए एक उदाहरण का उपयोग करें: मान लें कि आपके वेब सर्वर में एक आईपी एड्रेस ( 1.2.3.4 ) और दो होस्ट नाम ( a.mydomain.com और b.mydomain.com ) हैं जो उस आईपी पते का समाधान करते हैं।

जब आप a.mydomain.com पर जाते हैं तो अपने पसंदीदा वेब ब्राउज़र का उपयोग करते समय क्या होता है ?

  1. ब्राउज़र आपके DNS सर्वर से आईपी एड्रेस a.mydomain.com पूछता है।
  2. DNS सर्वर ब्राउज़र को पता 1.2.3.4 बताता है ।
  3. वेब ब्राउज़र 1.2.3.4 से जुड़ता है ।

तो netstatऔर सह। केवल पता है कि 1.2.3.4 के लिए एक आने वाला कनेक्शन है । IP पते के बजाय होस्ट नाम देखने का कारण यह है कि IP पते में rDNS रिकॉर्ड होता है, इसलिए यह netstatपसंद करता है कि IP के बजाय, क्योंकि यह अच्छा है। कोशिश करें netstat -n(या rDNS रिकॉर्ड हटा दें) और आपको आईपी पता दिखाई देगा।

लेकिन यह सब नहीं है: जब मैंने कहा कि कनेक्शन बनाने के लिए उपयोग किए जाने वाले होस्ट नाम के बारे में जानकारी खो गई थी, तो मैं पूरी तरह से सही नहीं था। टीसीपी / आईपी स्टैक के दृष्टिकोण से, वह वाक्य सत्य है। लेकिन अगर हम HTTP प्रोटोकॉल के दृष्टिकोण से चीजों को देखते हैं, तो चीजें अलग हैं। हर HTTP अनुरोध में एक Host:हेडर होता है जिसमें होस्ट नाम होता है जो अनुरोध करने के लिए ब्राउज़र द्वारा उपयोग किया जाता था।

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


1
+1 महत्वपूर्ण नेटवर्किंग पृष्ठभूमि कहानियों को रेखांकित किया गया है। मेरे जवाब में लिंक किया गया है, यह भी हकदार है!
gertvdijk

13

दूसरा तरीका टाइप करना है

tail -f /var/log/apache2/access.log

अपने टर्मिनल में


2
अच्छा और सरल; बहुत सीधे आगे, धन्यवाद!
जूलियन एफ। वेनर्ट

मुझे लगता है कि मेरे cPanel प्रतिष्ठानों में (CentOS मशीनों पर, लेकिन मुझे लगता है कि Ubuntu पर cPanel शायद एक ही है), access.logसभी अनुरोधों को शामिल नहीं करता है। इसके बजाय, मैं /usr/local/apache/domlogs/वर्चुअलहोस्ट (एसएसएल, गैर-एसएसएल और यहां तक ​​कि एफटीपी के बीच विभाजन) के अनुरोधों को देखने के लिए देखता हूं । उबंटू cPanel पर रास्ता अलग हो सकता है।
बुटिक बटुक 5

2
मुझे यह Google से मिला। यह तकनीक CentOS 7 में काम करती है, सिवाय आपकी जरूरत के/var/log/httpd/access_log
mwfearnley

7

आप इस बैश के साथ पोर्ट 80 पर जुड़े सभी ips की जांच कर सकते हैं

netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head

नोट: यदि आप अन्य पोर्ट देखना चाहते हैं, तो 80 बदलें

उत्पादन:

 19 x.174.143.1
 13 x.175.135.1
  9 x.68.135.1
  8 x.144.87.1
  7 x.68.150.1
  6 x.92.4.1
  6 x.188.23.1
  5 x.190.164.1
  4 x.189.156.1


1

यदि आप pid, उपयोगकर्ता और कमांड चाहते हैं:

lsof  -i  tcp:443,80 | egrep 'PID|->' | sort -k9

0

आप अपने वर्तमान आगंतुकों को देखने के लिए GoAccess सहभागी रूप से भी उपयोग कर सकते हैं । यह इस उद्देश्य के लिए आपके अपाचे एक्सेस लॉग को पार्स करता है और आपकी साइट के बारे में आंकड़ों का एक गुच्छा दिखाता है।

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