AngusWong's 博客

  • 首页
  • Linux
  • Mac
  • PHP
  • 数据库
  • 路由相关
专注于计算机相关技术分享
  1. 首页
  2. Linux
  3. 正文

Nginx日志分析工具Goaccess的安装使用

2021年6月19日 4526点热度 2人点赞 0条评论

一、安装Goaccess

1、Mac系统

使用Homebrew安装,命令

brew install goaccess

2、Centos系统

yum -y install goaccess

3、Debian/Ubuntu系统

apt-get install goaccess

二、分析Nginx日志

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文件中,用浏览器打开此文件可以查看分析信息。

三、常用参数说明

  • -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 &

 

 

错误排除

如果把日志文件从服务器下载到本地进行分析,由于系统语言和时间格式不同可能会产生错误

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'

标签: goaccess log nginx
最后更新:2021年6月19日

Sean

这个人很懒,什么都没留下

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复
分类
  • Linux
  • Mac
  • PHP
  • 其他
  • 前端
  • 数据库
  • 路由相关
最新 热点 随机
最新 热点 随机
macOS Sonoma, macOS Sequoia删除Mac启动台里删不掉的图标 PVE8修改软件仓库源和 CT模板(LXC)源为国内源 Debian12更换国内源 构建宝塔面板Docker镜像 无需root!卸载小米电视/盒子内置应用 检查系统是否被入侵
Composer 国内镜像设置 MySql数据库备份与恢复——使用mysqldump 导入与导出 Debian12更换国内源 编译自己的路由器系统Openwrt centos7 修改root和home的空间大小 使用宝塔面板安装的Gitlab更改配置

COPYRIGHT © 2021 huangyuqiang.cn. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang