Logiciel open source pour LMS: comment le logiciel gratuit aide à administrer les systèmes commerciaux critiques chez VTB

Le système de support de documentation de notre banque est en constante évolution et évolutif, tandis que les exigences de vitesse et de tolérance aux pannes ne font qu'augmenter. À un moment donné, l'entretien du LMS sans surveillance centralisée efficace est devenu trop risqué. Pour sécuriser les processus métier chez VTB et simplifier le travail des administrateurs, nous avons implémenté une solution basée sur une pile de technologies ouvertes. Avec lui, nous pouvons réagir de manière proactive aux incidents, en évitant les problèmes potentiels. Under the cut - une histoire de notre expérience dans l'utilisation de logiciels gratuits pour la surveillance de systèmes commerciaux à grande échelle.



Pourquoi surveiller un système de workflow


Depuis 2005, le système de documentation de VTB Bank est «géré» par le système CompanyMedia. Le SDO emploie plus de 60 000 utilisateurs qui créent chaque mois plus d'un million de nouveaux documents. Nos serveurs doivent fonctionner 24 heures sur 24: à presque tout moment, il y a entre 2500 et 3000 personnes dans le système qui se connectent dans tout le pays, de Petropavlovsk-Kamchatsky à Kaliningrad. Chaque seconde de fonctionnement du LMS est de 10 à 15 changements.

Afin que le système remplisse clairement les tâches qui lui sont assignées, nous avons déployé une infrastructure à tolérance de pannes utilisant des serveurs proxy, l'équilibrage des requêtes, la protection des informations, la recherche en texte intégral, les itinéraires d'intégration et les sauvegardes. D'énormes ressources sont nécessaires pour soutenir et administrer un projet de cette ampleur. Les administrateurs 24 heures sur 24 surveillent les informations de base sur le fonctionnement des serveurs, le chargement de la RAM, le temps processeur, le sous-système d'E / S, etc. Mais, en plus de cela, des analyses plus subtiles sont nécessaires:

  • Calcul du temps passé à exécuter des scénarios d'affaires;
  • suivi de la dynamique des performances du système et de la charge sur celui-ci;
  • Rechercher les écarts entre les composants du système et les exigences non fonctionnelles approuvées.

11 ans après l'introduction du LMS, la question de la réponse proactive à divers types d'erreurs s'est posée de manière particulièrement nette. La direction de la banque s'est rendu compte que travailler sans moniteur ni console de la vie du système, c'est jouer avec le feu: la moindre défaillance d'un système d'entreprise de ce niveau est lourde de millions de pertes.

En 2016, nous avons commencé à introduire des outils pour l'identification rapide des problèmes de fonctionnement du LMS, y compris pour la surveillance des paramètres en temps réel qui nous intéressent. Auparavant, le système de surveillance des applications était déployé et testé dans le cadre de l'infrastructure de la société InterTrust.

Comment tout a commencé


Aujourd'hui, un système centralisé de surveillance des applications pour VTB SDO basé sur un logiciel open source aide à prévenir la plupart des erreurs associées à la gestion des documents, à classer rapidement et précisément les problèmes et à répondre rapidement à tout incident. Il comprend deux sous-systèmes:

  • pour surveiller l'infrastructure informatique des services système;
  • pour surveiller l'apparition d'erreurs dans le travail du LMS.

Tout a commencé avec la seule application de surveillance gratuite. Après avoir passé en revue plusieurs options, nous avons opté pour le logiciel gratuit Zabbix, qui était à l'origine écrit pour les services bancaires et l'équipement. Ce système basé sur le Web PHP, qui peut stocker des données dans MySQL, PostgreSQL, SQLite ou Oracle Database, correspond parfaitement à nos besoins.

Zabbix exécute ses agents sur chaque serveur et collecte des informations sur les métriques d'intérêt en temps réel dans une base de données unique. À l'aide de l'application, il est pratique de collecter des données sur la charge des processeurs et de la RAM, sur l'utilisation du réseau et d'autres composants, de vérifier la disponibilité et la réaction des services standard (SMTP ou HTTP), d'exécuter des programmes externes et de prendre en charge la surveillance via SNMP.

