开放源代码脚本日志分析:将stderr日志消息分组(正常错误与exception)或查看趋势的工具(我们得到的信息越来越less,

想象一下一些带有各种脚本的Linux系统(主要是PERL,但它可能是写入STDERR的任何东西),它们由不同用户运行几百次,需求稍有不同。

日志保存在输出中,每个脚本的警告/错误(stderr)都会运行。 这意味着1000个日志正在积累。

用户犯错误。 而开发人员并不总是写干净的代码等

我们希望从日志中看出发生了什么事情,在每种情况下(以编程方式)以及(在行政上,分析上)理解随着时间的推移趋势。

这个问题也可以考虑在一个web服务器/ cgi的情况下,因为这往往会产生100s的脚本运行,但我不寻找特殊的解决scheme访问/错误日志。

一般而言,通常存在哪些免费/开源软件工具来识别和分析来自这样的日志集合的exception输出,其中每个日志代表一个过程的一个运行?

有用的function可能包括:

  • 可以比较此运行的stdout / stderr与历史输出​​,并确定标准输出或stderr的哪些部分不常见或值得注意
  • 可以通过以纯文本存储所有日志来实现“压缩”,无需存储100次或更多的相同错误
  • 可以分析整个商店的趋势(这个消息比以前显示的更less或更多)以及计数(最常见的错误是这些)
  • 有一个可浏览的graphics和数据输出types的用户界面

例如,可以从stderr中获取所有日志,并将它们通过sort和uniq -c运行,然后重新sorting,以便从最不频繁到最常见的错误string列表。 也可以开始将日志转​​储到某种SQL数据库中。

这可能会成为一个工具的基石,但也许有完整的软件包,已经做了这些,更多。 所以我想我会问看看其他人使用什么。

你们是否为这类事情开发内部工具?还是有很好的开源替代品?

这听起来像Splunk会是很好的答案,即使不是全部,你的许多要求。 运行评估很容易。 如果你已经考虑过,可能会评论为什么它不适合你的需求。

干杯

我的想法是:使用petit( http://opensource.eyemg.com/Petit )来分析,而不是uniq。 日志可以以.gz格式存储,所以以下可能会实现您的前3个目标,它是GPL。 没有graphics界面或导出的概念。

zcat logfile.gz | petit --hash 

要么

 zcat logfile.gz | petit --dgraph