Γεια σας, με λένε Eugene, είμαι αρχηγός ομάδας B2B στο Citymobil. Ένα από τα καθήκοντα της ομάδας μας είναι να υποστηρίζει ενσωματώσεις για την παραγγελία ταξί από συνεργάτες και για να διασφαλίσουμε μια σταθερή εξυπηρέτηση, πρέπει πάντα να κατανοούμε τι συμβαίνει στις μικροϋπηρεσίες μας. Και για αυτό πρέπει να παρακολουθείτε συνεχώς τα αρχεία καταγραφής.
Στο Citymobil, χρησιμοποιούμε τη στοίβα ELK (ElasticSearch, Logstash, Kibana) για να εργαστούμε με αρχεία καταγραφής και ο όγκος των δεδομένων που έρχονται εκεί είναι τεράστιος. Η εύρεση προβλημάτων σε αυτή τη μάζα αιτημάτων που μπορεί να εμφανιστούν μετά την ανάπτυξη του νέου κώδικα είναι αρκετά δύσκολη. Και για την οπτική αναγνώρισή τους, η Kibana έχει μια ενότητα Πίνακας εργαλείων.
Υπάρχουν αρκετά άρθρα στο Habré με παραδείγματα για το πώς να ρυθμίσετε μια στοίβα ELK για λήψη και αποθήκευση δεδομένων, αλλά δεν υπάρχουν σχετικό υλικό για τη δημιουργία ενός πίνακα ελέγχου. Επομένως, θέλω να δείξω πώς να δημιουργήσετε μια οπτική αναπαράσταση δεδομένων με βάση τα εισερχόμενα αρχεία καταγραφής στο Kibana.
προσαρμογή
Για να γίνει πιο σαφές, δημιούργησα μια εικόνα Docker με ELK και Filebeat. Και τοποθετείται σε ένα δοχείο ένα μικρό
Κλωνοποιήστε το αποθετήριο ρυθμίσεων docker-compose
και ρυθμίσεις ELK και εκκινήστε το με την εντολή docker-compose up
. Σκόπιμα δεν προσθέτω κλειδί -d
για να δείτε την πρόοδο της στοίβας των ΕΛΚ.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Εάν όλα έχουν ρυθμιστεί σωστά, τότε θα δούμε μια καταχώριση στα αρχεία καταγραφής (ίσως όχι αμέσως, η διαδικασία εκκίνησης ενός κοντέινερ με ολόκληρη τη στοίβα μπορεί να διαρκέσει αρκετά λεπτά):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
διεύθυνση localhost:5061
Η Κιμπάνα πρέπει να ανοίξει.
Το μόνο πράγμα που πρέπει να ρυθμίσουμε είναι να δημιουργήσουμε ένα μοτίβο ευρετηρίου για το Kibana με πληροφορίες σχετικά με τα δεδομένα που θα εμφανίζονται. Για να γίνει αυτό, θα εκτελέσουμε ένα αίτημα curl ή θα εκτελέσουμε μια σειρά ενεργειών στη γραφική διεπαφή.
$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
-H 'Content-Type: application/json'
-H 'kbn-xsrf: true'
-d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'
Δημιουργία μοτίβου ευρετηρίου μέσω του GUI
Για να ρυθμίσετε τις παραμέτρους, επιλέξτε την ενότητα Discover στο αριστερό μενού και μεταβείτε στη σελίδα δημιουργίας μοτίβων ευρετηρίου.
Κάνοντας κλικ στο κουμπί "Δημιουργία μοτίβου ευρετηρίου", φτάνουμε στη σελίδα δημιουργίας ευρετηρίου. Στο πεδίο "Όνομα μοτίβου ευρετηρίου", πληκτρολογήστε "logstash-*". Εάν όλα έχουν ρυθμιστεί σωστά, κάτω από το Kibana θα εμφανιστούν τα ευρετήρια που εμπίπτουν στον κανόνα.
Στην επόμενη σελίδα, επιλέξτε το πεδίο κλειδιού με χρονική σήμανση, στην περίπτωσή μας είναι @timestamp
.
Αυτό θα εμφανίσει τη σελίδα ρυθμίσεων ευρετηρίου, αλλά δεν απαιτούνται περαιτέρω ενέργειες από εμάς αυτήν τη στιγμή.
Τώρα μπορούμε να πάμε ξανά στην ενότητα Discover, όπου θα δούμε τις εγγραφές του ημερολογίου.
Πίνακας διαχείρισης
Στο αριστερό μενού, κάντε κλικ στην ενότητα Δημιουργία πίνακα ελέγχου και μεταβείτε στην αντίστοιχη σελίδα.
Κάντε κλικ στο "Δημιουργία νέου πίνακα ελέγχου" και μεταβείτε στη σελίδα για την προσθήκη αντικειμένων στον πίνακα ελέγχου.
Κάντε κλικ στο κουμπί "Δημιουργία νέου" και το σύστημα θα σας ζητήσει να επιλέξετε τον τύπο εμφάνισης δεδομένων. Το Kibana έχει μεγάλο αριθμό από αυτά, αλλά θα εξετάσουμε τη δημιουργία μιας γραφικής αναπαράστασης της "Κάθετης γραμμής" και ενός πίνακα "Πίνακας δεδομένων". Άλλοι τύποι παρουσίασης διαμορφώνονται με παρόμοιο τρόπο.
Ορισμένα διαθέσιμα αντικείμενα φέρουν τις ετικέτες B και E, πράγμα που σημαίνει ότι η μορφή είναι πειραματική ή σε δοκιμή beta. Με την πάροδο του χρόνου, η μορφή μπορεί να αλλάξει ή να εξαφανιστεί εντελώς από το Kibana.
Κάθετη ράβδος
Για το παράδειγμα της «Κάθετης γραμμής», ας δημιουργήσουμε ένα ιστόγραμμα της αναλογίας των καταστάσεων επιτυχημένης και αποτυχημένης απόκρισης της υπηρεσίας μας. Στο τέλος των ρυθμίσεων, έχουμε το ακόλουθο γράφημα:
Θα ταξινομήσουμε όλα τα αιτήματα με κατάσταση απάντησης < 400 ως επιτυχημένα και >= 400 ως προβληματικά.
Για να δημιουργήσουμε ένα γράφημα «Κάθετης ράβδου», πρέπει να επιλέξουμε μια πηγή δεδομένων. Επιλέξτε το μοτίβο ευρετηρίου που δημιουργήσαμε νωρίτερα.
Από προεπιλογή, θα εμφανιστεί ένα ενιαίο συμπαγές γράφημα μετά την επιλογή μιας πηγής δεδομένων. Ας το στήσουμε.
Στο μπλοκ "Buckets", πατήστε το κουμπί "Add", επιλέξτε "X-asis" και ρυθμίστε τον άξονα X. Ας αφήσουμε κατά μέρος τις χρονικές σημάνσεις για τη λήψη των καταχωρήσεων στο αρχείο καταγραφής. Στο πεδίο "Συγκέντρωση", επιλέξτε "Ιστόγραμμα ημερομηνίας" και στο "Πεδίο" επιλέξτε "@timestamp", υποδεικνύοντας το πεδίο ώρας. Ας αφήσουμε το "Ελάχιστο διάστημα" στην κατάσταση "Αυτόματο" και θα προσαρμοστεί αυτόματα στην οθόνη μας.
Κάνοντας κλικ στο κουμπί «Ενημέρωση», θα δούμε ένα γράφημα με τον αριθμό των αιτημάτων κάθε 30 δευτερόλεπτα.
Τώρα ας ρυθμίσουμε τις στήλες κατά μήκος του άξονα Υ. Τώρα εμφανίζουμε τον συνολικό αριθμό των αιτημάτων στο επιλεγμένο χρονικό διάστημα.
Ας αλλάξουμε την τιμή "Aggregation" σε "Sum Bucket", που θα μας επιτρέψει να συνδυάσουμε δεδομένα για επιτυχημένα και ανεπιτυχή αιτήματα. Στο μπλοκ Bucket -> Aggregation, επιλέξτε τη συγκέντρωση κατά "Φίλτρα" και ορίστε το φιλτράρισμα με "statusCode >= 400". Και στο πεδίο "Προσαρμοσμένη ετικέτα", υποδεικνύουμε το όνομά μας της ένδειξης για πιο κατανοητή εμφάνιση στο υπόμνημα στο γράφημα και στη γενική λίστα.
Κάνοντας κλικ στο κουμπί "Ενημέρωση" κάτω από το μπλοκ ρυθμίσεων, θα λάβουμε ένα γράφημα με αιτήματα προβλημάτων.
Εάν κάνετε κλικ στον κύκλο δίπλα στο υπόμνημα, θα εμφανιστεί ένα παράθυρο στο οποίο μπορείτε να αλλάξετε το χρώμα των στηλών.
Τώρα ας προσθέσουμε δεδομένα για επιτυχημένα αιτήματα στο γράφημα. Στην ενότητα "Μετρήσεις", κάντε κλικ στο κουμπί "Προσθήκη" και επιλέξτε "Άξονας Υ".
Στη μέτρηση που δημιουργήθηκε, κάνουμε τις ίδιες ρυθμίσεις όπως για λανθασμένα αιτήματα. Μόνο στο φίλτρο καθορίζουμε "statusCode < 400".
Αλλάζοντας το χρώμα της νέας στήλης, έχουμε μια εμφάνιση της αναλογίας προβληματικών και επιτυχημένων αιτημάτων.
Κάνοντας κλικ στο κουμπί "Αποθήκευση" στο επάνω μέρος της οθόνης και προσδιορίζοντας το όνομα, θα δούμε το πρώτο γράφημα στον Πίνακα ελέγχου.
Πίνακας δεδομένων
Τώρα εξετάστε την προβολή πίνακα "Πίνακας δεδομένων". Ας δημιουργήσουμε έναν πίνακα με μια λίστα με όλες τις διευθύνσεις URL που ζητήθηκαν και τον αριθμό αυτών των αιτημάτων. Όπως και στο παράδειγμα της κάθετης γραμμής, επιλέγουμε πρώτα μια πηγή δεδομένων.
Μετά από αυτό, θα εμφανιστεί στην οθόνη ένας πίνακας με μία στήλη, ο οποίος δείχνει τον συνολικό αριθμό των αιτημάτων για το επιλεγμένο χρονικό διάστημα.
Θα αλλάξουμε μόνο το μπλοκ "Κάδοι". Κάντε κλικ στο κουμπί "Προσθήκη" και επιλέξτε "Διαίρεση σειρών".
Στο πεδίο "Συγκέντρωση", επιλέξτε "Όροι". Και στο πεδίο που εμφανίζεται "Πεδίο" επιλέξτε "url.keyword".
Καθορίζοντας την τιμή "Url" στο πεδίο "Προσαρμοσμένη ετικέτα" και κάνοντας κλικ στο "Ενημέρωση", θα λάβουμε τον επιθυμητό πίνακα με τον αριθμό των αιτημάτων για καθεμία από τις διευθύνσεις URL για την επιλεγμένη χρονική περίοδο.
Στο επάνω μέρος της οθόνης, κάντε ξανά κλικ στο κουμπί "Αποθήκευση" και καθορίστε το όνομα του πίνακα, για παράδειγμα URL. Ας επιστρέψουμε στον Πίνακα ελέγχου και ας δούμε να έχουν δημιουργηθεί και οι δύο προβολές.
Εργασία με ταμπλό
Κατά τη δημιουργία του Πίνακα εργαλείων, ορίζουμε μόνο τις παραμέτρους της κύριας προβολής στις ρυθμίσεις αντικειμένων οθόνης. Δεν έχει νόημα να προσδιορίζονται δεδομένα για φίλτρα σε αντικείμενα, για παράδειγμα, «εύρος ημερομηνιών», «φιλτράρισμα κατά παράγοντα χρήστη», «φιλτράρισμα κατά χώρα αιτήματος» κ.λπ. Είναι πολύ πιο βολικό να καθορίσετε την επιθυμητή χρονική περίοδο ή να ορίσετε το απαραίτητο φιλτράρισμα στον πίνακα ερωτημάτων, που βρίσκεται πάνω από τα αντικείμενα.
Τα φίλτρα που προστέθηκαν σε αυτόν τον πίνακα θα εφαρμοστούν σε ολόκληρο τον Πίνακα εργαλείων και όλα τα αντικείμενα οθόνης θα αναδημιουργηθούν σύμφωνα με τα πραγματικά φιλτραρισμένα δεδομένα.
Συμπέρασμα
Το Kibana είναι ένα ισχυρό εργαλείο που σας επιτρέπει να απεικονίσετε οποιαδήποτε δεδομένα με βολικό τρόπο. Προσπάθησα να δείξω τη ρύθμιση των δύο κύριων τύπων οθόνης. Αλλά άλλοι τύποι διαμορφώνονται με παρόμοιο τρόπο. Και η πληθώρα των ρυθμίσεων που άφησα "πίσω από τις σκηνές" θα σας επιτρέψει να προσαρμόσετε πολύ ευέλικτα τα γραφήματα για να ταιριάζουν στις ανάγκες σας.
Πηγή: www.habr.com