想象一下一些带有各种脚本的Linux系统(主要是PERL,但它可能是写入STDERR的任何东西),它们由不同用户运行几百次,需求稍有不同。
日志保存在输出中,每个脚本的警告/错误(stderr)都会运行。 这意味着1000个日志正在积累。
用户犯错误。 而开发人员并不总是写干净的代码等
我们希望从日志中看出发生了什么事情,在每种情况下(以编程方式)以及(在行政上,分析上)理解随着时间的推移趋势。
这个问题也可以考虑在一个web服务器/ cgi的情况下,因为这往往会产生100s的脚本运行,但我不寻找特殊的解决scheme访问/错误日志。
一般而言,通常存在哪些免费/开源软件工具来识别和分析来自这样的日志集合的exception输出,其中每个日志代表一个过程的一个运行?
有用的function可能包括:
例如,可以从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