Επιστροφή στο blog

Πώς να εγκαταστήσετε το Elastic Stack στο Ubuntu 18.04

Πώς να εγκαταστήσετε το Elastic Stack στο Ubuntu 18.04

The Elastic Stack (προηγουμένως γνωστό ως ELK Stack) είναι μια ισχυρή λύση για κεντρική καταγραφή. Είναι μια συλλογή λογισμικού ανοιχτού κώδικα που αναπτύχθηκε από την Elastic. Επιτρέπει στους διαχειριστές να αναζητούν, να αναλύουν και να οπτικοποιούν αρχεία καταγραφής που παράγονται από οποιαδήποτε πηγή σε οποιαδήποτε μορφή. Είναι μια πρακτική γνωστή ως κεντρική καταγραφή. Η κεντρική καταγραφή μπορεί να είναι πολύ χρήσιμη κατά την προσπάθεια εντοπισμού προβλημάτων με διακομιστές και εφαρμογές, καθώς επιτρέπει την αναζήτηση σε όλα τα αρχεία καταγραφής από ένα μόνο μέρος. Μπορεί επίσης να βοηθήσει στον εντοπισμό προβλημάτων σε πολλούς διακομιστές συσχετίζοντας τα αρχεία καταγραφής σε μια συγκεκριμένη χρονική στιγμή.

In this guide, check out how to install Elastic Stack on Ubuntu 18.04. First, follow our tutorial to easily install your Ubuntu server on CloudSigma.

The Elastic Stack on Ubuntu

Το Elastic Stack αποτελείται από τα ακόλουθα στοιχεία:

  • Elasticsearch: A distributed RESTful search engine. It stores all the data collected.
  • Logstash: The data processing piece of the Elastic Stack. It sends incoming data to Elasticsearch.
  • Kibana: A web interface, offering search, and log visualization features.
  • Beats: A lightweight, single-purpose data transmitter. It can send data from numerous machines to Logstash or Elasticsearch.

Θα πρέπει να εγκαταστήσετε χειροκίνητα κάθε στοιχείο του stack.

Προαπαιτούμενα

Πριν προχωρήσετε στην εγκατάσταση του the Elastic Stack, πρέπει να πληρούνται αρκετές απαιτήσεις συστήματος:

Note that the amount of storage depends on the number of logs to be collected and stored. Besides, the Elastic Stack also deals with valuable information about the server. To keep the data transmission secure, we strongly recommend configuring a TLS/SSL certificate. Follow this tutorial to acquire a free SSL certificate on your Nginx server.

Εκτός από έναν κρυπτογραφημένο διακομιστή, θα είναι επίσης απαραίτητα τα ακόλουθα βήματα:

  • Ένα FQDN (πλήρως αναγνωρισμένο όνομα τομέα). Σε αυτόν τον οδηγό, θα είναι το <domain>.
  • Και οι δύο εγγραφές DNS των ακόλουθων τομέων κατευθύνουν στον διακομιστή.
    • Μια εγγραφή A με το <domain> να δείχνει στη δημόσια IP του διακομιστή.
    • Μια εγγραφή A με το www.<domain> να δείχνει στη δημόσια IP του διακομιστή.

Εγκατάσταση του Elastic Stack

  • Διαμόρφωση του Elastic repo

Τα στοιχεία του Elastic Stack δεν είναι διαθέσιμα απευθείας από το επίσημο αποθετήριο του Ubuntu. Ευτυχώς, το Ubuntu επιτρέπει σε αποθετήρια 3ων κατασκευαστών να εγκαθιστούν πακέτα. Για τον σκοπό μας, θα προσθέσουμε το αποθετήριο πακέτων της Elastic. Το αποθετήριο προσφέρει όλες τις τελευταίες ενημερώσεις πακέτων όλων των πακέτων Elastic. Όλα τα πακέτα Elastic είναι υπογεγραμμένα με το κλειδί υπογραφής Elasticsearch για την αποτροπή πλαστογράφησης πακέτων. Αρχικά, προσθέστε το κλειδί στο keyring του Ubuntu:

Στη συνέχεια, προσθέστε τη λίστα πηγών Elastic στον κατάλογο “sources.list.d”. Είναι ο αποκλειστικός κατάλογος που χρησιμοποιεί το APT για την αναζήτηση νέων πηγών:

