Logs are semi-structured text generated by logging statements in software source code. In recent decades, software logs have become imperative in the reliability assurance mechanism of many software systems because they are often the only data available that record software runtime information. As modern software is evolving into a large scale, the volume of logs has increased rapidly. To enable effective and efficient usage of modern software logs in reliability engineering, a number of studies have been conducted on automated log analysis. This survey presents a detailed overview of automated log analysis research, including how to automate and assist the writing of logging statements, how to compress logs, how to parse logs into structured event templates, and how to employ logs to detect anomalies, predict failures, and facilitate diagnosis. Additionally, we survey work that releases open-source toolkits and datasets. Based on the discussion of the recent advances, we present several promising future directions toward real-world and next-generation automated log analysis.
翻译:近几十年来,软件日志已成为许多软件系统的可靠性保证机制中必不可少的,因为它们往往是记录软件运行时间信息的唯一可用数据。随着现代软件的大规模发展,日志的数量迅速增加。为了在可靠性工程中有效和高效地使用现代软件日志,已就自动日志分析进行了一些研究。这项调查详细概述了自动日志分析研究,包括如何自动化和协助编写日志、如何压缩日志、如何将日志分析成结构化的事件模板、如何利用日志检测异常、预测故障和促进诊断。此外,我们调查了释放开源工具包和数据集的工作。根据对最新进展的讨论,我们提出了走向现实世界和下一代自动日志分析的有希望的未来方向。