NetBSlow, nfdump, और MySQL के साथ FreeBSD या Linux (भाग 2) पर Cisco ASA ट्रैफ़िक की पैमाइश करना (भाग 2)

परिचय



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



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



पहली बात जो मुझे शुरू करनी थी, इस लेख का अध्ययन कर रहा था - http://habrahabr.ru/post/127613/ ( gag_fenix लेखक का बहुत सम्मान है)। यह केवल सामान्य और पूर्ण आलेख है कि nfdump का उपयोग करके सिस्को एएसए नेटवर्क उपकरण पर ट्रैफ़िक कैसे प्राप्त करें और इस पर विचार करें। यह लेख केवल पूरी तरह से कार्यान्वयन का वर्णन करता है कि आप मेजबान को नेटफ्लो पैकेट भेजने के लिए उपकरण कैसे कॉन्फ़िगर कर सकते हैं, और बाद के विश्लेषण के लिए डेटा का उपयोग कैसे करें। ट्रैफिक का विश्लेषण और उसका लेखा जोखा लेख में नहीं माना गया है।



आगे पढ़ने से पहले, मैं दृढ़ता से सलाह देता हूं कि आप उपरोक्त लेख का अच्छी तरह से अध्ययन करें, क्योंकि सेटिंग्स की कुछ विशेषताएं छोड़ दी जाएंगी। लेख में, हम ऐसे सवालों पर विचार करेंगे कि नेटफ्लो पर रिकॉर्ड कैसे रखें (कलेक्टर पर MySQL का उपयोग करके), वीपीएन ट्रैफ़िक की गणना कैसे करें, किस प्रकार के पैकेट को ध्यान में रखें, ट्रैफ़िक के "दोहरीकरण" और "दोहराव" से कैसे बचें और अपने आवेदन का उपयोग कैसे करें।



सिस्को एएसए उपकरण पर प्रयुक्त नेटफ्लो के बारे में आपको क्या जानना चाहिए



जिनके लिए सिद्धांत निर्बाध है, बस इस अनुभाग को छोड़ दें।



आगे देखते हुए, मैं निम्नलिखित कहूंगा कि मैं नेटफ्लो का उपयोग करने वाले अन्य " सॉफ़्टवेयर " राउटर के साथ दोस्ती नहीं कर सकता। उदाहरण के लिए, मैं pfSense जैसे एक राउटर के साथ दोस्त नहीं बना सकता, क्योंकि नेटफ्लो भेजने के लिए जिम्मेदार प्लगइन गलत डेटा प्रदान करता है (मेरे मामले में, ऐसे पैकेट थे जहां ट्रैफिक की गणना 10 मिनट की अवधि के लिए टेराबाइट्स में की गई थी)।



नेटफ्लो वी 9 को एएसए 5505 के बाद से सिस्को उपकरण द्वारा समर्थित किया गया है



कंपनी में नेटफ्लो ट्रैफिक की मात्रा औसतन 10-20 मेगाबाइट प्रति घंटा होगी, इसलिए 1 Gbit / s स्विच पर अपने कलेक्टर के लिए पोर्ट आवंटित करने में जल्दबाजी न करें। मेरे मामले में, ट्रैफ़िक की मात्रा कई सिस्को एएसए उपकरणों से प्रति घंटे 15 मेगाबाइट से अधिक नहीं है।



अब चलिए शुरू करते हैं कि ट्रैफ़िक के हिसाब से आपको कौन से या कितने प्रकार के नेटफ्लो पैकेजों का उपयोग करना होगा। कुल 4 प्रकार हैं: अस्वीकृत, निर्मित, अद्यतन, हटाए गए (फटे हुए) । अन्य उपकरणों पर, केवल IGNORED पाया जाता है, उदाहरण के लिए, एक ही pfSense में (वहाँ NetFlow पैकेट किसी भी तरह से भिन्न नहीं होते हैं)।



अस्वीकृत - नेटफ्लो पैकेट जो कहते हैं कि किस यातायात को अवरुद्ध किया गया था, आने वाले या बाहर जाने वाले क्षेत्र में यातायात की मात्रा हमेशा शून्य होगी, इसलिए हम इस प्रकार की उपेक्षा करेंगे;



