2010-03-10 49 views
3

Unix中用来解析/分析日志文件的流行工具是什么?做计数,找到独特的,选择/复制某些模式具有某些行。请建议一些工具或一些关键字。因为我相信之前一定有类似的问题,但我对这些关键词一无所知。谢谢。Unix中的日志解析器/分析器

回答

3

对于定期,每晚检查有logwatch其中有/usr/share/logwatch/scripts/services几个不同的脚本,检查系统日志中的具体事情(如网络服务器的东西,FTP服务器的东西,sshd相关的东西等)。默认安装启用大部分,但您可以根据需要启用/禁用,甚至可以编写自己的脚本。

对于实时观看有multitail

1

看看here列出的一些通用日志解析器。如果你使用类似syslog的东西,你可能也会得到一个自定义的解析器/分析器。否则,对于简单的搜索,任何脚本语言(如perlpython或甚至awk)都足够。

+0

链接已死,并导致潜在的NSFW。 – 2016-08-01 19:34:50

4

我发现它是一个巨大的失败,许多日志格式不会用适当的唯一字段分隔符分隔列。不是因为这是最好的,而是因为它是unix textutils操作表格数据的基本前提。相反,他们倾向于使用空格作为分隔符并引用可能包含空格的字段。

我对网络日志分析做出的最实际的简单更改之一是保留由nginx Web服务器生成的默认NCSA日志格式,而不是使用tab作为字段分隔符。

突然间我可以使用所有的原始unix textutils进行快速查找,但特别是awk!当用户代理字段包含的Googlebot只打印线:

awk 'BEGIN {FS="\t"} $7 ~ /Googlebot/ { print; }' < logfile 

查找每个唯一的请求

awk 'BEGIN {FS="\t"} { print $4; }' < logfile | sort | uniq -c | sort -n 

,当然还有大量的组合,以查找特定访问者的请求数。

1

可以使用任何允许打开和读取文件的字符串/文本操作的编程语言,例如Perl,Python,(g)awk,Ruby,PHP,甚至Java等。它们支持用于文件格式的模块你正在解析,例如csv等。

0

你可能想试试lnav,一个基于curses的日志分析器。它具有日志解析器期望的大部分功能,例如,按日期排列来自多个日志文件的日志消息,支持多种日志格式,突出显示错误/警告消息,在错误/警告消息之间导航的热键,对SQL的支持查询和更多。看看项目的website的屏幕截图和功能的详细列表。