Software de código aberto para LMS: como o software gratuito ajuda a administrar sistemas críticos de negócios na VTB

O sistema de suporte a documentação em nosso banco está em constante evolução e escala, enquanto os requisitos de velocidade e tolerância a falhas estão apenas aumentando. Em algum momento, a manutenção do LMS sem um monitoramento centralizado eficaz tornou-se muito arriscada. Para proteger os processos de negócios na VTB e simplificar o trabalho dos administradores, implementamos uma solução baseada em uma pilha de tecnologias abertas. Com isso, podemos responder proativamente a incidentes, evitando possíveis problemas. Under the cut - uma história sobre nossa experiência no uso de software livre para monitorar sistemas de negócios em larga escala.



Por que monitorar um sistema de fluxo de trabalho


Desde 2005, o sistema de documentação do VTB Bank é “gerenciado” pelo sistema CompanyMedia. O SDO emprega mais de 60 mil usuários que mensalmente criam mais de um milhão de novos documentos. Nossos servidores devem operar 24 horas por dia: em quase qualquer momento, existem 2500-3000 pessoas no sistema que se conectam em todo o país, de Petropavlovsk-Kamchatsky a Kaliningrad. Cada segundo da operação do LMS é de 10 a 15 alterações.

Para que o sistema cumpra claramente as tarefas atribuídas a ele, implantamos uma infraestrutura tolerante a falhas usando servidores proxy, balanceamento de consultas, proteção de informações, pesquisa de texto completo, rotas de integração e backups. Enormes recursos são necessários para apoiar e administrar um projeto dessa magnitude. Administradores 24 horas monitoram informações básicas sobre a operação de servidores, carregamento de RAM, tempo do processador, subsistema de entrada e saída e assim por diante. Mas, além disso, são necessárias análises mais sutis:

  • Cálculo do tempo gasto na execução de cenários de negócios;
  • rastrear a dinâmica do desempenho do sistema e carregar nele;
  • Procure desvios nos componentes do sistema em relação aos requisitos não funcionais aprovados.

11 anos após a introdução do LMS, a questão da resposta proativa a vários tipos de erros surgiu de maneira especialmente acentuada. A administração do banco percebeu que trabalhar sem monitores e o console da vida do sistema é brincar com fogo: a menor falha em um sistema comercial desse nível está repleta de milhões de perdas.

Em 2016, começamos a introduzir ferramentas para a rápida identificação de problemas no funcionamento do LMS, inclusive para monitorar parâmetros em tempo real que nos interessam. Anteriormente, o sistema de monitoramento de aplicativos era implantado e testado na estrutura da infraestrutura da empresa InterTrust.

Como tudo começou


Hoje, um sistema centralizado de monitoramento de aplicativos para VTB SDO baseado em software de código aberto ajuda a evitar a maioria dos erros associados ao gerenciamento de documentos, classifica problemas com rapidez e precisão e responde rapidamente a qualquer incidente. Inclui dois subsistemas:

  • para monitorar a infraestrutura de TI dos serviços do sistema;
  • monitorar a ocorrência de erros no trabalho do LMS.

Tudo começou com o único aplicativo de monitoramento gratuito. Após analisar várias opções, optamos pelo software livre Zabbix, originalmente escrito para serviços e equipamentos bancários. Este sistema baseado na Web PHP, que pode armazenar dados no MySQL, PostgreSQL, SQLite ou Oracle Database, atende perfeitamente às nossas necessidades.

O Zabbix executa seus agentes em cada servidor e coleta informações sobre as métricas de interesse em tempo real em um único banco de dados. Usando o aplicativo, é conveniente coletar dados sobre a carga nos processadores e RAM, sobre o uso da rede e outros componentes, verificar a disponibilidade e a reação dos serviços padrão (SMTP ou HTTP), executar programas externos e oferecer suporte ao monitoramento via SNMP.

Ao implantar o Zabbix, configuramos métricas de hardware padrão e, a princípio, isso foi suficiente. Mas o VTB SDO está em constante evolução e crescimento: em 2016, o número de servidores aumentou notavelmente, surgiram os processos de migração, o Banco de Moscou, a VTB Capital e o VTB24 conectados ao sistema. Existem menos métricas padrão e ensinamos o Zabbix a rastrear informações sobre a presença de filas em cada um dos volumes conectados ao servidor (na caixa do Zabbix, reflete apenas a fila de disco geral), bem como sobre o tempo necessário para processar um procedimento específico.



