用于分析Apache日志文件的命令行工具


16

我有一堆要分析的Apache日志文件。我正在寻找不需要太多设置的工具;我可以通过命令行运行日志,而不必在实时网络服务器上乱七八糟。

有什么建议吗?


而您将要使用的操作系统是……
Izzy 2010年

Linux或MacOSX ...
mmattax 2010年

1
“分析”并不多说。你想做什么?寻找字符串,紧缩数字?
大卫2010年

Answers:


7

虽然上面的工具都很酷,但我想我知道提问者在问什么。我经常无法像使用其他文件那样从访问日志中提取信息,这使我感到非常痛苦。

这是由于愚蠢的访问日志格式:

127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"

他们为什么将[]用作日期,将“”用作其他内容?他们是否认为我们不知道日期在字段4中?真令人沮丧。

目前最好的工具是gawk:

gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'

根据上面的数据,这将为您提供:

"GET /manual/elisp/index.html HTTP/1.1"

换句话说,FPAT使您能够拉出apache-log的字段,就好像它们是实际字段一样,而不仅仅是空格分隔的实体。这就是我一直想要的。然后,我可以使用管道来解析更多内容。

在此处定义了使FSPAT工作的方法:http ://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html

因此,您可以设置别名以创建可以解析apache日志的gawk:

alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq

为我做了这个:

"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"

当然,几乎所有其他一切现在都是可能的。

请享用!


1
2条评论:日期不是真正在字段4中,而是在字段4 + 5 ^^中(不偏离格林尼治标准时间,日期几乎没有价值)。而且access_log在大多数情况下具有12个字段的形式(实际上,可以有12个以上的字段,因为第12个是http代理,它的名称中也可以包含很多空格。.前11个字段很容易解析,剩下的第12个字段(可能还有更多)应该是http代理)。因此,您可以:awk '($9 == 200) {print $6,$7,$8}'显示与示例相同的内容。在那里不需要使用FPAT(即使在其他情况下也可以使用此方法)
Olivier Dulac 2015年

我认为您太过批评了。如果您认为该字段受[]限制,则该日期位于字段4中。大多数情况下,日志文件位于一个时区中,因此该时区不是必需的。展示示例的目的不是要展示这种方式独有的可能性,而是要展示一般的技巧。
nic ferrier 2015年

1
我很惊讶……我根本没有“批评”,只指出了两句话(并说您使用的方法的确在其他情况下可能有用,但是这里不需要)……
Olivier Dulac 2015年

6

wtop很酷。还有其他实用程序。通常,我会使用bash,sed和awk解析日志。


wtop,特别是他们的日志分析器logrep非常有用,一旦您将.conf调整为您的日志格式,它将提供一种快速获取所需内容(顶部url,流量等)的方法
相当于


1

您想要哪种输出?

如果您只是想数数,则grep一些logfile.txt | wc -l很棒。如果您想要漂亮的图...就不那么多了。


对于Windows,find命令在某种程度上模仿grep。
克里斯·纳瓦


0

模拟功能开箱即用,不需要太多设置。logwrangler是一个与模拟兼容的软件包,可以产生更好的输出,并且几乎不需要任何设置。


0

我建议不要使用命令行工具,而是尝试使用Apache Logs Viewer。这是一个免费的工具,可以监视和分析Apache日志文件。它可以动态生成一些非常酷的图形和报告。

来自http://www.apacheviewer.com的更多信息

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.