Ubuntu सर्वर पर प्रति उपयोगकर्ता नेटवर्क बैंडविड्थ की निगरानी कैसे करें?


12

मेरे पास 300GB मासिक डेटा ट्रांसफर वाले सर्वर पर कुछ शेल उपयोगकर्ता हैं। मैं प्रति उपयोगकर्ता बैंडविड्थ उपयोग की निगरानी कैसे कर सकता हूं?


क्या यह भी संभव है? ऐसा लगता है कि, सैद्धांतिक रूप से, यह इसके मूल्य से अधिक परेशानी होगी, क्योंकि आपको तकनीकी रूप से इंटरनेट का उपयोग करके प्रत्येक प्रक्रिया को पहचानना होगा कि कौन इसे चला रहा है, फिर संयुक्त बैंडविड्थ उपयोग का पता लगाएं। आपके पास मौजूद शेल उपयोगकर्ताओं के अलावा प्रति उपयोगकर्ता आधार पर निगरानी करने के लिए कोई विशेष कारण? क्योंकि 300GB के साथ मासिक / बाहर डेटा में, यह संभावना नहीं लगता कि आप उस राशि ऊपर होगी: /
थॉमस वार्ड

यह संभव होना चाहिए, अन्यथा प्रति उपयोगकर्ता आईएसपी कैप बैंडविड्थ कैसे हैं?
djeikyb

@EvilPhoenix मैं प्रति उपयोगकर्ता उपयोग की निगरानी करना चाहता हूं। 300GB कम से कम 20 उपयोगकर्ताओं वाले सर्वर के लिए उतना नहीं है जो इस सर्वर को प्रॉक्सी सर्वर के रूप में उपयोग करते हैं।
पद्रम

1
लगता है कि आपके पास केस कुक से एक महान व्यावहारिक जवाब है, लेकिन अगर आप अभी भी तरीकों की तलाश कर रहे हैं, तो मुझे आश्चर्य है कि यदि प्रश्न को अलग से बनाने में मदद मिल सकती है। मैंने इस गाइड को " लाइनक्स
djeikyb

जवाबों:


13

जड़ के रूप में, आप कम से कम iptables के "मालिक" मॉड्यूल का उपयोग करके प्रति-उपयोगकर्ता के आधार पर आउटगोइंग ट्रैफ़िक को माप सकते हैं। यदि आपके द्वारा मॉनिटर किए जाने वाले सभी उपयोगकर्ता हैं /root/list-of-users.txt, तो आप कर सकते हैं:

for login in $(cat /root/list-of-users.txt);
do
    iptables -N out_user_$login
    iptables -A OUTPUT -m owner --uid-owner $(id -u $login) -j out_user_$login
done

और फिर प्रत्येक उपयोगकर्ता के आउटबाउंड ट्रैफ़िक के लिए पैकेट और बाइट की गणना दिखाई देती है:

iptables -L OUTPUT -n -v | grep out_

इनबाउंड पक्ष को भी ट्रैक करने के लिए CONNMARK के साथ इसे और बढ़ाया जा सकता है।


धन्यवाद। यह बहुत अच्छा है। मैंने ऐसा किया। लेकिन मैं INPUT के लिए समान विधि का उपयोग क्यों नहीं कर सकता?
पेद्रम

1
पैकेट के मालिक को आने वाले पैकेट के लिए नहीं जाना जाता है क्योंकि कर्नेल के दृष्टिकोण से, यह मशीन के बाहर से आया था। CONNMARK का उपयोग टीसीपी धाराओं में पैकेटों को उनके प्रवर्तक आदि के लिए बाँधने के लिए किया जा सकता है, लेकिन मेरे पास इसका कोई कार्य उदाहरण नहीं है।
कीस कुक

7

मैं सिर्फ नेटहोग्स में आया :

