Software de código abierto para LMS: cómo free soft ayuda a administrar sistemas comerciales críticos en VTB

El sistema de soporte de documentación en nuestro banco está en constante evolución y escala, mientras que los requisitos de velocidad y tolerancia a fallas solo aumentan. En algún momento, el mantenimiento del LMS sin un monitoreo centralizado efectivo se ha vuelto demasiado riesgoso. Para asegurar los procesos comerciales en VTB y simplificar el trabajo de los administradores, hemos implementado una solución basada en una pila de tecnologías abiertas. Con él, podemos responder proactivamente a los incidentes, evitando posibles problemas. Under the cut: una historia sobre nuestra experiencia en el uso de software gratuito para monitorear sistemas comerciales a gran escala.



¿Por qué monitorear un sistema de flujo de trabajo?


Desde 2005, el sistema de documentación en VTB Bank ha sido "administrado" por el sistema CompanyMedia. El SDO emplea a más de 60 mil usuarios que crean mensualmente más de un millón de documentos nuevos. Nuestros servidores deberían funcionar las 24 horas del día: en casi cualquier momento, hay entre 2.500 y 3.000 personas en el sistema que se conectan en todo el país, desde Petropavlovsk-Kamchatsky hasta Kaliningrado. Cada segundo de la operación del LMS es de 10-15 cambios.

Para que el sistema cumpla claramente las tareas que se le asignaron, hemos implementado una infraestructura tolerante a fallas utilizando servidores proxy, equilibrio de consultas, protección de la información, búsqueda de texto completo, rutas de integración y copias de seguridad. Se requieren recursos enormes para apoyar y administrar un proyecto de esta magnitud. Los administradores durante todo el día monitorean la información básica sobre el funcionamiento de los servidores, la carga de RAM, el tiempo del procesador, el subsistema de entrada-salida, etc. Pero, además de esto, se necesitan análisis más sutiles:

  • Cálculo del tiempo dedicado a la ejecución de escenarios comerciales;
  • rastrear la dinámica del rendimiento del sistema y cargarlo;
  • Busque desviaciones en los componentes del sistema de los requisitos no funcionales aprobados.

11 años después de la introducción del LMS, el problema de la respuesta proactiva a varios tipos de errores surgió de manera especialmente aguda. La gerencia del banco se dio cuenta de que trabajar sin monitores y sin la consola de la vida del sistema es jugar con fuego: la más mínima falla en un sistema de negocios de este nivel está cargada de millones de pérdidas.

En 2016, comenzamos a introducir herramientas para la identificación rápida de problemas en el funcionamiento del LMS, incluido el monitoreo de parámetros en tiempo real que nos interesan. Anteriormente, el sistema de monitoreo de aplicaciones se implementó y probó dentro del marco de la infraestructura de la compañía InterTrust.

Como empezó todo


Hoy en día, un sistema centralizado de monitoreo de aplicaciones para VTB SDO basado en software de código abierto ayuda a prevenir la mayoría de los errores asociados con la gestión de documentos, clasifica los problemas de manera rápida y precisa y responde rápidamente a cualquier incidente. Incluye dos subsistemas:

  • para monitorear la infraestructura de TI de los servicios del sistema;
  • para monitorear la ocurrencia de errores en el trabajo del LMS.

Todo comenzó con la única aplicación de monitoreo gratuita. Después de pasar por varias opciones, nos decidimos por Zabbix, un software gratuito, originalmente escrito para servicios y equipos bancarios. Este sistema basado en web PHP, que puede almacenar datos en MySQL, PostgreSQL, SQLite u Oracle Database, se adapta perfectamente a nuestras necesidades.

Zabbix ejecuta sus agentes en cada servidor y recopila información sobre las métricas de interés en tiempo real en una sola base de datos. Con la aplicación, es conveniente recopilar datos sobre la carga en los procesadores y la RAM, sobre el uso de la red y otros componentes, verificar la disponibilidad y la reacción de los servicios estándar (SMTP o HTTP), ejecutar programas externos y admitir la supervisión a través de SNMP.

Al implementar Zabbix, configuramos métricas de hardware estándar, y al principio fue suficiente. Pero VTB SDO está en constante evolución y crecimiento: en 2016, el número de servidores aumentó notablemente, aparecieron los procesos de migración, el Banco de Moscú, VTB Capital, VTB24 conectado al sistema. Había menos métricas estándar, y le enseñamos a Zabbix a rastrear información sobre la presencia de colas en cada uno de los volúmenes conectados al servidor (desde el cuadro de Zabbix refleja solo la cola general del disco), así como el tiempo que lleva procesar un procedimiento en particular.