Além disso, equipamos o sistema com vários gatilhos - as condições sob as quais uma notificação é enviada ao administrador (mensagem para Telegram, SMS para um número de telefone ou e-mail). Os gatilhos são personalizáveis ​​para qualquer conjunto de parâmetros. Por exemplo, você pode especificar uma certa porcentagem de espaço livre em disco e o sistema notificará o administrador quando o limite especificado for atingido ou informará se algum procedimento em segundo plano demora mais que o normal.

Conectividade Java e visualização de dados


Expandimos significativamente a gama de dados analisados, mas logo isso não foi suficiente para um monitoramento eficaz. Aproveitando o fato de que o CompanyMedia DLS é um aplicativo Java, nos conectamos à Java Virtual Machine por meio da interface JMX e pudemos obter métricas Java diretamente. Além disso, não apenas as funções vitais padrão do Java, como a intensidade do consumo de GC ou Heap, mas também amostras específicas relacionadas diretamente ao código executável do aplicativo.



Em 2017, cerca de um ano após a introdução do sistema de monitoramento, ficou claro que, para o trabalho normal com o colossal conjunto de dados coletado no Zabbix, não há visualização suficiente - telas complexas. A melhor solução para esse problema foi novamente o software livre - o Grafana, um painel conveniente para métricas que permite agregar todos os dados em uma única tela.



A interface interativa da Grafana é uma reminiscência de um sistema OLAP. O subsistema exibe os dados que o Zabbix recebe em uma única tela, apresentando as informações na forma de gráficos e tabelas convenientes para análise. O administrador pode personalizar facilmente as fatias necessárias.



Monitoramento e solução de problemas preventivos no sistema LMS


A filtragem e análise das informações recebidas durante o monitoramento ajudam a plataforma de software de código aberto ELK. Este produto de código aberto consiste em três ferramentas poderosas para coletar, armazenar e analisar dados: Elasticsearch, Logstash e Kibana. A implementação desse subsistema permite, em particular, ver em tempo real quantos erros ocorreram no sistema, em quais servidores e se esses erros são repetidos.



Agora, o administrador pode detectar o problema em um estágio inicial, antes mesmo que o usuário o encontre. Esse monitoramento proativo ajuda a evitar mau funcionamento do sistema, eliminando erros em tempo hábil. Além disso, podemos entender como o comportamento do sistema mudou após a atualização, bem como detectar novos problemas, se surgirem.



Monitoramento de Operações de Negócios


Além das funções básicas de monitoramento do consumo de recursos, o sistema tem a capacidade de analisar e controlar as operações de negócios.



O monitoramento do tempo total das operações de negócios permite identificar novos fatores e entender o impacto que eles têm no sistema.



O monitoramento do tempo de execução de solicitações no contexto de cada serviço de negócios possibilita detectar operações que possuem um desvio da norma.



A captura de tela acima mostra um exemplo de monitoramento de uma tarefa em segundo plano em termos de seu desvio da norma.



A lista de tarefas monitoradas em termos de atividade em um servidor específico permite identificar erros - incluindo duplicação da execução de tarefas - em todos os servidores.



Ele também monitora tendências no tempo de execução dos procedimentos em segundo plano.

O sistema cresce, desenvolve e ajuda a lidar com problemas.


Com a implementação do sistema descrito, o monitoramento da operação dos servidores DLS foi bastante simplificado. No entanto, surgem periodicamente vários conflitos que afetam a velocidade do fluxo de trabalho e causam reclamações dos usuários. Então percebemos que é necessário controlar o comportamento do aplicativo em si, e não apenas os servidores.

Para resolver esse problema, um balanceador foi conectado ao sistema de monitoramento por meio da API, que trabalha com um cluster de servidores de aplicativos. Graças a isso, o administrador pode ver quanto tempo o servidor é responsável por cada solicitação do usuário.

Os dados no tempo de resposta do servidor ficaram disponíveis para análise, o que possibilitou associar a desaceleração do LMS aos processos que ocorreram no servidor. Uma situação interessante foi revelada, em particular: o servidor está lento, embora neste momento não esteja carregado. Analisando a anomalia, descobrimos desvios na operação do Garbage Collector Java. No final, descobriu-se que foi a operação incorreta desse serviço que levou a essa situação. Assumindo o controle do Garbage Collector Java, corrigimos completamente o problema.

É assim que o software livre ajuda a desenvolver e desenvolver um sistema de gerenciamento de documentos no setor bancário. Abordamos apenas os principais problemas relacionados ao sistema de monitoramento do VTB LMS. Se você estiver interessado nos detalhes - pergunte nos comentários, teremos o maior prazer em compartilhar nossa experiência com você.

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


All Articles