Log files: Καταγραφές, Ρουφιάνοι και ανακύκλωση

logfiles-linux-cerebrux

Μας παρακολουθούν… όχι εκεί έξω… αλλά ο ίδιος σου ο υπολογιστής ή το κινητό από όπου διαβάζεις αυτές τις γραμμές. Θα σου αποδείξω ότι είναι για το καλό σου… αλήθεια.

Ο υπολογιστής μας είναι μεγάλος ρουφιάνος. Ρουφιανεύει όχι μόνο εσένα, αλλά και τον εαυτό του. Σχεδόν κάθε τι που κάνει το καταγράφει. Αυτό είναι καλό για μας, γιατί αν πάει κάτι στραβά μπορούμε να κοιτάξουμε αυτές τις καταγραφές και να βρούμε τι συνέβη και τι πήγε στραβά.

Σήμερα θα δείξω πως μπορείς να βλέπεις αυτές τις καταγραφές και θα λύσομε μαζί και ένα σημαντικό πρόβλημα. Πως θα εμποδίζουμε τις ρουφιανιές αυτές να μας κλέψουν όλο τον χώρο δίσκο. Παράγουμε πολύ πληροφορία και πρέπει κάποια στιγμή να την σβήνουμε. Το logrotate με τις ανακυκλώσεις που κάνει θα μας σώσει. Και θα δούμε πως μπορούμε να το χρησιμοποιήσουμε έξυπνα και για άλλες δουλειές.

Log files: Τα αρχεία καταγραφών

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

Ανεξάρτητα του πως και ποιος κάνει την καταγραφή αυτές θα τις δούμε σε ένα φάκελο μαζεμένες. Αν είσαι μελετηρός και έχεις διαβάσει το Πως είναι διαμορφωμένο το σύστημα αρχείων του Linux ξέρεις ότι αυτός ο φάκελος είναι το /var/log.

logfiles-linux-cerebrux
Photo by Mike on Pexels.com

CIA του Linux

Ένα σημαντικό αρχείο εκεί μέσα είναι το αρχείο του «σούπερ ρουφιάνου» της κεντρικής υπηρεσίας καταγραφής συστήματος. Τα περισσότερα προγράμματα χρησιμοποιούν την διαβόητη και φοβερή υπηρεσία rsyslogd, τουλάχιστον για τις διανομές βασισμένες στο Debian. Το αρχείο αυτό είναι το /var/log/syslog.

Ας δούμε τον ρουφιάνο στην πράξη. Σε ένα τερματικό αφήνουμε να τρέχει την εντολή

tail -f /var/log/syslog

ή αν είμαστε του χρώματος έχουμε εγκαταστήσει το CCZE και ήδη ορίσει το alias στο αρχείο ~/.bashrc μας

alias vsyslog='tail -f /var/log/syslog | ccze -A'

Εναλλακτικά μπορείς να δεις το αρχείο καταγραφής μέσω του προγράμματος log viewer της διανομής σου. Μην με ρωτήσεις ποιο είναι ή πως το λένε διότι υπάρχουν αμέτρητοι και για κάθε διαφορετική διανομή και γραφικό περιβάλλον ονομάζονται διαφορετικά. π.χ. στο KDE γραφικό περιβάλλον είναι το KSystemLog. Αντίθετα με μια εντολή, σε όποια διανομή και αν είσαι, δουλεύει.

KSystemLog-cerebrux
Το KSystemLog είναι ένα γραφικό περιβάλλον για να δούμε τα αρχεία καταγραφών συστήματος

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

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

tail -f /var/log/syslog

Αυτοί οι ρουφιάνοι είναι κάποιες φορές τόσο μα τόσο χρήσιμοι.

Τα αρχεία ανακύκλωσης καταγραφών

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

Η υπηρεσία logrotate βοηθά να τις διαχειριστούμε. Κατά τακτά χρονικά διαστήματα θα πάρει τις παλιές καταγραφές και θα τις συμπιέσει και θα τις αρχειοθετήσει (αν αυτό είναι απαραίτητο). Θα φτιάξει μετά ένα καινούργιο αρχείο για τις καταγραφές του μέλλοντος. Αυτά τα αρχεία των παλιών καταγραφών θα τα λέμε αρχεία ανακύκλωσης. Αν μαζευτούν πολλά ή αν πιάνουν πολύ χώρο θα τα σβήσει από τον δίσκο.

Η υπηρεσία logrotate

To logrotate είναι ήδη εγκατεστημένο και ρυθμισμένο να τρέχει στις περισσότερες διανομές.

Η βασική ρύθμιση του logrotate είναι στο αρχείο /etc/logrotate.conf. Εδώ μπαίνουν πράγματα που είναι κοινά για όλα τα αρχεία καταγραφής. Μετά στον φάκελο /etc/logrotate.d υπάρχουν αρχεία που περιγράφουν τι θα συμβεί στα διάφορα αρχεία και ποια θα είναι αυτά.