सृजित, अद्यतन किया गया - नेटफ्लो पैकेट जो आरंभीकरण ( सृजित ), और आवधिक अद्यतन (प्रारंभिक) के बाद आवधिक यातायात अपडेट का संकेत देते हैं, इन प्रकारों को ट्रैफ़िक लेखांकन (नीचे स्पष्टीकरण) के लिए भी ध्यान में नहीं रखा जाएगा;



DELETED (फटा हुआ) - NetFlow पैकेट जिसमें पूर्ण हो चुके ट्रैफ़िक के बारे में पूरी जानकारी होती है, आने वाले और बाहर जाने वाले ट्रैफ़िक का योग हमेशा निम्न सूत्र को पूरा किया जाना चाहिए + अद्यतन = DELETED , हम इस प्रकार को ध्यान में रखेंगे।



ट्रैफ़िक " दोहरीकरण " से बचने के लिए, आपको सृजित + अद्यतन पैकेट, या केवल DELETED का उपयोग करना होगा। यदि आप दोनों का उपयोग करते हैं, तो आपका वास्तविक ट्रैफ़िक दो से गुणा करके वास्तविक ट्रैफ़िक के रूप में प्रदर्शित होगा! आदर्श रूप से, आपको सृजित + अद्यतन ट्रैफ़िक पर विचार करना चाहिए, क्योंकि ये 2 प्रकार एक अधिक सटीक विचार देते हैं कि किसी समय आपका इंटरनेट कितना व्यस्त है। DELETED वह ट्रैफ़िक जानकारी है जिसमें सत्र समाप्त होना बंद हो जाता है, और उदाहरण के लिए, यदि कंपनी में कोई व्यक्ति सुबह बहुत बड़ी फ़ाइल डाउनलोड करता है और केवल शाम को उसे डाउनलोड करता है, तो बड़े ट्रैफ़िक के बारे में डेटा केवल शाम को प्रदर्शित होगा!



काश, मुझे टाइप DELETED द्वारा ट्रैफ़िक का ट्रैक रखना पड़ता, क्योंकि सिस्को नेटफ्लो + nfcapd (nfdump) + UPDATED बंडल में एक बग है। बग यह है कि एक निश्चित आवृत्ति के साथ जब UPDated पैकेट में nfdump पार्स करता है, तो 4.3 GB ट्रैफ़िक होता है। मुझे यह पता नहीं चल पाया कि इस बग का क्या कारण है, या सिस्को उपकरण के कार्यान्वयन के द्वारा, जहां पैकेज में कुछ "मुश्किल" जानकारी है जिसे nfdump संभाल नहीं सकता है, या nfcapd + nfdump के कार्यान्वयन में एक बग। DELETED पैकेज में, इस तरह के बग को कुछ महीनों के उपकरण संचालन में नहीं देखा गया था।



वीपीएन ट्रैफिक सहित नेटफ्लो पर रिकॉर्ड कैसे रखें



जिनके लिए यह सिद्धांत निर्बाध है, इस खंड को भी छोड़ दें।



यह स्पष्ट है कि हम केवल " वास्तविक " यातायात पर विचार करना चाहते हैं, जो प्रदाता से ही आता है। और हम नहीं चाहते कि इस ट्रैफ़िक में स्थानीय ट्रैफ़िक जोड़ा जाए, उदाहरण के लिए, LAN और DMZ के बीच ट्रैफ़िक, या आपके सबनेट (आपके प्रदाता द्वारा आवंटित IP एड्रेस सबनेट) पर सभी " सफ़ेद " होस्ट के बीच का ट्रैफ़िक। यहाँ सब कुछ सरल है, हम नेटफ्लो पैकेट से केवल ऐसे ट्रैफ़िक पर विचार करते हैं, जहाँ हमारा लोकलहोस्ट इंटरनेट से कहीं जाता है और ट्रैफ़िक को फ़िल्टर करता है जो या तो डीएमजेड को जाता है, या आपके किसी " व्हाइट " आईपी एड्रेस, या किसी वीपीएन को सबनेट (नीचे वीपीएन सबनेट को अनदेखा क्यों किया जाता है)।



पूरा रोड़ा वास्तविक ट्रैफ़िक को ध्यान में रख रहा है, जहाँ किसी भी प्रकार के वीपीएन का उपयोग किया जाता है । उदाहरण के लिए, ऐसे वीपीएन ट्रैफ़िक मार्ग: LAN (DMZ) -to-VPN, VPN-to-LAN (DMZ), VPN-to-VPN, VPN-to-INTERNET । इसलिए, फ़ाइलों के लंबे विश्लेषण के बाद, nfdump उपयोगिता का उपयोग करते हुए , मैंने इस तरह के मार्गों पर ट्रैफ़िक पर विचार करने के बारे में निम्नलिखित निष्कर्ष दिए। यदि आप जानना चाहते हैं कि आपके कर्मचारियों द्वारा वीपीएन ट्रैफ़िक का कितना उपभोग किया जा रहा है, उदाहरण के लिए LAN (DMZ) -to-VPN, VPN-to-VPN , तो आपको बस इस ट्रैफ़िक पर विचार करने की आवश्यकता है क्योंकि यह है, बस ट्रैफ़िक की मात्रा की गणना आपके स्थानीय से आती है। वीपीएन सबनेट, या वीपीएन-टू-वीपीएन पर सबनेट या डीएमजेड (यह संख्या लगभग वीपीएन ट्रैफिक की खपत को दर्शाती है)। वीपीएन ट्रैफ़िक की प्राप्त राशि का उपयोग " वास्तविक " ट्रैफ़िक लेखांकन के लिए नहीं किया जा सकता है, क्योंकि " वास्तविक " ट्रैफ़िक को सफेद आईपी पते के बीच प्रदर्शित किया जाएगा, उदाहरण के लिए, आपके आईपी कार्यालय और एक दूरस्थ क्लाइंट के आईपी के बीच, या सफेद आईपी 2 कार्यालयों के बीच। सबसे पहले, यह राशि पूरी तरह से सफेद मेजबानों के बीच वीपीएन ट्रैफ़िक की मात्रा को दर्शाती है, और दूसरी बात, यह राशि किसी भी टू-वीपीएन ट्रैफ़िक की मात्रा से काफी अधिक होगी, क्योंकि यह राशि वीपीएन-टू-इंटरनेट जैसे ट्रैफ़िक को ध्यान में रखेगी , साथ ही अतिरिक्त सिस्टम ट्रैफ़िक।



इस प्रकार, LAN के साथ-साथ आपके WAN सबनेट पर ट्रैफ़िक लेखांकन होना चाहिए। हम 2 ट्रैफ़िक काउंट करते हैं: WAN-to -! (LAN, DMZ, VPN, आपका WAN) और (LAN, DMZ, VPN, आपका WAN) -to-WAN । तो हम निश्चित रूप से सभी " वास्तविक " ट्रैफ़िक को ध्यान में रखेंगे, साथ ही उस ट्रैफ़िक को जो सिस्को एएसए पर ही आरंभीकृत होता है , या बाहर से आता है। VPN-to-INTERNET ट्रैफिक अकाउंटिंग को उसी तरह से ध्यान में रखा जाता है जैसे LAN (DMZ) -to-INTERNET



नेटफ्लो द्वारा वास्तविक ट्रैफ़िक की गणना करने का अंतिम सूत्र: (LOCAL-to-INTERNET) + (INTERNET-to-LOCAL)



LOCAL WAN, LAN, DMZ, VPN जैसे सभी सबनेट हैं;

इंटरनेट - अन्य सभी ट्रैफ़िक जो WAN, LAN, DMZ, VPN पर लागू नहीं होते हैं।



व्यवहार में, " INTERNET-to-LOCAL " प्रकार के ट्रैफ़िक की गणना करते समय, आप केवल " INTERNET-to-WAN " प्रकार के ट्रैफ़िक पर विचार करेंगे, क्योंकि आपके पास अन्य नेटफ़्लो डेटा नहीं होगा, उदाहरण के लिए, " INTERNET-to- " का कोई डेटा नहीं होगा LAN, DMZ, VPN) । ”



नेटफ्लो वीपीएन ट्रैफिक कैलकुलेशन फॉर्मूला: LOCAL-to-VPN



LOCAL WAN, LAN, DMZ, VPN जैसे सभी सबनेट हैं



यह वीपीएन ट्रैफ़िक CANNOT को वास्तविक ट्रैफ़िक के साथ संक्षेप में प्रस्तुत कर सकता है, क्योंकि इसमें पहले से ही " VPN_REMOTE_HOST-to-WAN ", " WAN-to-VPN_REMOTE_HOST " के बीच सभी वीपीएन सत्रों के पूर्ण आँकड़े शामिल हैं। यह ट्रैफ़िक केवल अनुमानित मात्रा में ट्रैफ़िक प्रदर्शित करता है जो वीपीएन सत्रों के माध्यम से जाता है।



