视界:释放机器数据的隐藏价值以改善ECMWF的服务

目录

声明

本文正文内容翻译自 ECMWF Newsletter Number 162 - Winter 2020 中的文章《Unlocking the hidden value of machine data to improve ECMWF’s services》,版权归ECMWF所有。翻译底稿来自Google翻译。

正文

“没有数据,您只是另一个有意见的人而已。” 这种说法通常归因于已故的美国工程师和统计学家W. Edwards Deming,无疑在许多情况下都是有效的。在本文中,作者阐述了ECMWF生成的机器数据如何能提供对提高中心服务有价值的见解。

什么是机器数据

机器数据(Machine data)是由计算机,网站,安全系统,网络,智能手机,智能汽车等的活动生成的日志。它们未被充分利用,但由于包含重要的隐藏信息而非常有价值。它们可能有用的领域包括:监视和故障排除,根本原因分析,性能分析,安全性,业务分析,市场洞察力,用户行为和客户支持。

机器数据是增长最快的大数据之一。关系数据库和传统方法/软件无法非常有效地管理这些大量数据。因此,出现了专门为机器日志设计的更复杂的技术,使组织能够从以前无法访问或未使用的数据中获得新的见解。此外,将人工智能和机器学习技术应用于机器日志分析可以帮助公司实现某些流程的自动化,并使业务运维的工作方式从响应式转变为预测式。

在 ECMWF,产生大量机器数据的主要系统之一是 MARS,即中心的气象档案和检索系统(Meteorological Archival and Retrieval System)。MARS 使用户可以访问 ECMWF 的气象数据,例如业务预报,气象观测,再分析和许多公共数据集。用户可以从 ECMWF 的任何计算机访问该归档存储,也可以通过基于 Web 的 API 接口(Web-API)远程访问。在典型的一天中,MARS 处理 150 万个用户请求并提供 400 TB 的数据。

分析数据

MARS 和 Web-API 每天生成大量的多结构日志,分布在多个系统上。在一个通用平台上收集和存储这些各种各样的数据将使我们能够更有效地分析日志并获得对整个服务的新见解。

两年前,我们决定基于 Splunk(一种用于提取,搜索,监视和分析机器日志的日志管理平台)进行概念验证项目 (proof‐of‐concept)。Splunk 自2015年以来已在 ECMWF 使用,可用于生成交互式工具,报告,警报,可视化等。最初,我们致力于处理历史数据以生成相关的报告和统计信息(图1)。然后,我们开始通过分析近实时日志来应对更多的日常运营挑战(图2)。从那时起,我们将 Splunk 的使用范围扩展到了更广泛的日志集,并且我们已自动记录了各种活动。下面介绍了一些收益和用例。

图1 使用机器数据在自定义仪表板中创建了这些图表,以显示2014年至2018年ECMWF Web-API活动的不同方面。

图2:根据前四个小时内 Apache 服务器日志的近实时 Web-API 用户活动,按公共数据集和位置分类。

运行监控和故障排除

速度在业务服务中至关重要。通过从多个系统近实时地收集,提取和处理实时日志流,我们可以发现问题,及早发出警报,立即采取行动并更主动地监控业务服务的运行状况。

我们将不同日志的汇总合并到一个仪表板中,并在同一个位置关联多个组件之间的模式。这使我们能够近乎实时地获得更好的概览。

通过一系列交互式的自定义仪表板,我们可以深入研究问题(图3和图4)。然后,我们可以查看关联的日志和相关图表,隔离和调查特定问题并识别异常。在以前,我们不得不花费大量时间来收集和分析此类信息,因为必须从跨不同系统存储的文件中收集此类信息。

图3 自定义的仪表板,用于近实时监视 Web-API 服务活动并对其进行故障排除。可以通过几种定制的仪表板和工具深入研究问题的根源并查看相关事件,从而进一步调查“失败”请求中的可疑峰值。

图4 对 Apache 服务器日志的分析提供了有关用户活动,Web 流量和安全性的重要信息。在此示例中,使用预定义工具(包括实时活动图)调查了 4XX HTTP 状态代码的峰值。

更加数据驱动的方法

我们正在基于历史数据开发客观分析,以获取更智能的见解,获得最佳答案以及制定更好的决策和计划。例如,我们使用客观标准根据阈值来评估我们的服务性能(图5)。然后可以将它们用于诸如查找导致不良用户体验的组件以及管理过时的数据集的生存期之类的目的。这种客观的分析功能使我们能够确定在迁移到博洛尼亚的新数据中心期间必须维护哪些数据集。

图5 指标的实施使我们能够将服务的性能提高到更高的持续水平,并改善用户的体验。该图显示了 Web-API 请求经过时间的变化。此示例中,在所选时间段内检测到 26 个超出预定义阈值的情况。如果我们要调查此类性能问题,我们可以简单地导航至时间范围并深入研究日志以查看有关事件的更多详细信息。

沟通与协作

在 ECMWF 中共享日志使我们能够更好地在团队之间进行协作,并确保我们都在衡量同一活动。这有助于我们改善沟通并更有效地分享见解和知识。为了支持信息的解释,我们还开发了针对不同团队的特定需求而定制的仪表板(图6)。

图6 在自定义仪表板中按数据集显示的365天 Web-API 活动的演变。在将 ERA5 再分析数据集的用户从 ECMWF 的 Web-API 迁移到由 ECMWF 实施的欧盟资助的哥白尼气候变化服务(C3S)运营的气候数据存储(CDS)的过程中,该工具增强了ECMWF 各个团队之间的协作。

改善DevOps

该项目为我们提供了尝试新想法的机会,这些新想法有助于我们改善 DevOps 实践(即与软件开发和IT运营紧密结合的实践)。其中一种改进是使用工具,这些工具使我们能够对新版 Web-API 的质量做出更快,更好的决策。使用一组仪表板,我们可以分析在压力测试过程中产生的大量日志,检测新软件发行版中的任何质量或性能问题,并在将软件部署到生产环境之前对其进行修复(图7)。

图7 可以使用交互式定制工具来检查新的 Web-API 版本,该工具使我们能够检测到任何潜在问题并进行进一步调查。

结论

我们已经证明对某些服务生成的机器数据的建立集中管理系统的需求。该项目正在为 Web-API 启用近实时监视和故障排除,并且正在改善整个 MARS 服务的操作可见性。此外,它正在鼓励采用更多数据驱动的方法来进行决策,并改善与其他团队的沟通与协作。

我们认为,该项目总体而言非常成功。它已显示出令人鼓舞的结果,并强调了定义良好的日志管理策略对于有效运行复杂系统的重要性。

展望未来,我们计划:

  • 将此项工作由概念证明 (proof‐of‐concept) 转变为业务 (operation)
  • 探索将这些想法应用到其他服务中
  • 研究人工智能和机器学习概念及其在机器数据处理中的应用
  • 努力进一步改善我们服务的可观察性

感想

我们部门虽然没有提供 Web 服务,无法直接应用 ECMWF 的应用成果,但我们还是可以他们的借鉴技术路线。 我们已积累了大量的业务系统运行日志,包括 ecFlow 的日志和业务脚本运行产生的日志。 今年我们已准备对历史日志数据进行分析,期望能从中获取一些对业务系统本身有价值的信息。