我有一堆我想分析的Apache日志文件。 我正在寻找一个不需要太多设置的工具; 我可以通过命令行运行日志,而不会在我们的实时Web服务器上搞乱。
任何build议?
虽然上面的工具都很酷,但我想我知道提问者在问什么。 经常让我感到困惑的是,我无法以其他文件的方式将信息从访问日志中提取出来。
这是因为愚蠢的访问日志格式:
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"
为什么他们使用[]date和“”为其他事情? 他们是否认为我们不知道date是在第四场? 这令人难以置信的令人沮丧。
现在最好的工具是gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
上面的数据会给你:
"GET /manual/elisp/index.html HTTP/1.1"
换句话说,FPAT使您能够将apache日志的字段拉出来,就好像它们是实际字段而不是空间分隔的实体。 这总是我想要的。 然后我可以用pipe道parsing一下。
使FSPAT的工作在这里定义: http ://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
因此,你可以设置一个别名来制作一个可以parsingapache日志的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"
当然几乎所有的东西现在都是可能的。
请享用!
wtop很酷。 还有其他的工具。 通常,我将使用bash,sed和awkparsing日志。
apachetop非常酷; 它打印实时统计。 你运行它
apachetop -f /var/log/apache2/www.mysite.com.access.log
要在Debian / Ubuntu中安装它:
apt-get install apachetop
或者从源代码: https : //github.com/JeremyJones/Apachetop
http://www.intuitive.com/wicked/84-exploring-apache-access_log-shell-script.shtml中还有一个有趣的脚本
你想要什么样的输出?
如果你只是想计算的东西,然后grep东西logfile.txt | wc -l很好用。 如果你想要漂亮的图表…不是很多。
如果你有一个可以使用的Windows工作站,那么logparser就是你select的工具!
模拟function可以很好地工作,并且不需要很多设置。 logwrangler是一个与模拟产生更好的输出,也需要一点点设置的包。
而不是使用命令行工具,我会build议尝试Apache日志查看器。 这是一个可以监视和分析Apache日志文件的免费工具。 它可以生成一些非常酷的graphics和报告。