使用goaccess进行nginx日志分析

时间:2012-09-21 05:55:09

标签: logging nginx log-analysis goaccess

我想用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报告时 命令,它什么都不做。它只是等待和等待。(没有给出任何警告或错误)

注意:我已经检查了这个网页,如果你想看一看。

  1. http://goaccess.prosoftcorp.com/faq
  2. http://wiki.nginx.org/HttpLogModule

4 个答案:

答案 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

enter image description here

nginx中的

"$time_local"已替换为"23/Aug/2010:03:50:59 +0000",因此在您的〜/ .goaccessrc中添加date_format %d/%b/%Y应该会这样做。

更新1

从源

安装v0.5
  1. Download latest version
  2. tar -xzvf goaccess-0.5.tar.gz
  3. cd goaccess-0.5/
  4. ./configure --enable-utf8
  5. make
  6. sudo make install
  7. 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

再试一次,祝你成功