LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

我们银行的文档支持系统不断发展和扩展,对速度和容错能力的要求也越来越高。 在某些时候,在没有有效集中监控的情况下维护学习管理系统变得过于危险。 为了保护 VTB 的业务流程并简化管理员的工作,我们实施了基于一系列开放技术的解决方案。 在它的帮助下,我们可以主动响应事件,防止潜在的问题。 下面是一个关于我们使用免费软件监控大型业务系统的经验的故事。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

为什么要监控您的文档管理系统?

自 2005 年以来,VTB 银行的文档支持一直由 CompanyMedia 系统“管理”。 LMS 拥有超过 60 万用户,他们每月创建超过一百万个新文档。 我们的服务器必须每天 24 小时运行:几乎任何时候系统中都有 2500-3000 人,他们连接到全国各地,从堪察加彼得巴甫洛夫斯克到加里宁格勒。 LMS 运行的每一秒意味着 10-15 次变化。

为了确保系统准确地完成分配的任务,我们部署了使用代理服务器、请求平衡、信息保护、全文搜索、集成路由和备份的容错基础设施。 支持和管理如此规模的项目需要大量资源。 管理员全天候监控有关服务器运行、RAM 负载、CPU 时间、I/O 子系统等的基本信息。 但除此之外,还需要更微妙的分析:

  • 计算执行业务场景所花费的时间;
  • 监控系统性能及其负载的动态;
  • 寻找系统组件与已批准的非功能需求的偏差。

LMS 推出 11 年后,主动响应各类错误的问题变得尤为尖锐。 该银行的管理层意识到,在没有监视器和系统生命控制台的情况下工作就像在玩火:这种级别的业务系统中最轻微的故障都可能导致数百万美元的损失。

2016 年,我们开始推出用于快速识别 LMS 运行问题的工具,包括实时监控我们感兴趣的参数。 此前,所应用的监控系统是在 InterTrust 公司基础设施框架内部署和测试的。

这一切是如何开始的

如今,基于开源软件产品的VTB LMS集中应用监控系统有助于防止与文档流相关的大多数错误,快速准确地对问题进行分类,并对任何事件做出及时响应。 它包括两个子系统:

  • 用于监控系统服务的IT基础设施;
  • 监控 LMS 操作中错误的发生。

这一切都始于一个免费的监控应用程序。 经过几个选择后,我们选择了 Zabbix——最初是为银行服务和设备编写的免费软件。 这个基于 PHP Web 的系统可以将数据存储在 MySQL、PostgreSQL、SQLite 或 Oracle 数据库中,非常适合我们的需求。

Zabbix 在每台服务器上运行其代理,并将感兴趣的指标信息实时收集到单个数据库中。 使用该应用程序,可以方便地收集有关处理器和 RAM 负载、网络和其他组件使用情况的数据、检查标准服务(SMTP 或 HTTP)的可用性和响应、运行外部程序并支持通过以下方式进行监控: SNMP。

部署 Zabbix 后,我们配置了标准硬件指标,起初这已经足够了。 但VTB SDO正在不断发展和壮大:2016年,服务器数量明显增加,出现迁移流程,莫斯科银行、VTB Capital和VTB24加入该系统。 不再有足够的标准指标,我们教会 Zabbix 跟踪有关连接到服务器的每个卷上的队列存在情况的信息(开箱即用的 Zabbix 仅反映一般磁盘队列),以及它所花费的时间来完成特定的程序。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

此外,我们为系统配备了多个触发器 - 在何种条件下向管理员发送通知(Telegram 中的消息、发送至电话号码的短信或电子邮件)。 可以为任何参数集配置触发器。 例如,您可以指定一定百分比的可用磁盘空间,当达到指定的阈值时,系统将向管理员发出警报,或者通知您后台程序的运行时间是否比平常长。

Java 连接和数据可视化

我们显着扩大了分析数据的范围,但很快这还不足以进行有效监控。 利用 CompanyMedia 的 LMS 是 Java 应用程序这一事实,我们通过 JMX 接口连接到 Java 虚拟机,并能够直接获取 Java 指标。 不仅是 Java 生命活动的标准参数,例如 GC 工作强度或堆消耗,还包括与可执行应用程序代码直接相关的特定测试。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

2017年,即监控系统实施大约一年后,我们发现,为了正常处理Zabbix收集的大量数据,没有足够的可视化——复杂的屏幕。 这个问题的最佳解决方案还是免费软件 - Grafana,这是一个方便的指标仪表板,可让您在一个屏幕上聚合所有数据。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

Grafana 界面是交互式的,让人想起 OLAP 系统。 该子系统将Zabbix接收到的数据显示在一个屏幕上,以易于分析的图形和图表的形式呈现信息。 管理员可以轻松定制自己需要的切片。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

监控并预防性消除 LMS 系统中的错误

ELK开源软件平台帮助您过滤和分析监控过程中收到的信息。 该开源产品由三个用于收集、存储和分析数据的强大工具组成:Elasticsearch、Logstash 和 Kibana。 该子系统的实施特别允许实时查看系统中发生了多少错误、在哪些服务器上以及这些错误是否重复。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

现在,管理员可以在早期阶段(甚至在用户遇到问题之前)检测到问题。 这种主动监控使您能够及时消除错误,从而防止系统故障。 此外,我们还可以了解更新后系统行为发生了怎样的变化,并检测出现的新问题。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

业务运营监控

系统除了具备监控资源消耗的基本功能外,还具备对业务运行进行分析和控制的能力。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

监控业务运营的整体执行时间可以让您识别新因素并了解它们对系统运营的影响。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

监视每个业务服务的请求的执行时间可以检测偏离规范的操作。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

上面的屏幕截图是监控后台任务偏离标准的示例。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

根据特定服务器上活动的受控任务列表,您可以识别所有服务器上的错误,包括任务执行的重复。

LMS 开源软件:免费软件如何帮助管理 VTB 的关键业务系统

后台程序的执​​行时间趋势也受到监控。

该系统不断成长、发展并帮助解决问题

通过实施所述系统,监控 LMS 服务器的操作已变得显着简化。 但各种冲突时有发生,影响了文件流转的速度,引起了用户的投诉。 因此我们意识到有必要控制应用程序本身的行为,而不仅仅是服务器。

为了解决这个问题,平衡器通过API连接到监控系统,它与应用程序服务器集群一起工作。 得益于此,管理员可以看到服务器响应每个用户请求需要多长时间。

服务器响应时间的数据可供分析,这使得将 LMS 的减速与服务器上发生的进程联系起来成为可能。 特别是,出现了一个有趣的情况:服务器运行缓慢,尽管此时尚未加载。 通过分析异常,我们发现垃圾收集器Java的运行存在偏差。 最后发现是这个服务的错误操作导致了这种情况。 通过控制 Java 垃圾收集器,我们彻底解决了这个问题。

这就是免费软件帮助银行业文档管理系统发展和成长的方式。 我们仅讨论了与 VTB SDO 监控系统相关的主要问题。 如果您对详细信息感兴趣,请在评论中提问,我们很乐意与您分享我们的经验。

来源: habr.com

添加评论