IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    用GoAccess分析Nginx日志

    夜行人发表于 2015-10-17 15:24:33
    love 0

    适合单次分析

    简介

    如果你想统计下以下数据,命令行工具GoAccess是非常适合的

    • 不同页面的访问
    • 不同Referrers
    • 不同来源IP
    • 404,浏览器,操作系统

     

    日志格式

    GoAccess用的是apache的格式定义,内置了4种格式,如果你用的是Nginx默认的日志格式,那么这里可以选”NCSA Combined Log Format”,也可以自定义,默认定义文件在:

    ~/.goaccessrc

    你也可以在其他地方定义,然后通过-p指定日志格式定义文件

    假设有一条日志格式是:

    0.025 - 192.168.15.41 - - [08/Jan/2014:18:14:35 +0800] "GET /Game.php?agentName=kk&serverID=3 HTTP/1.1" 200 5803 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)" -

    分别代表处理时间、这个-是人为定义上去的、请求来源IP、这个-字段,是获取远程用户,这里没有,所以是-、这里的-是NCSA标准格式里的、请求时间、请求的URL、http响应码、发送的数据大小、引用来源,这里是空,所以是-、客户端版本等信息、最后一个列是让代理请求客户端IP的,这里是空,所以也是-

    那么日志定义文件应该是这样:

    color_scheme 0
    date_format %d/%b/%Y
    log_format %T - %h %^[%d:%^] "%r" %s %b "%R" "%u"
    log_file /data/logs/web._php_only.log-20131212

    分析

    可以把分析结果输出到终端,也可以输出为html,json等格式

    命令:

    goaccess -f  /data/logs/web._php_only.log-20131212 > ur.html

    这里有一个需要注意,由于一些接口的特点,每次请求的URL里有个加密串,造成每次请求的URL都是唯一的,goaccess无法统计它,这时可以加-q参数,忽略掉URL问号后面的参数。

    命令

    goaccess -q -f /data/logs/web._php_only.log-20131212


沪ICP备19023445号-2号
友情链接