Logstash στο Docker

Logstash Sto Docker



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

Σε αυτό το σεμινάριο, θα σας καθοδηγήσουμε στη διαδικασία εκτέλεσης του Logstash σε ένα κοντέινερ Docker με βασική διαμόρφωση.

Απαιτήσεις:

Πριν ξεκινήσουμε με το σεμινάριο, βεβαιωθείτε ότι έχετε τα εξής:







  1. Εγκατεστημένο Docker στον κεντρικό υπολογιστή σας (συνιστάται η έκδοση 23 και νεότερη)
  2. Εγκατεστημένο Docker Compose στον υπολογιστή σας

Εφόσον πληρούνται οι δεδομένες απαιτήσεις, μπορούμε να προχωρήσουμε με το σεμινάριο.



Ρυθμίστε το αρχείο διαμόρφωσης Logstash

Το Logstash χρησιμοποιεί τα αρχεία διαμόρφωσης για να καθορίσει τον τρόπο με τον οποίο τα δεδομένα απορροφώνται, φιλτράρονται και αποστέλλονται στην έξοδο. Υπάρχει ποικιλία επιλογών που μπορείτε να διαμορφώσετε όπως μπορείτε να ανατρέξετε στην επίσημη τεκμηρίωση.



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





Δημιουργήστε ένα αρχείο που ονομάζεται 'logstash.conf' και προσθέστε τη διαμόρφωση ως εξής:

εισαγωγή {
αρχείο {
μονοπάτι => '/var/log/apache/access.log'

αρχική_θέση => 'αρχή'

sincedb_path => '/dev/null'

ignore_older => 0
}
}

φίλτρο {
αν [μήνυμα] =~ 'ΛΑΘΟΣ' {
γκροκ {
ταίριασμα => { 'μήνυμα' => '%{COMBINEDAPACHELOG}' }
}
}
}

έξοδος {
αρχείο {
μονοπάτι => '/var/log/apache/error_logs.log'
}
}

Το προηγούμενο αρχείο ορίζει τη διαμόρφωση όπως φαίνεται παρακάτω:

  1. Ενότητα εισαγωγής – Η ενότητα εισαγωγής χρησιμοποιεί το πρόσθετο εισαγωγής αρχείου για να διαβάσει το αρχείο καταγραφής του Apache που βρίσκεται στο /var/log/apache/access.log.
    • Στη συνέχεια, ορίσαμε τη θέση έναρξης στην αρχή που επιτρέπει στο Logstash να διαβάσει ολόκληρο το αρχείο από την αρχή.
    • Sincedb_path – Αυτή η παράμετρος μας επιτρέπει να απενεργοποιήσουμε την παρακολούθηση sincedb του Logstash ορίζοντας την τιμή σε /dev/null. Αυτό διασφαλίζει ότι το Logstash διαβάζει πάντα από την αρχή του αρχείου.
    • Ignore_older – Η ρύθμιση της τιμής αυτής της παραμέτρου σε 0 επιτρέπει στο Logstash να επεξεργάζεται όλες τις καταχωρήσεις του αρχείου καταγραφής.
  2. Ενότητα φίλτρου – Στην ενότητα φίλτρου, ορίζουμε το μοτίβο φίλτρου για να ελέγξουμε εάν το μήνυμα καταγραφής περιέχει τη λέξη ERROR. Μπορείτε να προσαρμόσετε τις συνθήκες για να φιλτράρουν τα μπλοκ φίλτρου για πιο ακριβείς αντιστοιχίσεις στο αρχείο.
    • Εάν πληρούται η συνθήκη, χρησιμοποιούμε το φίλτρο grok για να αναλύσουμε τη γραμμή καταγραφής του Apache χρησιμοποιώντας το μοτίβο COMBINEDAPACHELOG που είναι ένα ενσωματωμένο μοτίβο στο Logstash για την ανάλυση των αρχείων καταγραφής του Apache.
  3. Ενότητα εξόδου – Αυτή η ενότητα μας επιτρέπει να ορίσουμε τη μορφή εξόδου για τις αντίστοιχες καταχωρήσεις.
    • Στην περίπτωσή μας, τα γράφουμε στο αρχείο /var/log/apache/error_logs.log χρησιμοποιώντας την παράμετρο διαδρομής.

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

Ανατρέξτε περισσότερα σχετικά με τη δημιουργία και τη διαμόρφωση των αγωγών Logstash στον ακόλουθο παρεχόμενο πόρο τεκμηρίωσης:

https://www.elastic.co/guide/en/logstash/current/configuration.html

Δημιουργήστε το αρχείο Docker

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

Επεξεργαστείτε αυτό το αρχείο και προσθέστε τις καταχωρήσεις ως εξής:

ΑΠΟ docker.elastic.co/logstash/logstash:8.9.2

ΑΝΤΙΓΡΑΦΗ logstash.conf /usr/share/logstash/pipeline/logstash.conf

Στο συγκεκριμένο παράδειγμα, ορίζουμε την εικόνα βάσης ως την επίσημη εικόνα Logstash χρησιμοποιώντας την έκδοση 8.9.2.

Στη συνέχεια, αντιγράφουμε το αρχείο 'logstash.conf' που δημιουργήσαμε στο /usr/share/logstash/pipeline/logstash.conf της εικόνας.

Δημιουργήστε την εικόνα Docker

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

$ κατασκευή λιμενεργατών custom-logstash-image .

Εκτελέστε το Logstash Container

Τώρα που δημιουργήσαμε την εικόνα του Docker, μπορούμε να εκτελέσουμε ένα κοντέινερ Logstash χρησιμοποιώντας την εντολή 'run' του Docker ως εξής:

$ τρέξιμο docker -ρε --όνομα logstash-server custom-logstash-image

Αυτό θα πρέπει να εκτελέσει το κοντέινερ Logstash χρησιμοποιώντας την εικόνα που δημιουργήσαμε στο προηγούμενο βήμα.

Επαληθεύστε τα αρχεία καταγραφής κοντέινερ Logstash

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

$ κούτσουρα αποβάθρας < όνομα_κοντέινερ >

Παραγωγή:

συμπέρασμα

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