我想用goaccess解析和分析nginx日志,并从分析的日志中获取报告。
但是,当我运行zcat -f access.log.*.gz | goaccess -a -c
命令时,它会给我以下错误:
GoAccess - version 0.5 - Jun 26 2012 04:30:08
An error has occurred
Error occured at: parser.c - process_log - 584
Message: No date format was found on your conf file.
我尝试将行date_format %D %T
添加到.goaccessrc文件中,但我收到了另一个错误:
GoAccess - version 0.5 - Jun 26 2012 04:30:08
An error has occurred
Error occured at: parser.c - process_log - 588
Message: No log format was found on your conf file.
我认为它要求nginx使用的日期和日志格式。 但我的nginx配置中没有任何日期或日志格式。
此外,我尝试使用以前版本的goaccess(0.4.2版本)
并且zcat -f access.log.*.gz | goaccess -a -c
命令工作正常。
它没有要求任何日期或日志格式,我可以查看goaccess菜单和
我可以查看任何想要的数据。
但是当我尝试使用zcat -f access.log.*.gz | goaccess -a -c > report.html
获取HTML报告时
命令,它什么都不做。它只是等待和等待。(没有给出任何警告或错误)
注意:我已经检查了这个网页,如果你想看一看。
答案 0 :(得分:25)
使用以下~/.goaccessrc
:
date_format %d/%b/%Y:%T %z
log_format %h - - [%d] "%r" %s %b "%R" "%u"
我从Wheezy存储库中安装了GoAccess作为二进制包(没有源代码重新编译)。
答案 1 :(得分:14)
假设您使用的是CLF格式字符串,我会使用goaccess
运行-c
,然后从配置菜单中选择NCSA Combined Log Format
。
nginx中的
"$time_local"
已替换为"23/Aug/2010:03:50:59 +0000"
,因此在您的〜/ .goaccessrc中添加date_format %d/%b/%Y
应该会这样做。
更新1 :
从源
安装v0.5Download
latest version tar -xzvf goaccess-0.5.tar.gz
cd goaccess-0.5/
./configure --enable-utf8
make
sudo make install
goaccess -a -c /var/log/apache2/access.log
注意:如果您已经安装了它,那么您可能只需要在使用zcat
之前执行第7步
答案 2 :(得分:6)
如果您不想使用全局选项,请使用goaccess --no-global-config
选项。
我正在使用它来处理我的日志文件:
grep --color=auto `date +"%d/%b"` /var/log/nginx/sitename.access.log | goaccess --no-global-config > report.html
goaccess版本:0.8
答案 3 :(得分:3)
我遇到了同样的问题! 配置文件路径正确" /etc/goaccess.conf" 试着这样做
echo "date_format %d/%b/%Y
> log_format %h %^[%d:%^] “%r” %s %b “%R” “%u” %T
> time_format %H:%M:%S" >> /etc/goaccess.conf
再试一次,祝你成功