Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Γιατί να παρακολουθείτε το σύστημα διαχείρισης εγγράφων σας;

Από το 2005, η υποστήριξη τεκμηρίωσης στην VTB Bank «διαχειρίζεται» το σύστημα CompanyMedia. Το LMS απασχολεί πάνω από 60 χιλιάδες χρήστες που δημιουργούν περισσότερα από ένα εκατομμύριο νέα έγγραφα κάθε μήνα. Οι διακομιστές μας πρέπει να λειτουργούν 24 ώρες την ημέρα: σχεδόν ανά πάσα στιγμή υπάρχουν 2500–3000 άτομα στο σύστημα, τα οποία είναι συνδεδεμένα σε όλη τη χώρα, από το Petropavlovsk-Kamchatsky έως το Kaliningrad. Κάθε δευτερόλεπτο λειτουργίας LMS σημαίνει 10–15 αλλαγές.

Για να διασφαλίσουμε ότι το σύστημα εκπληρώνει με ακρίβεια τις εργασίες που του έχουν ανατεθεί, έχουμε αναπτύξει μια υποδομή ανεκτική σε σφάλματα χρησιμοποιώντας διακομιστές μεσολάβησης, εξισορρόπηση αιτημάτων, προστασία πληροφοριών, αναζήτηση πλήρους κειμένου, διαδρομές ενοποίησης και δημιουργία αντιγράφων ασφαλείας. Η υποστήριξη και η διαχείριση ενός έργου αυτής της κλίμακας απαιτεί τεράστιους πόρους. Οι διαχειριστές παρακολουθούν βασικές πληροφορίες σχετικά με τη λειτουργία του διακομιστή, το φορτίο RAM, την ώρα της CPU, το υποσύστημα I/O και ούτω καθεξής όλο το εικοσιτετράωρο. Αλλά εκτός από αυτό, χρειάζονται πιο λεπτές αναλύσεις:

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

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

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

Πώς όλα άρχισαν

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

  • για την παρακολούθηση της υποδομής πληροφορικής των υπηρεσιών συστήματος·
  • για την παρακολούθηση της εμφάνισης σφαλμάτων στη λειτουργία του LMS.

Όλα ξεκίνησαν με μια ενιαία δωρεάν εφαρμογή παρακολούθησης. Αφού περάσαμε από διάφορες επιλογές, καταλήξαμε στο Zabbix - δωρεάν λογισμικό που αρχικά γράφτηκε για τραπεζικές υπηρεσίες και εξοπλισμό. Αυτό το web-based σύστημα PHP, το οποίο μπορεί να αποθηκεύσει δεδομένα σε MySQL, PostgreSQL, SQLite ή Oracle Database, ταίριαζε απόλυτα στις ανάγκες μας.

Το Zabbix εκτελεί τους πράκτορες του σε κάθε διακομιστή και συλλέγει πληροφορίες για μετρήσεις ενδιαφέροντος σε πραγματικό χρόνο σε μια ενιαία βάση δεδομένων. Χρησιμοποιώντας την εφαρμογή, είναι βολικό να συλλέγετε δεδομένα σχετικά με το φόρτο στους επεξεργαστές και τη μνήμη RAM, τη χρήση του δικτύου και άλλων στοιχείων, να ελέγχετε τη διαθεσιμότητα και την απόκριση τυπικών υπηρεσιών (SMTP ή HTTP), να εκτελείτε εξωτερικά προγράμματα και να υποστηρίζετε την παρακολούθηση μέσω SNMP.