सिद्धांत से अभ्यास या सेंसर और कलेक्टर प्रशिक्षण करना



शुरुआत करने के लिए, मैं उन सॉफ्टवेयर संस्करणों को लिखूंगा जिन्हें मैं लिखने के समय काम कर रहा हूं:



सिस्को एएसए - एएसडीएम 7.1.6 , एएसए 9.1.5 ( http://software.cisco.com/download/type.html?mdfid=279513399 )

कलेक्टर (पीसी Core2Duo, 2GB RAM , 160GB HDD) - डेबियन 7.4 , MySQL 5.5.35 , Apache 2.2.22 , PHP 5.4.4-14

nfdump 1.6.12 ( http://sourceforge.net/projects/nfdump/files/stable// )



हम सहमत थे कि हम केवल DELETED प्रकार के साथ नेटफ्लो पैकेट पर विचार करेंगे। इसलिए, ASDM में हम केवल इस प्रकार के पैकेट को भेजते हैं।



छवि



अब हमें कलेक्टर तैयार करने की आवश्यकता है। हम सभी को स्रोतों को डाउनलोड करने और उन्हें एनएसईएल समर्थन के साथ संकलित करने की आवश्यकता है:







कलेक्टर पर NetFlow के लिए एक MySQL डेटाबेस तैयार करना:








MySQL अनुकूलन:


हमारे मामले में, आपको डिफ़ॉल्ट सेटिंग्स को बदलने की आवश्यकता होगी, क्योंकि डेटाबेस डिफ़ॉल्ट MySQL कॉन्फ़िगरेशन में निर्धारित से अधिक संसाधनों का उपयोग करेगा। उदाहरण के लिए, केवल एक INSERT अनुरोध कई मेगाबाइट हो सकता है। मुख्य कार्य यह सुनिश्चित करना है कि सभी INSERT अनुरोध डेटा खोए बिना गुजरते हैं, जैसा कि मेरे पास अध्ययन की शुरुआत में था। और SELECT क्वेरीज़ के संचालन को भी अनुकूलित करें ताकि डेटाबेस स्वीकार्य समय पर डेटा लौटाए। मैं InnoDB के लिए डेटाबेस का अनुकूलन नहीं कर सका, इसलिए मैं MyISAM का उपयोग करता हूं।



मुझे आपको याद दिलाना है कि मेरे पास कलेक्टर पर 2 जीबी रैम स्थापित है, इसलिए आपके मामले में पैरामीटर ऊपर और नीचे दोनों भिन्न हो सकते हैं। मैं अपनी सेटिंग्स दूंगा जिसने मुझे MySQL को अनुकूलित करने में मदद की:



मासूम को छोड़ दो

डिफ़ॉल्ट-भंडारण-इंजन = MyISAM

Sort_buffer_size = 4M

myisam_sort_buffer_size = 256M

key_buffer = 256M

max_allowed_packet = 32M

read_rnd_buffer_size = 2M

थ्रेड_स्टैक = 2 ​​मी

thread_cache_size = 16

query_cache_limit = 32M

query_cache_size = 128M



रीबूटिंग MySQL : /etc/init.d/mysql पुनरारंभ



यदि आपको अनुकूलन की समस्या है, तो http://mysqltuner.com/ से पर्ल स्क्रिप्ट का उपयोग करें

उपयोग और अनुकूलन के सभी विवरण साइट पर लिखे गए हैं, साथ ही स्क्रिप्ट के निष्पादन के दौरान भी।



हम डेटाबेस में अपने सबनेट को परिभाषित करते हैं:


अपना ब्राउज़र खोलें और / netflow / नेटवर्क पर जाएं

LAN, DMZ, WAN, VPN टाइप करके अपने सभी स्थानीय सबनेट का वर्णन करें

अगला, उन सबनेट को निर्दिष्ट करें जो वीपीएन के लिए प्रासंगिक हैं, जैसे कि रिमोट ऑफिस सबनेट या रिमोट क्लाइंट सबनेट।



हम अपना कलेक्टर शुरू करते हैं:


शुरू करने से पहले, जांच लें कि आपने php5-mysql या php5-mysqlnd प्लगइन इंस्टॉल किया है



/ usr / लोकल / बिन / nfcapd -t 600 -w -p 9995 -l / netflow / nflogs -D -x '/ usr / bin / php5 /var/www/netflow/scripts-netflow.php% d /% f '



"" netflow / nflogs "लॉग का मार्ग है;

"" usr / bin / php5 /var/www/netflow/scripts/netflow.php% d /% f "लॉग फाइल बनने के बाद php स्क्रिप्ट का लॉन्च है।



यह स्क्रिप्ट ट्रैफ़िक लेखांकन का दिल है, जो हर 10 मिनट में आंकड़े एकत्र करता है, इसे संसाधित करता है और इसे ट्रैफ़िक डेटा डेटाबेस में डालता है, और पुराने डेटा को भी साफ़ करता है। प्रत्येक 10 मिनट में आंकड़े एकत्र करने के लिए समय अंतराल के लिए स्क्रिप्ट को अनुकूलित किया जाता है, इसलिए " -t 600 " पैरामीटर को न बदलें।



यदि सब कुछ सही ढंग से किया जाता है, तो नेटफ्लो पैकेट आपके कलेक्टर पर आ जाएगा। आप कमांड देख सकते हैं: " tcpdump port 9995 "। यदि पैकेट आपके उपकरण से पोर्ट पर आते हैं, तो सब कुछ ठीक है, अन्यथा आपने गलत तरीके से अपने टिस्का को कॉन्फ़िगर किया है।



परिणाम



यह कलेक्टर के कॉन्फ़िगरेशन को पूरा करता है। अब आप विस्तार से देख सकते हैं कि आपके कार्यालय में कौन और कैसे इंटरनेट का उपयोग करता है। यह आपको 2 अतिरिक्त स्क्रिप्ट की मदद करेगा जो फ़ोल्डर " / netflow " और " / netflow / admin " में स्थित हैं। पहली स्क्रिप्ट आप अपने कर्मचारियों को उनके ट्रैफ़िक को देखने के लिए डरा सकते हैं, और दूसरी स्क्रिप्ट का उपयोग सभी आंकड़ों को प्रशासनिक रूप से देखने के लिए कर सकते हैं।



मेरी स्क्रिप्ट की स्थापना और विवरण



आप यहां एप्लिकेशन डाउनलोड कर सकते हैं netflow.tar.gz , फिर unzip और / netflow फ़ोल्डर को अपने WEB निर्देशिका के रूट पर कॉपी करें, उदाहरण के लिए / var / www



संग्रह में कई फाइलें हैं:



\ netflow \ setup \ crontab - nfcap.sh स्क्रिप्ट को हर 5 मिनट में मुकुट में चलाया जाता है;

\ netflow \ setup \ nfcap.sh - एक स्क्रिप्ट जो nfcapd सेवा की उत्तरजीविता की जांच करती है और अगर यह नहीं चल रही है तो इसे चलाती है;

\ netflow \ script \ netflow.php - एक स्क्रिप्ट जो ट्रैफ़िक के बारे में जानकारी एकत्र करती है और इसे MySQL डेटाबेस में डालती है;

\ netflow \ index.php - अपने आँकड़े देखने के लिए एक उपयोगकर्ता स्क्रिप्ट;

\ netflow \ admin \ index.php - प्रशासनिक स्क्रिप्ट कार्यालय में सभी आँकड़े देखने के लिए;

\ netflow \ नेटवर्क \ index.php - एक स्क्रिप्ट जिसके साथ आप सबनेट का प्रबंधन कर सकते हैं और उन पर ड्रिल कर सकते हैं।



सभी फाइलों को उपयोगकर्ताओं से संरक्षित किया जाना चाहिए, उदाहरण के लिए Netaccess के माध्यम से \ netflow \ index.php को छोड़कर



कुछ गीत या मेरा आवेदन कैसे काम करता है



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



सबसे पहले, मैं अपने "फ्रेंच" के लिए माफी मांगता हूं, क्योंकि आंकड़े प्रदर्शित करने वाली स्क्रिप्ट प्रोग्रामिंग के दृष्टिकोण से असुविधाजनक रूप में लिखी जाती हैं। मेरे पास इसके लिए अपने स्वयं के बहाने हैं: मैं लंबे समय से प्रोग्रामिंग नहीं कर रहा था, मुझे व्यावहारिक रूप से WEB एप्लिकेशन लिखने का कोई अनुभव नहीं है, मैं वास्तव में HTML संरचना को नहीं जानता हूं और उन नियमों को नहीं जानता जिनके द्वारा PHP का उपयोग करके HTML पृष्ठों का निर्माण किया जाता है



दूसरे, उपरोक्त के बावजूद, मैंने वास्तव में आंकड़ों को इकट्ठा करने और संसाधित करने वाले कोड को अनुकूलित और संरचित करने का प्रयास किया, और इसे MySQL डेटाबेस में भी डालता है।



डेटा डिस्प्ले की सुविधा के लिए, CSS और jQuery स्क्रिप्ट का उपयोग किया गया था।



विकास की शुरुआत में, मुझे कई वैश्विक समस्याओं का सामना करना पड़ा:



मैंने इस लेख की शुरुआत में पहले सवाल का जवाब देने की कोशिश की। Nfdump का उपयोग करके फ़ाइलों के लंबे विश्लेषण के मद्देनजर , मुझे कई बार अपने डेटाबेस की संरचना को बदलना पड़ा, फिर इसे जटिल किया, फिर इसे सरल बनाया।



इस लेख की शुरुआत में दूसरे प्रश्न का उत्तर भी दिया गया था। केवल एक चीज जो करनी थी वह थी डेटा संग्रह को अनुकूलित करना ताकि डेटाबेस को विशाल आकार न मिले। इसलिए, डेटाबेस में एक एकल तालिका NetFlowData है , जो पिछले 2 दिनों के लिए सभी लॉग संग्रहीत करता है। यह तालिका आसानी से प्रति दिन लगभग 100 मेगाबाइट जोड़ सकती है। इसलिए, मैं DEBUG के लिए इस तालिका का उपयोग करता हूं। अन्य सभी तालिकाओं को डेटा समूहीकृत करके अनुकूलित किया जाता है।



तीसरे प्रश्न का उत्तर देने से पहले, मैं कहूंगा कि TOP-20 में केवल INTERNET ट्रैफ़िक एकत्र किया गया है, और इसमें किसी भी- से- LAN , किसी भी-से-DMZ , किसी भी-टू-वीपीएन , LOCAL-to-WAN जैसे सबनेट शामिल नहीं हैं । लंबे समय तक मैं टॉप -२० को ध्यान में रखते हुए समस्या को हल नहीं कर सका, क्योंकि डेटाबेस में टेबल को बड़े आकार में फुलाया जाता है, हर १० मिनट में लगभग १०० हजार रिकॉर्ड । नतीजतन, तालिका का आकार आसानी से प्रति दिन 50 मेगाबाइट जोड़ता है। हम केवल एक ही तरीके से अनुकूलन करने में कामयाब रहे: प्रति दिन पूर्ण आँकड़े एकत्र करने के लिए, और फिर डेटा को इस तरह समूहित करें जहाँ UPLOAD या DOWNLOAD का योग 1 मेगाबाइट से अधिक हो। इस प्रकार, तालिका में रिकॉर्ड की संख्या तेजी से कई हजार पंक्तियों तक गिर गई। यहां तक ​​कि अगर किसी भी यातायात को ध्यान में नहीं रखा जाता है, तो भी TOP-20 अभी भी न्यूनतम त्रुटि के साथ पर्याप्त रूप से आंकड़े प्रदर्शित करेगा।



ऐसा लगता है कि इसे रोका जा सकता है, लेकिन मैं कुछ घंटों में एक विशेष उपयोगकर्ता द्वारा उपभोग किए गए ट्रैफ़िक की मात्रा को जानने के लिए घंटों तक ड्रिल करना चाहता था। यहां मुझे स्क्रिप्ट में कोड को जटिल करना पड़ा जो डेटा प्रदर्शित करने के लिए जिम्मेदार हैं।



और अंत में, मैं अपने एप्लिकेशन के कुछ स्क्रीनशॉट देता हूं: user.jpg , admin.jpg , top20.jpg , networks.s.pg



ध्यान देने के लिए आप सभी का धन्यवाद, अपने स्वास्थ्य का उपयोग करें!



All Articles