Στη γενιά του cloud computing, οι εικονικές μηχανές (VMs) έχουν γίνει πολύ κοινές, ενώ η χρήση των φυσικών μηχανών έχει αρχίσει να μειώνεται σταδιακά. Σε αυτήν την ανάρτηση, θα παρουσιάσουμε τα εργαλεία ‘vnStat’ και ‘iftop,’ τα οποία μπορούμε να χρησιμοποιήσουμε για την παρακολούθηση της κατανάλωσης δεδομένων σε μια VM.
Αρχικά, δημιουργώ μια μηχανή με τους ακόλουθους πόρους:
20 GHz CPU
16 GB RAM
20 GB SSD
Προσαρτώ τον δίσκο με το είδωλο Ubuntu 18.04 που είναι διαθέσιμο στη CloudSigma’s βιβλιοθήκη.
Ubuntu 18.04 : Προεγκατεστημένο 64bit με προγράμματα οδήγησης VirtIO, υπερχρήστη (superuser), Python 2.7.15, Pip 18.0, OpenSSL 1.1.0i, Cloud-init και τις τελευταίες ενημερώσεις έως τις 2018-09-30.
Στη συνέχεια, ενημερώνω όλα τα υπάρχοντα αποθετήρια (repos) και πακέτα στη μηχανή.
|
1 2 |
sudo apt update sudo apt upgrade |
Τώρα που το σύστημά μας είναι ενημερωμένο, θα προχωρήσω στα εργαλεία μας, ‘vnStat’ και ‘iftop’.
VNSTAT
Σύμφωνα με τον humdi, το vnStat είναι ένας επόπτης κίνησης δικτύου βασισμένος σε κονσόλα για Linux και BSD που κρατάει καταγραφή της κίνησης δικτύου για τις επιλεγμένες διεπαφές. Χρησιμοποιεί τα στατιστικά στοιχεία της διεπαφής δικτύου που παρέχονται από τον πυρήνα ως πηγή πληροφοριών. Αυτό σημαίνει ότι το vnStat δεν θα υποκλέπτει στην πραγματικότητα την κίνηση και επίσης εξασφαλίζει ελαφριά χρήση των πόρων του συστήματος.
Μερικά από τα χαρακτηριστικά του vnStat είναι:
- Ακόμα κι αν το σύστημα επανεκκινηθεί, τα δεδομένα παραμένουν.
- Μπορεί να παρακολουθεί πολλαπλές διεπαφές ταυτόχρονα.
- Υπάρχουν διάφορες επιλογές εξόδου, για παράδειγμα, ανά ημέρα, ανά εβδομάδα, κ.λπ.
- Οι πολιτικές διατήρησης δεδομένων μπορούν να διαμορφωθούν από τον χρήστη.
- Οι μήνες μπορούν να διαμορφωθούν σύμφωνα με τον κύκλο χρέωσης.
- Το ίδιο το εργαλείο είναι πολύ ελαφρύ και η χρήση πόρων είναι ελάχιστη.
- Η χρήση της CPU θα είναι η ίδια ανεξάρτητα από την κίνηση.
Εγκατάσταση
Χρησιμοποιήστε την ακόλουθη εντολή για να εγκαταστήσετε το vnStat:
|
1 |
sudo apt install vnstat |
Θα πρέπει να εντοπίσει αυτόματα τη διεπαφή δικτύου. Σε περίπτωση που δεν το κάνει, μπορώ να ελέγξω τη διεπαφή με την εντολή:
|
1 |
ip addr |
Στη δική μου περίπτωση μπορώ να δω δύο διεπαφές:
|
1 2 3 4 5 6 7 8 9 10 11 12 |
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 22:af:d1:32:d2:0b brd ff:ff:ff:ff:ff:ff inet XXX.XXX.XX.XXX/24 brd XXX.XXX.XX.XXX scope global dynamic ens3 valid_lft 1853sec preferred_lft 1853sec inet6 fe80::20af:d1ff:fe32:d20b/64 scope link valid_lft forever preferred_lft forever |
Μπορώ να αγνοήσω τη διεπαφή loopback. Η διεπαφή που θέλω να παρακολουθήσω είναι η ‘ens3’. Μπορώ να το ενημερώσω αυτό στο vnStat χρησιμοποιώντας την εντολή:
|
1 |
sudo vnstat -u -i ens3 |
Οδηγός Χρήσης
Ο οδηγός χρήσης μπορεί να εμφανιστεί χρησιμοποιώντας την εντολή: vnStat –help
Η χρήση θα περιγράφεται ως εξής:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
vnStat 1.18 από Teemu Toivola <tst at iki dot fi> -q, --query ερώτημα στη βάση δεδομένων -h, --hours εμφάνιση ωρών -d, --days εμφάνιση ημερών -m, --months εμφάνιση μηνών -w, --weeks εμφάνιση εβδομάδων -t, --top10 εμφάνιση κορυφαίων 10 10 ημερών -s, --short χρήση σύντομης εξόδου -u, --update ενημέρωση βάσης δεδομένων -i, --iface επιλογή διεπαφής (προεπιλογή: ens3) -?, --help σύντομη βοήθεια -v, --version εμφάνιση έκδοσης -tr, --traffic υπολογισμός κίνησης -ru, --rateunit εναλλαγή ρυθμισμένης μονάδας ρυθμού -l, --live εμφάνιση ρυθμού μεταφοράς σε πραγματικό χρόνο Δείτε επίσης "--longhelp" για πλήρη λίστα επιλογών και "man vnstat". |
Με τη βοήθεια αυτών των εντολών, μπορούμε να λάβουμε τα μετρικά στοιχεία χρήσης δεδομένων.
Για εύκολη και διαισθητική παρακολούθηση, μπορούμε να εγκαταστήσουμε τον πίνακα ελέγχου vnStat. Ακολουθούν τα βήματα για την εγκατάσταση του πίνακα ελέγχου:
Εγκαταστήστε τις ακόλουθες απαιτούμενες εξαρτήσεις:
|
1 |
sudo apt install apache2 php wget unzip -y |
Μετά την εγκατάσταση των απαιτούμενων εξαρτήσεων, θα λάβουμε τον πίνακα ελέγχου από το αποθετήριο github, θα τον αποσυμπιέσουμε και θα τον τοποθετήσουμε στον κατάλογο του διακομιστή ιστού μας.
|
1 2 3 |
wget https://github.com/alexandermarston/vnstat-dashboard/archive/master.zip unzip master.zip sudo mv vnstat-dashboard-master/ /var/www/html/vnstat/ |
Στη συνέχεια, πρέπει να επεξεργαστούμε τη διαμόρφωση.
|
1 |
sudo vi /var/www/html/vnstat/config.php |
Οι ακόλουθες γραμμές θα χρειαστούν αλλαγή. Επισημαίνω τις απαιτούμενες αλλαγές με έντονη γραφή.
|
1 2 3 4 5 6 7 |
$use_predefined_interfaces = <strong>true</strong>; if ($use_predefined_interfaces == <strong>true</strong>) { $interface_list = <strong>["ens3"]</strong>; $interface_name<strong>['ens3']</strong> = "Δοκιμαστική Διεπαφή"; } |
Μπορώ να ονομάσω τη διεπαφή για να διευκολύνω την παρακολούθηση. Κάποιος μπορεί να έχει πολλαπλές διεπαφές προς παρακολούθηση. Μπορούμε να τις προσθέσουμε εδώ.
After you have made the changes, open <<IP-ADDRESS>>/vnstat
Μπορώ να δω τα δεδομένα με κομψό τρόπο τώρα.


