我想用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.
Run Code Online (Sandbox Code Playgroud)
我试图将行添加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.
Run Code Online (Sandbox Code Playgroud)
我认为它要求nginx使用的日期和日志格式.但我的nginx配置中没有任何日期或日志格式.
另外,我试图使用以前版本的goaccess(0.4.2版本), …
我想解析我所有的nginx日志(你可以在这里看到):
ls /var/log/nginx/
access.log access.log.21.gz error.log.1 error.log.22.gz
access.log.1 access.log.22.gz error.log.10.gz error.log.23.gz
access.log.10.gz access.log.23.gz error.log.11.gz error.log.24.gz
access.log.11.gz access.log.24.gz error.log.12.gz error.log.2.gz
access.log.12.gz access.log.2.gz error.log.13.gz error.log.3.gz
access.log.13.gz access.log.3.gz error.log.14.gz error.log.4.gz
access.log.14.gz access.log.4.gz error.log.15.gz error.log.5.gz
access.log.15.gz access.log.5.gz error.log.16.gz error.log.6.gz
access.log.16.gz access.log.6.gz error.log.17.gz error.log.7.gz
access.log.17.gz access.log.7.gz error.log.18.gz error.log.8.gz
access.log.18.gz access.log.8.gz error.log.19.gz error.log.9.gz
access.log.19.gz access.log.9.gz error.log.20.gz
access.log.20.gz error.log error.log.21.gz
Run Code Online (Sandbox Code Playgroud)
但我不知道该怎么做.首先,似乎goaccess无法解析.gz文件.
解析这些日志中包含的所有信息的最佳方法是什么?
在我的根 crontab ( sudo crontab -e
) 中,我有这个工作来生成 Go Access 日志报告:
* * * * * goaccess /var/log/nginx/access.log -o /home/me/some/path/report.html
Run Code Online (Sandbox Code Playgroud)
它工作得很好。我还有这项工作来生成一份跨越多天的报告:
* * * * * sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html
Run Code Online (Sandbox Code Playgroud)
Cron 说它运行,但实际上似乎没有运行。我环顾四周并尝试了很多事情(包括遵循此处的列表 - /sf/answers/1592105231/),但仍然无法运行此作业。如果我自己运行该命令,它会按预期生成文件。我还尝试了管道之前的部分,输出到 txt 文件并且有效。所以我怀疑这是与 Go Access 的一些交互。
当我启用 cron 日志记录时,该作业运行时会显示以下内容:
(root) CMD (sudo zcat -f /var/log/nginx/access.log* | goaccess -o /home/me/some/path/bigger_report.html)
Run Code Online (Sandbox Code Playgroud)
有什么指点吗?谢谢!
我想添加
0 5 1 * * goaccess -f /var/log/nginx/access.log -a > /home/xan/reports/report-week-$(date +%Y.%m.%d).html
Run Code Online (Sandbox Code Playgroud)
但是 crontab 总是抱怨:
Subject: Cron <root@deimos> goaccess -f /var/log/nginx/access.log -a > /home/xan/reports/report-week-$(date +
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
Message-Id: <E1bIogT-0001FX-9n@deimos>
Date: Fri, 01 Jul 2016 05:00:01 +0200
/bin/sh: 1: Syntax error: end of file unexpected (expecting ")")
Run Code Online (Sandbox Code Playgroud)
这样做的正确语法是什么?
我在这里看到goaccess可以安装在Windows上.我想将它与ISS 8.5日志文件一起使用,但我找不到任何关于如何"通过Cygwin可以在Windows中使用"的教程.有帮助吗?