北京2021年5月24日 /美通社/ -- Venus是什么?初见还要追溯到去年11月召开的浪潮云海创新论坛2020。会上不仅分享了浪潮云海对于前沿科技的创新洞见以及扎实可靠的落地实践,更重要的是TA,一个开源并贡献社区的OpenStack日志管理项目,被称为Venus。
伴随OpenStack技术发展愈发成熟,全球75个公有云、数以千计的私有云都在使用,累计部署了超过1000万个计算核心,确然成为行业大中型私有云建设的首选。
为应对行业中大型云建设的刚需,主要表现为节点规模部署环境逐渐走向大规模,涉及到的功能模块层出不穷,尤其是各种日志类型更是纷繁复杂。“海量、繁多、分散……无论是格式还是位置都让运维人员在服务器上很难通过日志排查发现问题。”浪潮云海研发团队表示。
更重要的一点,当系统发生故障或者出现性能瓶颈时,经常需要各种类型日志通过串联才能定位故障原因或者找出导致系统性能瓶颈的线索才行,但OpenStack平台的调用多为分布式调用,日志的串联简直难出天际。综合考量,浪潮云海实力推出统一日志管理项目Venus,主要还是取决于大规模部署条件下,针对OpenStack平台在日志存储、检索、分析等方面的核心需求。
贡献社区的Venus具体能做啥?
总体来说,Venus可以做到一站式满足日志的采集、清洗、索引、分析、告警、可视化、生成报告等需求,帮助运维人员快速检索问题,掌握平台的运行健康度,并在未来计划引用机器学习算法,快速定位IT故障及根因,提高运维效率以及平台管理的水平。 简单来说在检索工作上,主要提供了简单易用的检索方式,可以做到检索一切日志数据,定位日志上下文;分析上主要实现日志关联、字段数值统计,提供多场景、多维度的可视化分析报表;告警层面则将搜索转化为主动告警,实现海量日志中错误的“大海捞针”;定位主要是通过建立知识图谱和调用的链式关系,结合算法实现故障的快速定位。
以日志预处理为例。对于日志数据,OpenStack社区从开始开发就制定了严格的日志规范,大部分模块都遵守此规范,即社区规定的日志格式为<时间戳><日志等级><代码模块><Request ID><日志内容><源代码位置> 。对于此种日志很容易进行预处理,拆分成多种维度进行索引,如下图所示。
通常OpenStack日志索引的维度主要包括时间维度、主机维度、用户维度(用户id)、租户维度(租户id)、级别维度(info、warning、error等)、组件维度(nova_api、nova_compute等)、python_module(neutron.wsgi、nova.osapi_comput.wsgi.server等)、日志文件名(nova、neutron等)、API status(200、404等)、API type(GET、POST等)、API time等,但也有部分原生模块的日志记录并不规范,浪潮的OpenStack对其全部进行了规范化处理。
如此看来开源到OpenStack社区的Venus项目现已具备基本的日志分析处理功能,总结一下,主要功能为:
从实践层面看,浪潮云海每年都会对自研OpenStack产品进行为期1个月到2个月的大规模测试,这是一个测试、调优、测试环节不断循环的过程,而支撑这个过程快速完成的除了监控系统,还有日益成熟的日志系统,以2020年1000节点大规模测试为例:
测试过程中,报错LOG可视化快速展现,从而了解各组件的报错信息,具体如下:
测试过程中出现过RABBITMQ挂掉的情况,可通过RABBITMQ的连接错误告警,可以做进一步的数据分析,详情如下:
表现出挑的Venus,整体的技术架构又如何?
浪潮云海技术研发团队称,日志管理模块Venus以efk为基础,总体架构如图:
未来的Venus,我们期望是这样的!
Venus项目旨在打造一个开放的OpenStack日志管理平台,集合广大用户在日志领域的需求和实践,提供各场景日志分析并集成算法和知识图谱实现故障的快速定位,构建完备的日志运维场景,未来Venus计划如下:
一直以来,浪潮云海都通过对开源开放技术的攻坚,突破开源版本在性能、大规模管理能力方面的瓶颈,秉承“源于开源、馈于开源”的理念助力业界共同构建开放统一的智能基础设施,未来定会在此领域更多发力创造更多惊喜、取得更多成绩。