IFTOP
Το iftop ακούει την κίνηση του δικτύου σε μια καθορισμένη διεπαφή, ή στην πρώτη διεπαφή που μπορεί να βρει και η οποία μοιάζει με εξωτερική διεπαφή, εάν δεν έχει καθοριστεί καμία. Εμφανίζει έναν πίνακα της τρέχουσας χρήσης εύρους ζώνης ανά ζεύγη κεντρικών υπολογιστών. Πρέπει να εκτελέσουμε το iftop με επαρκή δικαιώματα για την παρακολούθηση όλης της κίνησης δικτύου στη διεπαφή.
Εγκατάσταση
Μπορούμε να εγκαταστήσουμε το Iftop χρησιμοποιώντας την ακόλουθη εντολή:
|
1 |
sudo apt install iftop |
Οδηγός Χρήσης
Ο οδηγός χρήσης μπορεί να προβληθεί χρησιμοποιώντας την εντολή: iftop -h
Η χρήση θα περιγράφεται ως εξής:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
iftop: εμφάνιση εύρους ζώνης χρήσης σε μια διεπαφή ανά κεντρικό υπολογιστή Σύνοψη: iftop -h | [-npblNBP] [-i interface] [-f φίλτρο κώδικας] [-F net/mask] [-G net6/mask6] -h εμφάνιση αυτού του μηνύματος -n να μην γίνεται αναζήτηση ονομάτων κεντρικών υπολογιστών -N να μηνt μετατρέπονται οι αριθμοί θυρών σε υπηρεσίες -p εκτέλεση σε promiscuous λειτουργία (εμφάνιση κίνησης μεταξύ άλλων κεντρικών υπολογιστών στο ίδιο τμήμα δικτύου segment) -b μην't εμφανίζετε ένα ραβδόγραμμα graph της κίνησης -B Εμφάνιση εύρους ζώνης σε bytes -i διεπαφή ακρόαση στην ονομαζόμενη διεπαφή -f κώδικας φίλτρου χρήση κώδικα φίλτρου για επιλογή πακέτων προς καταμέτρηση (προεπιλογή: κανένα, αλλά μόνο IP πακέτα καταμετρώνταιcounted) -F net/mask εμφάνιση ροών κίνησης εντός /και εκτός του IPv4 δικτύου -G net6/mask6 εμφάνιση ροών κίνησης εντός /και εκτός του IPv6 δικτύου -l εμφάνιση και καταμέτρηση τοπικής -σύνδεσης IPv6 κίνησης (προεπιλογή: ανενεργό) -P εμφάνιση θυρών καθώς και των κεντρικών υπολογιστών -m όριο ορίζει το ανώτατο όριο για την κλίμακα εύρους ζώνης -c αρχείο ρυθμίσεων καθορίζει ένα εναλλακτικό αρχείο ρυθμίσεων -t χρήση διεπαφής κειμένου χωρίς ncurses Σειρά ταξινόμησης: -o 2s Ταξινόμηση κατά πρώτη στήλη (2s μέσος όρος κίνησης average) -o 10s Ταξινόμηση κατά δεύτερη στήλη (10s μέσος όρος κίνησης average) [προεπιλογή] -o 40s Ταξινόμηση κατά τρίτη στήλη (40s μέσος όρος κίνησης average) -o πηγή Ταξινόμηση κατά διεύθυνση πηγής -o προορισμός Ταξινόμηση κατά διεύθυνση προορισμού Οι ακόλουθες επιλογές είναι μόνο διαθέσιμες σε συνδυασμό με -t -s num εκτύπωση μιας μεμονωμένης εξόδου κειμένου μετά από num δευτερόλεπτα, και μετά έξοδος -L num αριθμός γραμμών προς εκτύπωση print iftop, έκδοση 1.0pre4 πνευματικά δικαιώματα (c) 2002 Paul Warren <pdw@ex-parrot.com> και συντελεστές |
Απαιτείται άδεια root για να λειτουργήσει. Χρησιμοποιώ απλώς το sudo καθώς ο χρήστης μου cloudsigma είναι χρήστης sudoer. Μπορώ επίσης να χρησιμοποιήσω την εντολή ‘sudo su’ και στη συνέχεια να εκτελέσω όλες τις εντολές ως χρήστης root.
Η ακόλουθη εντολή θα μου εμφάνιζε όλες τις συνδέσεις στη διεπαφή ‘ens3’ και τις συναλλαγές δεδομένων:
|
1 2 |
sudo su iftop |
Ένας απλούστερος τρόπος εάν η απαίτηση είναι η καταγραφή της κίνησης δεδομένων για ένα συγκεκριμένο χρονικό διάστημα:
|
1 |
iftop -t -s 30 |
Η παραπάνω εντολή θα συνοψίσει τις συναλλαγές κίνησης δεδομένων για τα επόμενα 30 δευτερόλεπτα και μετά την ολοκλήρωση του χρόνου, θα δώσει έναν πίνακα που θα παραθέτει όλη τη χρήση δεδομένων και τους ρυθμούς μεταφοράς.
Αν και το iftop παρέχει ζωντανούς ρυθμούς μεταφοράς, δεν αποθηκεύει τα δεδομένα ούτε διαθέτει πίνακα ελέγχου για να οπτικοποιήσουμε και να δούμε τα μοτίβα με διαισθητικό τρόπο. Επομένως, εάν θέλουμε να βλέπουμε ζωντανούς ρυθμούς μεταφοράς δεδομένων, συνιστούμε το iftop. Για την παρακολούθηση της κίνησης δεδομένων σε μεγαλύτερο χρονικό διάστημα, συνιστούμε το vnStat.
Ελπίζουμε να μπορέσετε να χρησιμοποιήσετε αυτόν τον οδηγό προς όφελός σας και να εφαρμόσετε τα βασικά στοιχεία του τρόπου χρήσης των vnStat και iftop για την παρακολούθηση της κατανάλωσης δεδομένων εντός ενός VM.
Σχόλια
Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.