zoukankan      html  css  js  c++  java
  • goaccess nginx 日志分析

    用法介绍

    GoAccess的基本语法如下:

    goaccess [ -b ][ -s ][ -e IP_ADDRESS][ - a ] <-f log_file >

    参数说明:

    • -f – 日志文件名
    • -b – 开启流量统计,如果希望加快分析速度不建议使用该参数
    • -s – 开启HTTP响应代码统计
    • -a – 开启用户代理统计
    • -e – 开启指定IP地址统计,默认禁用
    • -p -指定goacces用户配置文件路径

     goaccess的配置文件介绍 
    打开/etc/goaccess.conf,里面的最主要的几个配置为: 
    (1) time-format %H:%M:%S 
    (2) date-format %d/%b/%Y 
    (3) log-format

    4, 在使用goaccess分析nginx日志时碰到的坑 
    网络上大部分的文章和介绍都只适合没任何修改的nginx日志格式,对自定义的log format都不怎么涉及。如果你采用的自定义的nginx日志格式,那么此处就需要特别注意,一旦log-format配置不对,goaccess分析的结果会差很大。 
    以我nginx日志格式为例:

    log_format main      '$server_name $remote_addr - $remote_user [$time_local] "$request" '
                            '$status $body_bytes_sent "$http_referer" '
                            '"$http_user_agent" "$http_x_forwarded_for" '
                            '$upstream_addr $request_time $upstream_response_time';
    • 1
    • 2
    • 3
    • 4

    按照goaccess预设的log format,这样的日志是没法分析的,所以我们需要自定义log format。 
    我的log format为: 
    log-format %^ %h %^ %^ [%d:%t %^] “%r” %s %b “%R” “%u” “%^” %^ %T %^

    为了设置正确的log format,踩了不少坑,先列出来避免大家重复碰到。 
    (1) log format默认是按照空格分隔日志信息的,所以,对于包含了特殊字符如空格等信息的字段,必须包含在“”里面。如字段request http_user_agent等 
    (2) nginx日志格式里面,采用空格分隔,但是此处一定注意,只能用一个空格。当时我有个地方用了两个空格,直接导致goaccess结果出错。 
    (3) nginx日志中的每一个字段都要和log format中的一一对应,如果log format中不需要nginx中的某一个信息,则用%^跳过该信息。 
    (4) 对于nginx日志中的每一个 -, log format都需要一个%^来跳过, 如果是“-”, 则用“%^” 
    (5) 如果nginx日志信息中有:, 则需要在log format中也显示出来。例如nginx日志中$time_local就包含了:,所以在log format的相应位置也是 [%d:%t %^]

    希望这些能帮助使用goaccess的朋友。

    time-format %H:%M:%S
    date-format %d/%b/%Y
    log-format %h %^ %^ %^ %^ [%d:%t %^] "%r" "%s %b" "%^" "%^" %^


    goaccess时间和日志格式支持的参数:
    date_format
    The date_format variable followed by a space, specifies the log format date containing any combination of regular characters and special format specifiers. They all
    begin with a percentage (%) sign. See http://linux.die.net/man/3/strftime

    Note that there is no need to use time specifiers since they are not used by GoAccess. It’s recommended to use only date specifiers, i.e., %Y-%m-%d. IT网,http://www.it.net.cn

    log_format
    The log_format variable followed by a space or , specifies the log format string. Linux学习,http:// linux.it.net.cn

    %d date field matching the date_format variable.

    %h host (the client IP address, either IPv4 or IPv6) IT网,http://www.it.net.cn

    %r The request line from the client. This requires specific delimiters around the request (as single quotes, double quotes, or anything else) to be parsable. If not, we
    have to use a combination of special format specifiers as %m %U %H.

    %m The request method.

    %U The URL path requested (including any query string).

    %H The request protocol.

    %s The status code that the server sends back to the client. IT网,http://www.it.net.cn

    %b The size of the object returned to the client.

    %R The “Referrer” HTTP request header.

    %u The user-agent HTTP request header. Linux学习,http:// linux.it.net.cn

    %D The time taken to serve the request, in microseconds.

    %T The time taken to serve the request, in seconds or milliseconds. Note: %D will take priority over %T if both are used.

    %^ Ignore this field. Linux学习,http:// linux.it.net.cn

    PS:
    之前配置文件错误,分析nginx日志报错,经过求助软件作者解决,并对goaccess有更深入的了解。赞一下软件作者。
    [root@Rootop ~]# goaccess -d -f /home/wwwlogs/www.rootop.org.log -a -p ~/.goaccesssrc > test.html
    Parsing… [373,734] [373,734/s]
    GoAccess – version 0.8.5 – Nov 20 2014 16:48:39

    Fatal error has occurred
    Error occured at: goaccess.c – main – 832
    Nothing valid to process. IT网,http://www.it.net.cn

    ~/.goaccesssrc文件内容:
    date_format %d/%b/%Y
    log_format %^:%^ %h %^[%d:%^] “%r” %s %b

    nginx日志:
    58.251.136.61 – - [20/Nov/2014:17:29:21 +0800] “GET /wp-content/themes/g-white/js/all.js HTTP/1.1″200 1292 “http://www.rootop.org/pages/890.html”"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36″ -

    https://goaccess.io/man#custom-log

  • 相关阅读:
    windows2008R2新增磁盘处于脱机状态及介质写入受保护解决办法
    Oracle查询字段结果加单引号以及其他内容
    系统部署Oracle及cmd命令
    如何允许谷歌浏览器Adobe Flash Player一直运行
    浏览器被hao123篡改怎么办?
    Oracle数据库备份还原
    11_程序中的循环
    10_选择结构
    09_控制台输入
    08_运算符
  • 原文地址:https://www.cnblogs.com/bigben0123/p/8081700.html
Copyright © 2011-2022 走看看