lnav και κάντε tour στο system log σας

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

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

Το φαινόμενο της διατήρησης ενός αρχείου καταγραφής ονομάζεται «logging» (καταγραφή) ενώ το ίδιο το αρχείο ονομάζεται «log file» (αρχείο καταγραφής). Ένα γνωστό σύστημα καταγραφής στο Linux είναι το «syslog», από τη σύντμηση του «system log».

Τα μηνύματα (log messages) σε ένα αρχείο καταγραφής μπορούν να εγγραφούν και να αναλυθούν αργότερα, ακόμα και αφότου το πρόγραμμα έχει κλείσει. Αυτό σημαίνει πως μέσα από αυτά μπορούμε να εντοπίσουμε τυχόν προβλήματα ώστε, με την ανάλογη βοήθεια, να τα επιλύσουμε. Έχουμε δηλαδή έναν πολύ χρήσιμο και αναγκαίο «ρουφιανάκο» στο σύστημά μας.

Κατά κανόνα, κάθε Linux διανομή μα και οποιοδήποτε λειτουργικό σύστημα έχει ενσωματωμένα εργαλεία με τα οποία μπορούμε να δούμε όλα τα log files του συστήματός μας. Ένα τέτοιο είναι και το lnav.

Τι είναι το lnav

Πρόκειται για ένα απλό πρόγραμμα τερματικού που μπορεί να διαβάζει και να συγχωνεύει πολλαπλά αρχεία καταγραφής. Εκτός αυτού όμως, έχει και ορισμένα μοναδικά χαρακτηριστικά, όπως ενιαίο χρονοδιάγραμμα των αρχείων καταγραφής από πολλαπλές πηγές, υποστήριξη SQL query, επισήμανση σύνταξης, regex searching μέσα στα αρχεία καταγραφής και πολλά άλλα.

Εννοείται πως ο κώδικάς του είναι διαθέσιμος σε όλους (BSD 2-Clause).

Βασικά χαρακτηριστικά

  • Υποστήριξη πολλαπλών τύπων αρχείων καταγραφής με αυτόματη ανίχνευση μορφής (format)
  • Υποστήριξη αρχείων καταγραφής πρόσβασης στο Διαδίκτυο (Apache), CUPS, syslog, glog, dpkg.log κλπ.
  • Ενιαία προβολή βασισμένη σε timestamps («χρονικά σήματα») μηνυμάτων από πολλαπλά αρχεία καταγραφής που μειώνουν την πολλαπλή αντιστοίχιση αρχείων
  • Φιλτράρισμα αναζήτησης
  • Επαναδιαμόρφωση της δομής δεδομένων (XML/JSON) για ευκολότερη ανάγνωση
  • Query logs χρησιμοποιώντας εντολές SQL σε εικονικούς πίνακες SQLite
  • «Live» viewer ώστε να μπορείτε να κρατήσετε το lnav ανοιχτό και να ενημερώνεστε σε πραγματικό χρόνο
  • Δημιουργία καρτελών (tabs) και επισήμανση σύνταξης (highlighting)

και αρκετά ακόμα χαρακτηριστικά που μπορείτε να δείτε στη σχετική σελίδα του.

Η πιο πρόσφατη έκδοση (Φεβρουάριος 2022) είναι η 0.10.1 με σημαντικές προσθήκες, βελτιώσεις στη διεπαφή και διορθώσεις σφαλμάτων. Στα περισσότερα αποθετήρια των διανομών όμως θα βρείτε, δυστυχώς, κάποια παλιότερη έκδοση.

Εντούτοις, μπορείτε να έχετε πανεύκολα την τελευταία του έκδοση, καθώς διαθέτει έτοιμα πακέτα deb, rpm, γενικό Linux binary αρχείο (όλα με static linking ώστε να μην υπάρχει πρόβλημα με εξαρτήσεις), μα και έκδοση Snap.

Κατεβάστε το lnav.

Βασική χρήση

Για να το δείτε σε δράση, αρκεί να ανοίξετε το τερματικό σας και να δώσετε την εντολή:

lnav

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

-a

θα δείτε τα πιο πρόσφατα αρχεία καταγραφής, ενώ με την

-r

τα παλιότερα.
Αντίστοιχα, μπορείτε να επιλέξετε την προβολή όλων των αρχείων καταγραφής από το /var/log με την εντολή:

lnav /var/log

Περισσότερα για τις παραμέτρους θα βρείτε στην τεκμηρίωσή του.

Όπως και να έχει, είναι ένα πολύ καλό και χρήσιμο εργαλείο. Αν μη τι άλλο, «βάλτε το στην άκρη» και αχρείαστο να είναι.

Η ιστοσελίδα του lnav,

6 «Μου αρέσει»