Εδώ μπορείς απλά να προσθέσεις ένα δικό σου αρχείο ή τροποποιείς ένα υπάρχων (αφού κρατήσουμε ένα αντίγραφο σε άλλο μέρος πρώτα). Για παράδειγμα το αρχείο /etc/logrotate.d/apt περιέχει ρυθμίσεις για δύο αρχεία καταγραφών το /var/log/apt/term.log και το /var/log/apt/history.log.

logrotate-cerebrux

Η δομή είναι απλή. Δες το αρχείο προσεχτικά και θα σου αποκαλυφθεί. Δες και τα άλλα αρχεία εκεί μέσα και βρες τα αρχεία καταγραφής που ελέγχουν. Το βιβλίο του logrotate είναι προσβάσιμο με την εντολή man logrotate λέει αναλυτικά τι κάνει κάθε ντιρεκτίβα του αν θέλεις να μάθεις περισσότερα. Παρακάτω θα δούμε τις ποιο σημαντικές από αυτές.

rotate 12, maxage 100

Πόσες παλιές ανακυκλώσεις θα κρατηθούν. Στην πρώτη περίπτωση 12 στην δεύτερη περίπτωση για μέχρι 100 μέρες.

daily, weekly, monthly, yearly

Κάθε πότε θα γίνετε η ανακύκλωση. Αν για παράδειγμα πούμε daily αυτή θα γίνετε μια φορά την μέρα. Αν προσδιορίσουμε το size θα προτιμηθεί αυτό το κριτήριο

size 100k,size 100M,size 100G

Η ανακύκλωση θα γίνει αν το αρχείο ξεπεράσει αυτό το μέγεθος

nocompress, compress, delaycompress

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

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

Ένα πρόβλημα και μια λύση

Πολλές φορές προσπαθούμε να λύσουμε ένα πρόβλημα με ποιο πολύπλοκο πρόβλημα.

Το έχω δει να το ρωτάνε συχνά. Ένα εμπορικό σύστημα η κάποιο πρόγραμμα που να φτιάχνει μια αναφορά ή κάποιο αντίγραφο ασφάλειας κάθε μέρα. Και θέλεις ένα τρόπο να διαχειρίζεσαι αυτό το αρχείο. Για παράδειγμα να το στέλνει με email κάπου. Εντάξει δεν είναι δύσκολο να φτιάξεις (ή να πληρώσεις να σου φτιάξουν) ένα μικρό πρόγραμμα λίγων γραμμών σε bash να το κάνει αυτό και να το βάλεις να τρέχει κάθε μέρα, αλλά γιατί να παιδευτείς; Στο 90% των περιπτώσεων που έχω δει σε καλύπτει το logrotate.

Επίλογος

Θα κλείσω θυμίζοντάς σου ότι ο υπολογιστής σου μιλάει. Αρκεί να μάθεις να τον ακούς. Αν δεν ξέρεις τι ακριβώς λέει, απλά αντέγραψε το μήνυμα και ψάξε το στο internet. Το μόνο σίγουρο είναι ότι δεν είσαι ο μόνος που έχει δει το μήνυμα.

Advertisements

4 thoughts on “Log files: Καταγραφές, Ρουφιάνοι και ανακύκλωση

  1. ΓΕΙΑ ΣΑΣ
    ΜΗΠΩΣ ΞΕΡΕΤΕ ΤΑ ΑΡΧΕΙΑ log ΤΩΝ ΔΙΑΝΟΜΩΝ πχ opensues;
    αυτα που λετε ισχυουν για διανομες ubuntu κτλ etsi den einaiq
    ευχαριστω.

  2. Τα παραπάνω ισχύουν για όλες τις διανομές σε γενικές γραμμές. Το SuSE και το Redhat χρησιμοποιούν μια ελαφρά διαφορετική διάταξη και το κεντρικό αρχείο είναι το /var/log/messages αντί για το /var/log/syslog.

    Η υπηρεσία καταγραφών είναι μια ευέλικτη υπηρεσία και μπορεί να ρυθμιστεί με πολλούς τρόπους, αλλά αυτό είναι πέραν των εισαγωγικών που λέμε σε αυτό το άρθρο. Οι διανομές βασισμένες στο Debian χρησιμοποιούν το rsyslogd και το ρυθμίζεις με τα αρχεία /etc/rsyslog.conf και τα /etc/rsyslog.d/*. To SuSE χρησιμοποιεί ένα διαφορετικό πρόγραμμα το syslog-ng (τουλάχιστον απο όσο γνωρίζω).

  3. Θα συμπληρωνα πως ενας καλος τροπος να βρισκεις προβληματα και τις λυσεις τους ειναι να εχεις το συστημα σου στ αγγλικα… Έτσι εχεις πιο πολλες πιθανοτητες να βρεις λύση μια που ειναι πολυ πιο πιθανο να συναντησε το προβλημα καποιος προηγουμένως…

Σου άρεσε το άρθρο; Πες την άποψή σου... έστω και Ανώνυμα:

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση /  Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση /  Αλλαγή )

Σύνδεση με %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.