Τέλος, ενημερώστε την προσωρινή μνήμη (cache) του APT:

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

  • Εγκατάσταση και διαμόρφωση του Elasticsearch

Μόλις διαμορφωθεί το Elastic repo, το APT είναι έτοιμο να κατεβάσει και να εγκαταστήσει όλα τα πακέτα Elastic. Εκτελέστε την ακόλουθη εντολή για να εγκαταστήσετε το Elasticsearch:

Τώρα μπορείτε να ρυθμίσετε το Elasticsearch. Το αρχείο “elasticsearch.yml” παρέχει επιλογές ρύθμισης παραμέτρων σχετικά με συμπλέγματα (clusters), κόμβους (nodes), διαδρομές, δίκτυα, μνήμη, πύλη (gateway) και άλλα. Τα περισσότερα από αυτά είναι προ-ρυθμισμένα στο αρχείο. Στη συνέχεια, ανοίξτε το αρχείο ρυθμίσεων του Elasticsearch με έναν επεξεργαστή κειμένου της επιλογής σας:

Το Elasticsearch ακούει στη θύρα 9200 από οπουδήποτε. Συνιστούμε να περιορίσετε την εξωτερική πρόσβαση στο Elasticsearch για να αποτρέψετε τρίτους από το να διαβάσουν τα δεδομένα ή να τερματίσουν τη λειτουργία των συμπλεγμάτων Elasticsearch χρησιμοποιώντας το REST API του. Για να περιορίσετε την πρόσβαση στο Elasticsearch και να ενισχύσετε την ασφάλειά του, αφαιρέστε το σχόλιο από την ακόλουθη γραμμή και αντικαταστήστε την τιμή της:

network.host: localhost

Εάν το Elasticsearch πρόκειται να ακούει σε μια συγκεκριμένη διεύθυνση IP, αντικαταστήστε το “localhost” με τη διεύθυνση IP προορισμού. Αυτή είναι η ελάχιστη απαίτηση ρύθμισης παραμέτρων πριν από την εκτέλεση του Elasticsearch. Αποθηκεύστε και κλείστε το αρχείο ρυθμίσεων. Στη συνέχεια, εκκινήστε την υπηρεσία Elasticsearch. Μπορεί να χρειαστούν μερικές στιγμές για να ξεκινήσει το Elasticsearch:

Μετά από αυτό, πρέπει να βεβαιωθείτε ότι το Elasticsearch ξεκινά κάθε φορά που εκκινείται ο διακομιστής:

Η ακόλουθη εντολή θα επαληθεύσει εάν η υπηρεσία Elasticsearch εκτελείται. Το μόνο που απαιτείται είναι η αποστολή ενός αιτήματος HTTP:

sending an HTTP request

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

Εγκατάσταση και ρύθμιση παραμέτρων του Kibana Dashboard

Το Kibana είναι άμεσα διαθέσιμο από το αποθετήριο της Elastic. Σημειώστε ότι θα πρέπει να εγκαταστήσετε το Kibana μόνο αφού έχετε ήδη εγκαταστήσει το Elasticsearch. Υποθέτοντας ότι το αποθετήριο είναι ήδη διαθέσιμο, το APT μπορεί να κατεβάσει και να εγκαταστήσει απευθείας το Kibana:

Μόλις εγκατασταθεί, ενεργοποιήστε και εκκινήστε την υπηρεσία Kibana:

Από προεπιλογή, το Kibana είναι ρυθμισμένο να ακούει μόνο στο “localhost”. Για εξωτερική πρόσβαση, απαιτείται η ρύθμιση ενός αντίστροφου διακομιστή μεσολάβησης. Εδώ, το Nginx θα είναι ο αντίστροφος διακομιστής μεσολάβησης. Χρησιμοποιήστε την εντολή openssl για τη δημιουργία ενός διαχειριστή χρήστη Kibana. Θα είναι ο λογαριασμός χρήστη για την πρόσβαση στη διεπαφή ιστού του Kibana. Εδώ, το παράδειγμα ονόματος χρήστη θα είναι “kibana_admin”. Για να διασφαλίσετε καλύτερη ασφάλεια, συνιστούμε τη χρήση ενός μη τυπικού ονόματος χρήστη. Η ακόλουθη εντολή θα δημιουργήσει έναν χρήστη διαχειριστή για το Kibana. Το όνομα χρήστη και ο κωδικός πρόσβασης θα δημιουργηθούν και θα αποθηκευτούν στο αρχείο “htpasswd.users”. Το Nginx θα πρέπει να ρυθμιστεί ώστε να χρησιμοποιεί το όνομα χρήστη και τον κωδικό πρόσβασης:

Εισαγάγετε και επιβεβαιώστε έναν κωδικό πρόσβασης στο μήνυμα προτροπής. Αυτός ο κωδικός πρόσβασης θα είναι σημαντικός για την πρόσβαση στη διεπαφή του Kibana. Μετά από αυτό, πρέπει να δημιουργήσετε ένα αρχείο block διακομιστή Nginx. Για επίδειξη, θα είναι το example.com. Μπορεί επίσης να είναι οποιοδήποτε άλλο περιγραφικό όνομα. Εάν υπάρχουν εγγραφές FQDN και DNS ρυθμισμένες για τον διακομιστή, το όνομα του αρχείου μπορεί επίσης να βασίζεται στο FQDN:

Εάν υπάρχει ήδη περιεχόμενο, αφαιρέστε το και αντικαταστήστε το με τις ακόλουθες γραμμές κώδικα:

Αποθηκεύστε και κλείστε το αρχείο. Δημιουργήστε έναν συμβολικό σύνδεσμο της νέας ρύθμισης στον κατάλογο «sites-enabled». Εάν υπάρχει ήδη κάποιος σύνδεσμος με το ίδιο όνομα αρχείου, τότε αυτό το βήμα μπορεί να μην είναι απαραίτητο:

Η ακόλουθη εντολή θα ζητήσει από το Nginx να ελέγξει αν υπάρχει κάποιο συντακτικό σφάλμα:

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

Πείτε στο UFW να επιτρέψει τη σύνδεση στο Nginx:

Το Kibana θα πρέπει τώρα να είναι προσβάσιμο μέσω του FQDN ή της δημόσιας διεύθυνσης IP του διακομιστή Elastic Stack. Ελέγξτε τη σελίδα κατάστασης του διακομιστή Kibana:

status page

Εγκατάσταση και ρύθμιση του Logstash

Παρόλο που το Beats μπορεί να στείλει απευθείας δεδομένα στη βάση δεδομένων του Elasticsearch’s, συνιστάται η χρήση του Logstash για την επεξεργασία των δεδομένων. Το Logstash μπορεί να συλλέξει τα δεδομένα και να τα μετατρέψει σε μια κοινή μορφή πριν τα εξαγάγει σε μια άλλη βάση δεδομένων. Εκτελέστε την ακόλουθη εντολή APT για να εγκαταστήσετε το Logstash:

Μόλις ολοκληρωθεί η εγκατάσταση, ήρθε η ώρα να ρυθμίσετε το Logstash. Τα αρχεία ρυθμίσεων του Logstash είναι σε μορφή JSON. Μπορείτε να τα βρείτε όλα στον κατάλογο «/etc/logstash/conf.d». Είναι χρήσιμο να σκέφτεστε το Logstash ως έναν αγωγό (pipeline), που δέχεται δεδομένα στο ένα άκρο, τα επεξεργάζεται και τα στέλνει στον προορισμό. Ένας αγωγός Logstash απαιτεί δύο υποχρεωτικά στοιχεία – input και output με ένα προαιρετικό στοιχείο – filter. Το πρόσθετο input λαμβάνει τα δεδομένα, το πρόσθετο filter επεξεργάζεται τα δεδομένα και το πρόσθετο output εγγράφει τα δεδομένα στον προορισμό. Η ακόλουθη εντολή θα δημιουργήσει ένα αρχείο ρυθμίσεων που θα ορίσει το Logstash για είσοδο Filebeat:

Εισαγάγετε την ακόλουθη ρύθμιση input . Περιγράφει μια είσοδο beats που θα ακούει στη θύρα 5044 μέσω TCP:

Το επόμενο βήμα είναι να δημιουργήσετε ένα αρχείο ρυθμίσεων με όνομα «10-syslog-filter.conf». Θα το χρησιμοποιήσουμε για να ορίσουμε ένα φίλτρο για syslogs (αρχεία καταγραφής συστήματος):

Εισαγάγετε τον ακόλουθο κώδικα ρύθμισης syslog . Αυτός ο κώδικας είναι διαθέσιμος απευθείας από τον Elastic guide. Αυτός ο κώδικας εξηγεί τη ρύθμιση input στο Logstash:

Το επόμενο αρχείο ρυθμίσεων θα αφορά την έξοδο. Ανοίξτε ένα νέο αρχείο με όνομα “30-elasticsearch-output.conf”:

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

Δοκιμάστε τη ρύθμιση παραμέτρων του Logstash. Στη συνέχεια, εκτελέστε την ακόλουθη εντολή:

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

Τώρα που το Logstash εκτελείται με επιτυχία και είναι πλήρως ρυθμισμένο, ας εγκαταστήσουμε το Filebeat.

Εγκατάσταση και ρύθμιση παραμέτρων του Filebeat

Το Elastic Stack χρησιμοποιεί αποστολείς δεδομένων, γνωστούς ως «Beats», για τη συλλογή δεδομένων από διάφορες πηγές και τη μεταφορά τους στο Logstash/Elasticsearch. Ακολουθεί μια σύντομη λίστα με τα διαθέσιμα Beats από την Elastic:

  • Filebeat: Συλλογή/αποστολή αρχείων καταγραφής.
  • Metricbeat: Συλλογή/αποστολή μετρικών από συστήματα και υπηρεσίες.
  • Packetbeat: Συλλογή/ανάλυση δεδομένων δικτύου.
  • Winlogbeat: Συλλογή αρχείων καταγραφής συμβάντων των Windows.
  • Auditbeat: Συλλογή δεδομένων του πλαισίου ελέγχου Linux και παρακολούθηση της ακεραιότητας των αρχείων.
  • Heartbeat: Παρακολούθηση υπηρεσιών για τη διαθεσιμότητά τους.

Για τους σκοπούς αυτού του οδηγού, θα χρειαστούμε το Filebeat για την αποστολή τοπικών αρχείων καταγραφής στο Elastic Stack. Αρχικά, εγκαταστήστε το Filebeat:

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

Βρείτε την ενότητα “output.elasticsearch” και σχολιάστε τις ακόλουθες γραμμές. Αυτό θα ρυθμίσει το Filebeat να στέλνει απευθείας συμβάντα στο Elasticsearch/Logstash για πρόσθετη επεξεργασία. Στη συνέχεια, μεταβείτε στην ενότητα “output.logstash.” Έπειτα, αποσχολιάστε τις γραμμές:

output.logstash

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

Η ακόλουθη εντολή Filebeat θα εμφανίσει όλες τις ενεργοποιημένες και απενεργοποιημένες ενότητες:

Από προεπιλογή, το Filebeat έχει ρυθμιστεί να ακολουθεί τις προεπιλεγμένες διαδρομές για τα αρχεία καταγραφής syslog και εξουσιοδότησης. Οι παράμετροι των ενοτήτων είναι διαθέσιμες στο αρχείο ρυθμίσεων “/etc/filebeat/modules.d/system.yml”.

Το επόμενο βήμα είναι να φορτώσετε το πρότυπο ευρετηρίου στο Elasticsearch. Ένα ευρετήριο Elasticsearch υποδηλώνει μια συλλογή εγγράφων που μοιράζονται παρόμοια χαρακτηριστικά. Κάθε ευρετήριο συνοδεύεται από ένα όνομα. Το όνομα είναι απαραίτητο κατά την εκτέλεση διαφόρων λειτουργιών σε αυτό. Το πρότυπο ευρετηρίου εφαρμόζεται αυτόματα κάθε φορά που δημιουργείται ένα νέο ευρετήριο. Στη συνέχεια, φορτώστε το πρότυπο:

Το Filebeat περιέχει ένα δείγμα πίνακα ελέγχου για το Kibana από προεπιλογή. Βοηθά στην οπτικοποίηση των δεδομένων του Filebeat στο Kibana. Ωστόσο, πριν χρησιμοποιήσετε τον πίνακα ελέγχου, είναι απαραίτητο να δημιουργήσετε το μοτίβο ευρετηρίου και να φορτώσετε τους πίνακες ελέγχου στο Kibana. Κατά τη φόρτωση των πινάκων ελέγχου, το Filebeat επικοινωνεί με το Elasticsearch για πληροφορίες έκδοσης. Για τη φόρτωση των πινάκων ελέγχου, ενώ το Logstash είναι ενεργοποιημένο, απαιτείται να είναι απενεργοποιημένη η έξοδος Logstash και ενεργοποιημένη η έξοδος Elasticsearch. Η ακόλουθη εντολή θα κάνει αυτή τη δουλειά:

Τέλος, μπορείτε να εκκινήσετε το Filebeat:

Τώρα, ήρθε η ώρα να δοκιμάσετε τη ρύθμιση του Elastic Stack. Εάν έχει ρυθμιστεί σωστά, το αποτέλεσμα θα μοιάζει κάπως έτσι:

Elastic Stack configuration

Εάν το αποτέλεσμα αναφέρει 0 συνολικά αποτελέσματα (hits), το Elasticsearch δεν φορτώνει κανένα αρχείο καταγραφής στο ευρετήριο που αναζητήσαμε. Αυτό υποδηλώνει ότι υπήρξε σφάλμα στη ρύθμιση. Εάν το αποτέλεσμα ήταν το αναμενόμενο, τότε το Elastic Stack έχει ρυθμιστεί με επιτυχία.

Επισκόπηση πινάκων ελέγχου Kibana

Τώρα, ήρθε η ώρα να εξερευνήσετε τη διεπαφή ιστού του Kibana που έχουμε ήδη εγκαταστήσει. Αρχικά, ανοίξτε τον πίνακα ελέγχου του Kibana. Θα πρέπει να βρίσκεται στο FQDN ή στη δημόσια διεύθυνση IP του διακομιστή Elastic Stack:

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

Elastic stack home

Από την αριστερή γραμμή πλοήγησης, επιλέξτε «Discover». Στη συνέχεια, επιλέξτε το μοτίβο «filebeat-*». Εμφανίζει όλα τα logs που συλλέχθηκαν τα τελευταία 15 λεπτά. Είναι δυνατή η αναζήτηση και η περιήγηση στα logs και η προσαρμογή του dashboard:

customize the dashboard

Από την αριστερή γραμμή πλοήγησης, μεταβείτε στο Dashboard >> Filebeat System. Εδώ, είναι διαθέσιμα όλα τα δείγματα dashboards από το system module του Filebeat.

Στο ακόλουθο παράδειγμα, παρουσιάζονται λεπτομερώς διάφορα στατιστικά στοιχεία με βάση τα μηνύματα syslog:

Elastic Stack dashboard

Μπορεί επίσης να αναφέρει ποιοι χρήστες έχουν εκτελέσει εντολές με sudo:

executed commands

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

Τελικές Σκέψεις

Το Elastic Stack είναι μια ισχυρή λύση για την ανάλυση των logs του συστήματος. Έχετε υπόψη σας ότι παρόλο που οποιοδήποτε log ή ευρετηριασμένο δεδομένο μπορεί να σταλεί στο Logstash χρησιμοποιώντας Beats, γίνεται πιο χρήσιμο όταν αναλύεται και δομείται μέσω των φίλτρων του Logstash.

Καλή συνέχεια!

author

Hark Labs

Συγγραφέας · CloudSigma

Ο Preslav Dobrev είναι Δημιουργικός Σχεδιαστής στην CloudSigma, με εστίαση στη συνεπή επιχειρηματική ταυτότητα μέσω παραδοσιακών και καινοτόμων καναλιών μάρκετινγκ. Διαθέτει την ικανότητα να συνδυάζει το καλλιτεχνικό όραμα με το στρατηγικό μάρκετινγκ για τη δημιουργία εντυπωσιακών αφηγήσεων επωνυμίας.

Σχόλια

Δεν υπάρχουν σχόλια ακόμα. Γράψτε το πρώτο.