En déployant Zabbix, nous avons mis en place des métriques matérielles standard, et au début c'était suffisant. Mais VTB SDO est en constante évolution et croissance: en 2016, le nombre de serveurs a considérablement augmenté, des processus de migration sont apparus, la Banque de Moscou, VTB Capital, VTB24 connectés au système. Il y a moins de mesures standard et nous avons appris à Zabbix à suivre les informations sur la présence de files d'attente sur chacun des volumes connectés au serveur (à partir de la zone Zabbix, il ne reflète que la file d'attente de disque générale), ainsi que sur le temps qu'il faut pour traiter une procédure particulière.



De plus, nous avons équipé le système de déclencheurs multiples - les conditions dans lesquelles une notification est envoyée à l'administrateur (message à Telegram, SMS à un numéro de téléphone ou e-mail). Les déclencheurs sont personnalisables pour n'importe quel ensemble de paramètres. Par exemple, vous pouvez spécifier un certain pourcentage d'espace disque libre et le système informera l'administrateur lorsque le seuil spécifié est atteint, ou informera si une procédure d'arrière-plan prend plus de temps que d'habitude.

Connectivité Java et visualisation des données


Nous avons considérablement élargi la gamme des données analysées, mais bientôt cela n'a pas été suffisant pour une surveillance efficace. Profitant du fait que CompanyMedia DLS est une application Java, nous nous sommes connectés à la machine virtuelle Java via l'interface JMX et avons pu prendre directement les métriques Java. De plus, non seulement les fonctions vitales Java standard, telles que l'intensité de la consommation GC ou Heap, mais aussi des échantillons spécifiques directement liés au code exécutable de l'application.



En 2017, environ un an après l'introduction du système de surveillance, il est devenu clair que pour un travail normal avec le tableau de données colossal collecté dans Zabbix, il n'y a pas assez de visualisation - des écrans complexes. La meilleure solution à ce problème était encore une fois un logiciel gratuit - Grafana, un tableau de bord pratique pour les mesures qui vous permet d'agréger toutes les données sur un seul écran.



L'interface interactive de Grafana rappelle un système OLAP. Le sous-système affiche les données que Zabbix reçoit sur un seul écran, présentant les informations sous forme de graphiques et de tableaux pratiques pour l'analyse. L'administrateur peut facilement personnaliser les tranches dont il a besoin.



Surveillance et dépannage préventif dans le système LMS


Le filtrage et l'analyse des informations reçues pendant la surveillance aident la plate-forme logicielle open source ELK. Ce produit open source se compose de trois outils puissants pour collecter, stocker et analyser des données: Elasticsearch, Logstash et Kibana. La mise en œuvre de ce sous-système permet notamment de voir en temps réel combien d'erreurs se sont produites dans le système, sur quels serveurs et si ces erreurs se répètent.



L'administrateur peut désormais détecter le problème à un stade précoce, avant même que l'utilisateur ne le rencontre. Cette surveillance proactive permet d'éviter les dysfonctionnements du système en éliminant les erreurs en temps opportun. De plus, nous pouvons comprendre comment le comportement du système a changé après la mise à jour, ainsi que détecter de nouveaux problèmes s'ils surviennent.



Surveillance des opérations commerciales


En plus des fonctions de base de surveillance de la consommation des ressources, le système a la capacité d'analyser et de contrôler les opérations commerciales.



La surveillance de la durée totale des opérations commerciales vous permet d'identifier de nouveaux facteurs et de comprendre leur impact sur le système.



Le suivi du temps d'exécution des requêtes dans le cadre de chaque service métier permet de détecter des opérations s'écartant de la norme.



La capture d'écran ci-dessus montre un exemple de surveillance d'une tâche d'arrière-plan en termes d'écart par rapport à la norme.



La liste des tâches surveillées en termes de leur activité sur un serveur particulier vous permet d'identifier les erreurs - y compris la duplication de l'exécution des tâches - sur tous les serveurs.



Il surveille également les tendances dans le temps d'exécution des procédures d'arrière-plan.

Le système grandit, se développe et aide à faire face aux problèmes.


Avec la mise en œuvre du système décrit, la surveillance du fonctionnement des serveurs DLS a été considérablement simplifiée. Néanmoins, divers conflits surviennent périodiquement qui affectent la vitesse du flux de travail et provoquent des plaintes des utilisateurs. Nous avons donc réalisé qu'il était nécessaire de contrôler le comportement de l'application elle-même, et pas seulement des serveurs.

Pour résoudre ce problème, un équilibreur a été connecté au système de surveillance via l'API, qui fonctionne avec un cluster de serveurs d'applications. Grâce à cela, l'administrateur peut voir combien de temps le serveur est responsable de chaque demande d'utilisateur.

Les données sur le temps de réponse du serveur sont devenues disponibles pour l'analyse, ce qui a permis d'associer le ralentissement du LMS aux processus se produisant sur le serveur. Une situation intéressante a été révélée, notamment: le serveur est lent, bien qu'à ce moment il ne soit pas chargé. En analysant l'anomalie, nous avons trouvé des écarts dans le fonctionnement du Garbage Collector Java. Au final, il s'est avéré que c'est le mauvais fonctionnement de ce service qui a conduit à cette situation. En prenant le contrôle de Garbage Collector Java, nous avons complètement résolu le problème.

C'est ainsi que les logiciels libres aident à développer et développer un système de gestion de documents dans le secteur bancaire. Nous n'avons abordé que les principaux problèmes concernant le système de surveillance de VTB LMS. Si vous êtes intéressé par les détails - demandez dans les commentaires, nous serons heureux de partager notre expérience avec vous.

Source: https://habr.com/ru/post/fr475572/


All Articles