NetHogs एक छोटा 'नेट टॉप' टूल है। प्रति प्रोटोकॉल या सबनेट की तरह ट्रैफ़िक को तोड़ने के बजाय, जैसे अधिकांश उपकरण करते हैं, यह प्रक्रिया द्वारा बैंडविड्थ को समूहित करता है।

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

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


इसे ट्रैफ़िक को योग करने के लिए मोड में भी शुरू किया जा सकता है: sudo nethogs -v 3 eth0(या mमोड के माध्यम से साइकिल शुरू करने के बाद बार-बार दबाएं )। tmuxलगातार चलने के लिए साथ मिलाएं (भले ही आपका sshसत्र क्रैश हो जाए)।
तानीस

6

आप कैक्टि का उपयोग कर सकते हैं

Cacti RRDTool के लिए एक पूर्ण दृश्य है, यह ग्राफ़ बनाने और MySQL डेटाबेस में डेटा के साथ पॉप्युलेट करने के लिए सभी आवश्यक जानकारी संग्रहीत करता है। सीमांत पूरी तरह से PHP संचालित है। एक डेटाबेस में ग्राफ्स, डेटा सोर्सेज और राउंड रॉबिन आर्काइव्स को बनाए रखने में सक्षम होने के साथ-साथ, कैक्टि डेटा इकट्ठा करने का काम संभालती है। MRTG के साथ ट्रैफ़िक ग्राफ़ बनाने के लिए उपयोग किए जाने वाले SNMP समर्थन भी है।

या vnStat

vnStat लिनक्स और बीएसडी के लिए एक कंसोल-आधारित नेटवर्क ट्रैफिक मॉनिटर है जो चयनित इंटरफ़ेस (ओं) के लिए नेटवर्क ट्रैफ़िक का लॉग रखता है। यह कर्नेल द्वारा सूचना स्रोत के रूप में प्रदान किए गए नेटवर्क इंटरफ़ेस आँकड़ों का उपयोग करता है। इसका मतलब यह है कि vnStat वास्तव में किसी भी यातायात को सूँघ नहीं सकता है और सिस्टम संसाधनों के हल्के उपयोग को भी सुनिश्चित करता है।

दोनों महान हैं।


2
धन्यवाद, लेकिन मैंने उन दोनों को पहले से ही देखा था और ऐसा लगता है कि उनमें से प्रत्येक उपयोगकर्ता की निगरानी प्रदान करता है। मैं प्रति उपयोगकर्ता उपयोग की निगरानी करना चाहता हूं।
पद्राम

5

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

मैं वास्तव में एक नेटवर्किंग लड़का नहीं हूं, लेकिन मैंने जो भी पढ़ा है, कई अन्य चीजों के अलावा netstatऔर iptablesआईपी ​​/ होस्ट-आधारित उपयोगकर्ता के लिए क्या करना है, acctइसके लिए टूल ने सिस्टम प्रक्रिया लेखांकन के लिए क्या किया है। यह cyberciti.biz लिंक आपको इन उपकरणों के साथ एक प्रणाली विकसित करने के लिए अपने रास्ते पर सेट कर सकता है:

http://www.cyberciti.biz/faq/linux-configuring-ip-traffic-accounting/


धन्यवाद, लेकिन जैसा कि आपने कहा कि वे आईपी-आधारित उपयोगकर्ता लेखांकन के लिए उपयोग किए जाते हैं। मेरे पास कुछ शेल उपयोगकर्ता हैं जो विभिन्न स्थानों में सर्वर का उपयोग कर सकते हैं, विशेष रूप से एक ही आईपी पते (NAT के पीछे) वाले विश्वविद्यालय विभाग में। उपयोगकर्ता-आधारित लेखांकन समाधान की तलाश में, यदि यह संभव है।
पद्रम

netstat -eशेल उपयोगकर्ताओं को दिखाता है, जिससे आप यूज़रनेम को आईपी / होस्ट लिंक कर सकते हैं।
djeikyb
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.