认识LogAI:一个专为日志分析和智能设计的开源库

介绍LogAI:一个日志分析和智能设计的开源库

LogAI是一个免费的日志分析和智能库,支持各种日志分析和智能任务。它与多种日志格式兼容,并具有交互式图形用户界面。LogAI为流行的统计、时间序列和深度学习模型提供了统一的模型接口,使得基于日志异常检测的深度学习算法的基准测试变得简单。

计算机系统生成的日志包含有助于开发人员理解系统行为和识别问题的重要信息。传统上,日志分析是手动完成的,但基于人工智能的日志分析自动化了日志解析、摘要、聚类和异常检测等任务,使得这一过程更加高效。学术界和工业界的不同角色对日志分析有不同的需求。例如,机器学习研究人员需要快速将实验与公共日志数据集进行基准测试,并重现其他研究团队的结果,以开发新的日志分析算法。工业界的数据科学家需要在其日志数据上运行现有的日志分析算法,并选择最佳的算法和配置组合作为其日志分析解决方案。不幸的是,目前没有现有的开源库可以满足所有这些需求。因此,引入了LogAI来满足这些需求,并更好地为各种学术和工业用例进行日志分析。

由于需要统一的日志数据模型、预处理冗余和工作流管理机制,日志管理平台中缺乏全面的基于人工智能的日志分析给统一分析带来了挑战。重现实验结果很困难,需要针对不同的日志格式和模式定制分析工具。不同的日志分析算法在独立的流程中实现,增加了管理实验和基准测试的复杂性。

LogAI包括两个主要组成部分,即LogAI核心库和LogAI GUI。LogAI GUI模块允许用户连接到核心库中的日志分析应用程序,并通过图形用户界面与之交互可视化分析结果。另一方面,LogAI核心库包括四个不同的层:

LogAI的数据层由数据加载器和由OpenTelemetry定义的统一日志数据模型组成。它还提供了各种数据加载器,将原始日志数据转换为标准格式的LogRecordObjects。

LogAI的预处理层使用预处理器和分区器来清理和分割日志。预处理器提取实体并将记录分为非结构化日志行和结构化日志属性,而分区器将日志分组为用于机器学习模型的事件。可针对特定的开放日志数据集提供定制的预处理器和分区器,并可扩展以支持其他日志格式。

LogAI的信息提取层将日志记录转换为机器学习向量。它包括日志解析器、日志向量化器、分类编码器和特征提取器。

分析层包含用于进行分析任务的模块,具有多种算法的统一接口。

LogAI使用卷积神经网络(CNN)、长短期记忆网络(LSTM)和Transformer等深度学习模型进行日志异常检测,并可以在流行的日志数据集上对它们进行基准测试。结果显示,它的性能与deep-loglizer相当或更好,其中使用有监督的双向LSTM模型提供了最佳性能。