Además, equipamos el sistema con múltiples activadores: las condiciones bajo las cuales se envía una notificación al administrador (mensaje a Telegram, SMS a un número de teléfono o correo electrónico). Los disparadores son personalizables para cualquier conjunto de parámetros. Por ejemplo, puede especificar un cierto porcentaje de espacio libre en el disco, y el sistema notificará al administrador cuando se alcance el umbral especificado o informará si algún procedimiento en segundo plano demora más de lo habitual.

Conectividad Java y visualización de datos


Ampliamos significativamente el rango de datos analizados, pero pronto esto no fue suficiente para un monitoreo efectivo. Aprovechando el hecho de que CompanyMedia DLS es una aplicación Java, nos conectamos a la máquina virtual Java a través de la interfaz JMX y pudimos tomar métricas Java directamente. Además, no solo las funciones vitales estándar de Java, como la intensidad del consumo de GC o Heap, sino también muestras específicas relacionadas directamente con el código ejecutable de la aplicación.



En 2017, aproximadamente un año después de la introducción del sistema de monitoreo, quedó claro que para el trabajo normal con la colosal matriz de datos que se recopila en Zabbix, no hay suficiente visualización: pantallas complejas. La mejor solución a este problema fue nuevamente el software libre: Grafana, un panel de control conveniente para las métricas que le permite agregar todos los datos en una pantalla.



La interfaz interactiva de Grafana recuerda a un sistema OLAP. El subsistema muestra los datos que recibe Zabbix en una sola pantalla, presentando la información en forma de gráficos y tablas convenientes para el análisis. El administrador puede personalizar fácilmente los sectores que necesita.



Monitoreo y resolución de problemas preventivos en el sistema LMS


Filtrar y analizar la información recibida durante el monitoreo ayuda a la plataforma de software de código abierto ELK. Este producto de código abierto consta de tres potentes herramientas para recopilar, almacenar y analizar datos: Elasticsearch, Logstash y Kibana. La implementación de este subsistema permite, en particular, ver en tiempo real cuántos errores se han producido en el sistema, en qué servidores y si estos errores se repiten.



Ahora el administrador puede detectar el problema en una etapa temprana, incluso antes de que el usuario lo encuentre. Tal monitoreo proactivo ayuda a prevenir el mal funcionamiento del sistema mediante la eliminación oportuna de errores. Además, podemos entender cómo ha cambiado el comportamiento del sistema después de la actualización, así como detectar nuevos problemas si surgen.



Monitoreo de operaciones comerciales


Además de las funciones básicas de monitoreo del consumo de recursos, el sistema tiene la capacidad de analizar y controlar las operaciones comerciales.



El monitoreo del tiempo total de las operaciones comerciales le permite identificar nuevos factores y comprender el impacto que tienen en el sistema.



El monitoreo del tiempo de ejecución de las solicitudes en el contexto de cada servicio comercial permite detectar operaciones que tienen una desviación de la norma.



La captura de pantalla anterior muestra un ejemplo de monitoreo de una tarea en segundo plano en términos de su desviación de la norma.



La lista de tareas supervisadas en términos de su actividad en un servidor en particular le permite identificar errores, incluida la duplicación de la ejecución de tareas, en todos los servidores.



También monitorea las tendencias en el tiempo de ejecución de los procedimientos en segundo plano.

El sistema crece, se desarrolla y ayuda a hacer frente a los problemas.


Con la implementación del sistema descrito, la supervisión del funcionamiento de los servidores DLS se ha simplificado enormemente. Sin embargo, periódicamente surgen diversos conflictos que afectan la velocidad del flujo de trabajo y causan quejas de los usuarios. Entonces nos dimos cuenta de que es necesario controlar el comportamiento de la aplicación en sí, y no solo de los servidores.

Para resolver este problema, se conectó un equilibrador al sistema de monitoreo a través de la API, que funciona con un clúster de servidores de aplicaciones. Gracias a esto, el administrador puede ver cuánto tiempo el servidor es responsable de cada solicitud de usuario.

Los datos sobre los tiempos de respuesta del servidor estuvieron disponibles para el análisis, lo que permitió asociar la desaceleración del DLS con los procesos que ocurren en el servidor. Se reveló una situación interesante, en particular: el servidor es lento, aunque en este momento no está cargado. Al analizar la anomalía, encontramos desviaciones en la operación de Garbage Collector Java. Al final, resultó que fue la operación incorrecta de este servicio lo que llevó a esta situación. Tomando el control de Garbage Collector Java, solucionamos completamente el problema.

Así es como el software libre ayuda a desarrollar y hacer crecer un sistema de gestión de documentos en el sector bancario. Nos referimos solo a los principales problemas relacionados con el sistema de monitoreo de VTB LMS. Si está interesado en los detalles, pregunte en los comentarios, estaremos encantados de compartir nuestra experiencia con usted.

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


All Articles