【问题标题】:Searching huge log files搜索巨大的日志文件
【发布时间】:2011-05-01 15:51:02
【问题描述】:

故障排除、分析和过滤日志文件是迄今为止最费力的日常工作之一。我的问题是搜索一个日志文件,该文件的大小可能超过 4 个演出。只需加载文件最多需要 15 分钟。我正在运行一个相当快的处理器,它有 8 个内存。文件加载后,我实际上只能使用 grep 和/或 control+F 来扫描文件。当我试图查看来自多个系统的文件时,情况会变得更糟,每个系统都称重。曾尝试根据时间戳隔离文件以使它们更小,但真的没有乐趣。

有没有什么工具甚至流程可以用来减少故障排除的时间(除了通常的“先修复错误”)?

感谢您的 cmets。

【问题讨论】:

  • 你在什么平台上运行?
  • 为什么日志这么大:是因为确实发生了很多事务/事件,还是记录了不必要的详细信息?应用程序是否支持调整详细程度和/或将来自不同组件的日志数据定向到不同的日志文件?
  • @David:我敢打赌,他正在 Java 应用服务器日志中寻找堆栈跟踪。没有什么能让日志文件这么大了。
  • @Seth 这也是我的猜测。因此我想知道他是否可以使用 log4j.properties (或类似的)将重要的东西与噪音分开。

标签: logfile-analysis


【解决方案1】:

我目前正在使用 unix 命令行工具 (f)grep、awk、cut、join 等进行此类操作,这些工具也可用于带有 cygwinUnxUtils 等的 Windows,并且还使用了一些Scala 用于更复杂事物的脚本。您可以编写脚本来执行跨越多个文件中的日志文件条目的搜索。但我也是wondering if there is something better than that - 也许importing them into a database(都是SO问题)?

顺便说一句:将您的硬盘替换为 SSD 驱动器。这些方式更快!此外,将 gzip 压缩的日志留在磁盘上对我来说是值得的,因为在搜索它们时磁盘是瓶颈。例如,如果您在日志文件中搜索正则表达式并希望每次出现 100 行上下文,您可以这样做:

zcat *.log.gz | grep -100 '{regexp}' > {outputfile}

并将输出文件加载到您最喜欢的文本文件查看器中。如果您正在搜索固定字符串,请使用fgrep(与grep 相同,带有附加选项-F)- 这样会快得多。

【讨论】:

    【解决方案2】:

    如果你想排除你不想看到的东西的行,你可以grep -v 'I dont wanna see this' > logWithExcludedLines.log。你也可以使用正则表达式grep -vE 'asdf|fdsa' > logWithNoASDForFDSA.log

    此方法非常适用于 apache 访问日志grep -v 'HTTP/1.1 200' > no200s.log(或类似的东西,不记得确切的字符串)。

    【讨论】:

      【解决方案3】:

      Baretail 是一个很好的工具。试一试。我还没有将它用于 4 个演出文件,但我的日志文件也很大,它工作得很好。 http://www.baremetalsoft.com/baretail/index.php

      编辑:我没有看到有人已经建议过baretail。

      【讨论】:

        【解决方案4】:

        你用什么加载它? 4 gigs 是一个相当大的文件,但加载到内存中应该不会花那么长时间。

        对于这么大的文件,我建议直接使用 grep,如果 grep 不适合你,SED 和 AWK 是你的朋友。如果您想实时执行此操作,请了解如何将这些工具与管道和tail -f 结合使用。

        是的,我知道,SED 一开始很吓人。它也非常强大。学习一下。

        如果你在 Windows 上,我很同情你。我可以推荐一个 unix shell 吗?

        如果您害怕命令行工具,可以考虑学习 Perl 或 Python。它们都非常擅长从此类大文件中的噪声中分类信号。

        【讨论】:

        • 我会支持这一点。请学习 AWK 和 SED。然后你可以写几个脚本,生活就会变得非常简单! :-)
        猜你喜欢
        • 2013-02-11
        • 1970-01-01
        • 1970-01-01
        • 2015-03-20
        • 1970-01-01
        • 1970-01-01
        • 2014-02-05
        • 1970-01-01
        • 2011-09-18
        相关资源
        最近更新 更多