[h2title]一、安装Goaccess[/h2title]
1、Mac系统
使用Homebrew安装,命令
brew install goaccess2、Centos系统
yum -y install goaccess3、Debian/Ubuntu系统
apt-get install goaccess[h2title]二、分析Nginx日志[/h2title] Nginx日志文件所在可以在Nginx配置文件中找到,以下是宝塔面板网站Nginx配置中的部分内容
location ~ .*\.(js|css)?$ { expires 12h; error_log /dev/null; access_log /dev/null; } access_log /www/wwwlogs/www.***.com.log; error_log /www/wwwlogs/www.***.com.error.log;由此可以看出,日志文件位于/www/wwwlogs/网站域名.log 生成统主文件命令如下
goaccess -f /www/wwwlogs/dd.******.com.log -o result.html Parsing... [0] [0/s] GoAccess - version 1.3 - Mar 29 2020 22:32:54 Config file: No config file used Fatal error has occurred Error occurred at: src/parser.c - parse_log - 2764 No time format was found on your conf file.第一次运行会报错误如上所示,提示『未在配置文件中设置时间格式』,所以需要先修改配置文件,如果不知道配置文件地址可以使用如下命令寻找配置文件。
[root@www ~]# whereis goaccess goaccess: /usr/bin/goaccess /etc/goaccess /usr/share/man/man1/goaccess.1.gz [root@www ~]#Centos系统配置文件所在位置为/etc/goaccess/goaccess.conf,修改配置文件打开以下几个配置(去掉前面的#号)
time-format %H:%M:%S date-format %d/%b/%Y log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"然后使用如下命令使用配置文件生效
goaccess -f /www/wwwlogs/www.*****.com.log -p /etc/goaccess/goaccess.conf -o result.html这样日志分析结果就生成到result.html文件中,用浏览器打开此文件可以查看分析信息。 [h2title]三、常用参数说明[/h2title]
-f --log-file=<logfile>
指定日志文件-p --config-file=<filename>
指定配置文件--real-time-html
实时更新-a --agent-list
开启 UserAgent 列表。开启后会降低解析速度。-d --with-output-resolver
输出 HTML 或者 JSON 报告时开启 IP 解析。-o --output=<json|csv|html>
将给定文件重定向到标准输出,通过后缀名决定输出格式
# 指定文件和配置文件 goaccess -f nginx.log -p ./goaccess.conf -o result.html # 指定日志格式 goaccess -f nginx.log --log-format='%^ %^[%h] %^[%d:%t %^] "%r" %s %b "%R" "%u" %^ %T %^' --date-format='%d/%b/%Y' --time-format=%T -o result.html # 实时更新html nohup ./goaccess -f access.log -p config/nginxlog.conf -o day-report.html --real-time-html --ws-url=report.xxx.com &[dangerbox title="错误排除"] 如果把日志文件从服务器下载到本地进行分析,由于系统语言和时间格式不同可能会产生错误
goaccess ~/Downloads/www.***.com.log -o ~/Downloads/report.html ==40120== GoAccess - Copyright (C) 2009-2020 by Gerardo Orellana@ {0/s} ==40120== https://goaccess.io - <hello@goaccess.io> ==40120== Released under the MIT License. ==40120== ==40120== FILE: /Users/*****/Downloads/www.***.com.log ==40120== 已解析 10 行 出现以下错误: ==40120== ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== Token '28/Apr/2021' doesn't match specifier '%d' ==40120== ==40120== 格式错误 - 请检查你的日志/日期/时间格式这种情况下需要指定语言才能使用,可以使用下面两个命令
# 不会报错,但是生成的是英文格式 LANG="en_US.UTF-8" bash -c 'goaccess www.***.com.log --log-format=COMBINED' # 不会报错,而且生成的HTML是中文格式 LANG="zh_CN.UTF-8" LC_TIME="en_US.UTF-8" bash -c 'goaccess www.***.com.log --log-format=COMBINED -o result.html'[/dangerbox]
评论区