什么工具可以用来将不同来源的日志文件拼接在一起?

什么工具可以用来将不同来源的日志文件拼接在一起?

我正在尝试分析一系列应用程序请求。有 Web 日志、应用程序服务器日志和数据服务器日志,每行的时间戳略有不同。我想将它们拼接在一起,以按发生顺序查看各种日志。

在我编写一个脚本(使用 awk 和朋友)来执行此操作之前,是否有一个工具或现有的项目/配方可以执行类似操作?

答案1

查看Splunk

答案2

免责声明:我以前没有这样做过。

我认为 syslod 是 *nix 系统中用于日志记录的守护进程,也许还有更好的。但本质上它们的工作原理类似。我认为,如果您的应用程序可以配置为使用 syslogd,而不是使用自己的日志文件,那么您可以有一个集中的地方来查看、比较所有日志。这要求您了解应用程序的配置选项,或者如果它还没有选项,则需要调整其代码,并了解 syslogd 或其他类似工具中的配置选项。祝您学习愉快 :)。我很想知道这实际上是如何实现的。请将您为实现这一目标所采取的步骤发布在博客或网站或类似东西上,以便可以通过谷歌找到。

答案3

我最终编写了一个 Python 脚本。

给定一系列文件,脚本确定每种情况下的文件类型(在文件名中查找关键字,例如访问日志),并根据该类型为每一行提取一致的时间戳值。然后,脚本将每个文件中的行拼接成一个排序的元组列表 (时间戳、文件、日志行),可选择按给定时间段进行过滤并打印结果。

相关内容