Τρόπος παραγωγής και παράδοσης αναφορών δραστηριότητας συστήματος χρησιμοποιώντας σύνολα εργαλείων Linux - Μέρος 3


Ως μηχανικός συστήματος, θα πρέπει συχνά να δημιουργείτε αναφορές που δείχνουν τη χρήση των πόρων του συστήματός σας για να βεβαιωθείτε ότι: 1) χρησιμοποιούνται βέλτιστα, 2) αποτρέπονται τα σημεία συμφόρησης και 3) διασφαλίζεται η επεκτασιμότητα, μεταξύ άλλων λόγων.

Εκτός από τα γνωστά εγγενή εργαλεία Linux που χρησιμοποιούνται για τον έλεγχο της χρήσης δίσκου, μνήμης και CPU – για να αναφέρουμε μερικά παραδείγματα, το Red Hat Enterprise Linux 7 παρέχει δύο επιπλέον σύνολα εργαλείων για τη βελτίωση των δεδομένων που μπορείτε να συλλέξετε για τις αναφορές σας: sysstat και dstat.

Σε αυτό το άρθρο θα περιγράψουμε και τα δύο, αλλά ας ξεκινήσουμε πρώτα εξετάζοντας τη χρήση των κλασικών εργαλείων.

Εγγενή Εργαλεία Linux

Με το df, θα μπορείτε να αναφέρετε χώρο στο δίσκο και χρήση inode από το σύστημα αρχείων. Πρέπει να παρακολουθείτε και τα δύο, επειδή η έλλειψη χώρου θα σας εμποδίσει να αποθηκεύσετε περισσότερα αρχεία (και μπορεί ακόμη και να προκαλέσει κατάρρευση του συστήματος), όπως και η εξάντληση των inodes σημαίνει ότι δεν μπορείτε να συνδέσετε άλλα αρχεία με τα αντίστοιχα δεδομένα τους δομές, παράγοντας έτσι το ίδιο αποτέλεσμα: δεν θα μπορείτε να αποθηκεύσετε αυτά τα αρχεία στο δίσκο.


df -h 		[Display output in human-readable form]
df -h --total         [Produce a grand total]


df -i 		[Show inode count by filesystem]
df -i --total 	[Produce a grand total]

Με το du, μπορείτε να υπολογίσετε τη χρήση του χώρου αρχείων ανά αρχείο, κατάλογο ή σύστημα αρχείων.

Για παράδειγμα, ας δούμε πόσο χώρο χρησιμοποιείται από τον κατάλογο /home, ο οποίος περιλαμβάνει όλα τα προσωπικά αρχεία του χρήστη. Η πρώτη εντολή θα επιστρέψει τον συνολικό χώρο που χρησιμοποιείται αυτήν τη στιγμή από ολόκληρο τον κατάλογο /home, ενώ η δεύτερη θα εμφανίσει επίσης μια ανανεωμένη λίστα ανά υποκατάλογο:


du -sch /home
du -sch /home/*

Μην το χάσετε:

  1. 12 Παραδείγματα εντολών «df» για έλεγχο χρήσης χώρου στο δίσκο Linux
  2. 10 Παραδείγματα εντολών «du» για να βρείτε τη χρήση δίσκου αρχείων/καταλόγων

Ένα άλλο βοηθητικό πρόγραμμα που δεν μπορεί να λείπει από το σύνολο εργαλείων σας είναι το vmstat. Θα σας επιτρέψει να δείτε με μια γρήγορη ματιά πληροφορίες σχετικά με τις διαδικασίες, τη χρήση της CPU και της μνήμης, τη δραστηριότητα του δίσκου και πολλά άλλα.

Εάν εκτελεστεί χωρίς ορίσματα, το vmstat θα εμφανίσει μέσους όρους από την τελευταία επανεκκίνηση. Ενώ μπορείτε να χρησιμοποιήσετε αυτήν τη μορφή της εντολής κάθε τόσο, θα είναι πιο χρήσιμο να λαμβάνετε ένα συγκεκριμένο αριθμό δειγμάτων χρήσης συστήματος, το ένα μετά το άλλο, με καθορισμένο χρονικό διαχωρισμό μεταξύ των δειγμάτων.

Για παράδειγμα,


vmstat 5 10

θα επιστρέψει 10 δείγματα που λαμβάνονται κάθε 5 δευτερόλεπτα:

Όπως μπορείτε να δείτε στην παραπάνω εικόνα, η έξοδος του vmstat διαιρείται με στήλες: procs (διεργασίες), μνήμη, swap, io, σύστημα και cpu. Η σημασία κάθε πεδίου βρίσκεται στις ενότητες ΠΕΔΙΟ ΠΕΡΙΓΡΑΦΗΣ στη σελίδα man του vmstat.

Πού μπορεί να είναι χρήσιμο το vmstat; Ας εξετάσουμε τη συμπεριφορά του συστήματος πριν και κατά τη διάρκεια μιας yum ενημέρωσης:


vmstat -a 1 5

Λάβετε υπόψη ότι καθώς τα αρχεία τροποποιούνται στο δίσκο, η ποσότητα της ενεργής μνήμης αυξάνεται και το ίδιο αυξάνεται ο αριθμός των μπλοκ που εγγράφονται στο δίσκο (bo) και ο χρόνος της CPU που είναι αφιερωμένο σε διαδικασίες χρήστη (εμάς).

Ή κατά τη διαδικασία αποθήκευσης ενός μεγάλου αρχείου απευθείας στο δίσκο (που προκαλείται από dsync):


vmstat -a 1 5
dd if=/dev/zero of=dummy.out bs=1M count=1000 oflag=dsync

Σε αυτήν την περίπτωση, μπορούμε να δούμε έναν ακόμη μεγαλύτερο αριθμό μπλοκ που εγγράφονται στο δίσκο (bo), κάτι που ήταν αναμενόμενο, αλλά και μια αύξηση του χρόνου της CPU που πρέπει να περιμένει Λειτουργίες εισόδου/εξόδου που πρέπει να ολοκληρωθούν πριν από την επεξεργασία των εργασιών (wa).

Μην χάσετε: Vmstat – Παρακολούθηση απόδοσης Linux

Άλλα εργαλεία Linux

Όπως αναφέρθηκε στην εισαγωγή αυτού του κεφαλαίου, υπάρχουν άλλα εργαλεία που μπορείτε να χρησιμοποιήσετε για να ελέγξετε την κατάσταση και τη χρήση του συστήματος (δεν παρέχονται μόνο από την Red Hat αλλά και από άλλες μεγάλες διανομές από τις επίσημα υποστηριζόμενες αποθετήρια).

Το πακέτο sysstat περιέχει τα ακόλουθα βοηθητικά προγράμματα:

  1. sar (συλλογή, αναφορά ή αποθήκευση πληροφοριών δραστηριότητας συστήματος).
  2. sadf (εμφάνιση δεδομένων που συλλέγονται από το sar σε πολλές μορφές).
  3. mpstat (αναφορά στατιστικών στοιχείων σχετικά με τους επεξεργαστές).
  4. iostat (αναφορά στατιστικών στοιχείων CPU και στατιστικών I/O για συσκευές και διαμερίσματα).
  5. pidstat (αναφορά στατιστικών στοιχείων για εργασίες Linux).
  6. nfsiostat (αναφορά στατιστικών στοιχείων εισόδου/εξόδου για NFS).
  7. cifsiostat (αναφορά στατιστικών στοιχείων CIFS) και
  8. sa1 (συλλέγει και αποθηκεύει δυαδικά δεδομένα στο ημερήσιο αρχείο δεδομένων δραστηριότητας συστήματος.
  9. sa2 (γράψτε μια ημερήσια αναφορά στον κατάλογο /var/log/sa) εργαλεία.

ενώ το dstat προσθέτει ορισμένες επιπλέον δυνατότητες στη λειτουργικότητα που παρέχουν αυτά τα εργαλεία, μαζί με περισσότερους μετρητές και ευελιξία. Μπορείτε να βρείτε μια συνολική περιγραφή κάθε εργαλείου εκτελώντας το yum info sysstat ή το yum info dstat, αντίστοιχα, ή ελέγχοντας τις μεμονωμένες σελίδες man μετά την εγκατάσταση.

Για να εγκαταστήσετε και τα δύο πακέτα:


yum update && yum install sysstat dstat

Το κύριο αρχείο διαμόρφωσης για το sysstat είναι το /etc/sysconfig/sysstat. Θα βρείτε τις ακόλουθες παραμέτρους σε αυτό το αρχείο:


How long to keep log files (in days).
If value is greater than 28, then log files are kept in
multiple directories, one for each month.
HISTORY=28
Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=31
Parameters for the system activity data collector (see sadc manual page)
which are used for the generation of log files.
SADC_OPTIONS="-S DISK"
Compression program to use.
ZIP="bzip2"

Όταν είναι εγκατεστημένο το sysstat, προστίθενται και ενεργοποιούνται δύο εργασίες cron στο /etc/cron.d/sysstat. Η πρώτη εργασία εκτελεί το εργαλείο λογιστικής δραστηριότητας συστήματος κάθε 10 λεπτά και αποθηκεύει τις αναφορές στο /var/log/sa/saXX όπου το XX είναι το ημέρα του μήνα.

Έτσι, το /var/log/sa/sa05 θα περιέχει όλες τις αναφορές δραστηριότητας συστήματος από τις 5 του μήνα. Αυτό προϋποθέτει ότι χρησιμοποιούμε την προεπιλεγμένη τιμή στη μεταβλητή HISTORY στο παραπάνω αρχείο διαμόρφωσης:


*/10 * * * * root /usr/lib64/sa/sa1 1 1

Η δεύτερη εργασία δημιουργεί μια καθημερινή σύνοψη της λογιστικής διαδικασίας στις 11:53 μ.μ. κάθε μέρα και την αποθηκεύει σε αρχεία /var/log/sa/sarXX, όπου XX έχει την ίδια έννοια όπως στο προηγούμενο παράδειγμα:


53 23 * * * root /usr/lib64/sa/sa2 -A

Για παράδειγμα, μπορεί να θέλετε να εξάγετε στατιστικά στοιχεία συστήματος από τις 9:30 π.μ. έως τις 5:30 μ.μ. της έκτης του μήνα σε ένα .csv > αρχείο που μπορεί εύκολα να προβληθεί χρησιμοποιώντας LibreOffice Calc ή Microsoft Excel (αυτή η προσέγγιση θα σας επιτρέψει επίσης να δημιουργήσετε γραφήματα ή γραφήματα):


sadf -s 09:30:00 -e 17:30:00 -dh /var/log/sa/sa06 -- | sed 's/;/,/g' > system_stats20150806.csv

Θα μπορούσατε εναλλακτικά να χρησιμοποιήσετε τη σημαία -j αντί για -d στην παραπάνω εντολή sadf για να εξάγετε τα στατιστικά του συστήματος σε JSON μορφή, η οποία θα μπορούσε να είναι χρήσιμη εάν πρέπει να καταναλώσετε τα δεδομένα σε μια εφαρμογή Ιστού, για παράδειγμα.

Τέλος, ας δούμε τι έχει να προσφέρει το dstat. Λάβετε υπόψη ότι εάν εκτελεστεί χωρίς ορίσματα, το dstat προϋποθέτει το -cdngy από προεπιλογή (σύντομη για CPU, δίσκος, δίκτυο, σελίδες μνήμης και στατιστικά συστήματος, αντίστοιχα) και προσθέτει ένα γραμμή κάθε δευτερόλεπτο (η εκτέλεση μπορεί να διακοπεί ανά πάσα στιγμή με Ctrl + C):


dstat

Για να εξάγετε τα στατιστικά στοιχεία σε ένα αρχείο .csv, χρησιμοποιήστε τη σημαία –output ακολουθούμενη από ένα όνομα αρχείου. Ας δούμε πώς φαίνεται αυτό στο LibreOffice Calc:

Σας συμβουλεύω ανεπιφύλακτα να δείτε τη σελίδα man του dstat μαζί με τη σελίδα man του sysstat σε μορφή PDF για διευκόλυνσή σας στην ανάγνωση. Θα βρείτε πολλές άλλες επιλογές που θα σας βοηθήσουν να δημιουργήσετε προσαρμοσμένες και λεπτομερείς αναφορές δραστηριότητας συστήματος.

Μην χάσετε: Sysstat – Εργαλείο παρακολούθησης δραστηριότητας χρήσης Linux

Περίληψη

Σε αυτόν τον οδηγό έχουμε εξηγήσει πώς να χρησιμοποιείτε τόσο εγγενή εργαλεία Linux όσο και συγκεκριμένα βοηθητικά προγράμματα που παρέχονται με το RHEL 7 για τη δημιουργία αναφορών σχετικά με τη χρήση του συστήματος. Σε ένα ή το άλλο σημείο, θα βασιστείτε σε αυτές τις αναφορές ως καλύτεροι φίλοι.

Πιθανότατα θα έχετε χρησιμοποιήσει άλλα εργαλεία που δεν έχουμε καλύψει σε αυτό το σεμινάριο. Αν ναι, μη διστάσετε να τα μοιραστείτε με την υπόλοιπη κοινότητα μαζί με οποιεσδήποτε άλλες προτάσεις/ερωτήσεις/σχόλια που μπορεί να έχετε - χρησιμοποιώντας την παρακάτω φόρμα.

Ανυπομονούμε να ακούσουμε από εσάς.