Έχοντας αναπτύξει το Zabbix, διαμορφώσαμε τις τυπικές μετρήσεις υλικού και στην αρχή αυτό ήταν αρκετό. Αλλά το VTB SDO αναπτύσσεται και μεγαλώνει συνεχώς: το 2016, ο αριθμός των διακομιστών αυξήθηκε αισθητά, εμφανίστηκαν διαδικασίες μετάβασης, η Τράπεζα της Μόσχας, η VTB Capital και η VTB24 εντάχθηκαν στο σύστημα. Δεν υπάρχουν πλέον αρκετές τυπικές μετρήσεις και διδάξαμε στο Zabbix να παρακολουθεί πληροφορίες σχετικά με την παρουσία ουρών σε κάθε έναν από τους τόμους που είναι συνδεδεμένοι στον διακομιστή (εκτός του πλαισίου Zabbix αντικατοπτρίζει μόνο τη γενική ουρά του δίσκου), καθώς και τον χρόνο που χρειάζεται για να ολοκληρώσετε μια συγκεκριμένη διαδικασία.

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Επιπλέον, εξοπλίσαμε το σύστημα με πολλαπλούς εκκινητές - συνθήκες υπό τις οποίες αποστέλλεται ειδοποίηση στον διαχειριστή (μήνυμα στο Telegram, SMS σε αριθμό τηλεφώνου ή email). Οι ενεργοποιητές μπορούν να διαμορφωθούν για οποιοδήποτε σύνολο παραμέτρων. Για παράδειγμα, μπορείτε να καθορίσετε ένα ορισμένο ποσοστό ελεύθερου χώρου στο δίσκο και το σύστημα θα ειδοποιήσει τον διαχειριστή όταν επιτευχθεί το καθορισμένο όριο ή θα σας ενημερώσει εάν μια διαδικασία παρασκηνίου εκτελείται περισσότερο από το συνηθισμένο.

Συνδεσιμότητα Java και οπτικοποίηση δεδομένων

Επεκτείναμε σημαντικά το φάσμα των δεδομένων που αναλύθηκαν, αλλά σύντομα αυτό δεν ήταν αρκετό για αποτελεσματική παρακολούθηση. Εκμεταλλευόμενοι το γεγονός ότι το LMS της CompanyMedia είναι μια εφαρμογή Java, συνδεθήκαμε με την εικονική μηχανή Java μέσω της διεπαφής JMX και μπορέσαμε να λάβουμε απευθείας μετρήσεις Java. Και όχι μόνο τυπικές παράμετροι της ζωτικής δραστηριότητας Java, όπως η ένταση εργασίας GC ή η κατανάλωση σωρού, αλλά και συγκεκριμένες δοκιμές που σχετίζονται άμεσα με τον εκτελέσιμο κώδικα εφαρμογής.

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Το 2017, περίπου ένα χρόνο μετά την εφαρμογή του συστήματος παρακολούθησης, έγινε σαφές ότι για να δουλέψουμε κανονικά με τον κολοσσιαίο όγκο δεδομένων που συλλέγονταν στο Zabbix, δεν υπήρχε αρκετή οπτικοποίηση - σύνθετες οθόνες. Η καλύτερη λύση σε αυτό το πρόβλημα ήταν και πάλι το δωρεάν λογισμικό - το Grafana, ένας βολικός πίνακας εργαλείων για μετρήσεις που σας επιτρέπει να συγκεντρώνετε όλα τα δεδομένα σε μία οθόνη.

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Η διεπαφή Grafana είναι διαδραστική, θυμίζοντας σύστημα OLAP. Το υποσύστημα εμφανίζει τα δεδομένα που λαμβάνει το Zabbix σε μία μόνο οθόνη, παρουσιάζοντας τις πληροφορίες με τη μορφή γραφημάτων και διαγραμμάτων που είναι εύκολο να αναλυθούν. Ο διαχειριστής μπορεί εύκολα να προσαρμόσει τις φέτες που χρειάζεται.

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Παρακολούθηση και προληπτική εξάλειψη σφαλμάτων στο σύστημα LMS

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

Παρακολούθηση Επιχειρηματικών Λειτουργιών

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Λογισμικό ανοιχτού κώδικα για LMS: πώς το δωρεάν soft βοηθά στη διαχείριση κρίσιμων επιχειρηματικών συστημάτων στο VTB

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

Το σύστημα μεγαλώνει, αναπτύσσεται και βοηθά στην αντιμετώπιση προβλημάτων

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

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

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

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

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο