我需要通过 Java 应用程序 (log4j) 监控一些大型嘈杂日志文件 (500m/天)。现在我手动查看文件,grep 查找“ERROR”等等。但是,应该有一个工具可以发现文件中的重复模式,对其进行计数,并深入了解各个条目的详细信息。有人知道这样的工具吗?文本或基于 Web 的用户界面会很好。
答案1
我听说有人对日志文件应用贝叶斯过滤来发现有趣的内容和常规日志条目。他们使用垃圾邮件过滤器,其中常规的无趣条目被视为“好”,而不寻常的条目则被视为“垃圾邮件”,并且他们能够使用该颜色进行切换。
对我来说,这听起来很像机器学习,但我还没有见过它的实际应用,只是在喝啤酒时听说过。
答案2
Splunk对于这类事情来说,它非常有效。我使用它来收集所有日志,并通过其出色的基于浏览器的界面进行快速搜索。
答案3
syslog-ng 有一个 patterndb 命名功能。您可以创建模式并实时将日志条目与其匹配,然后将这些条目发送到单独的日志文件。
答案4
试用佩蒂特。
我不确定它是否适用于 log4j 格式,但您可以为此编写自定义过滤器。Petit
没有 Web 界面,它在您的 shell 中显示图表(ASCII art ftw!)。
它对于快速查看重复消息并找出它们何时发生或开始更频繁地发生非常有用。