美文网首页其他我说技术
使用GoAccess分析Nginx日志以及sed/awk手动分析

使用GoAccess分析Nginx日志以及sed/awk手动分析

作者: 王奥OX | 来源:发表于2015-07-16 15:46 被阅读935次

    前言

    使用Nginx的网站可能会遇到访问流量异常、被友情检测、程序出现Bug等各种突然情况,这时大家的反应想必都是第一时间分析日志,然后发现日志有几十GB之多,又需要按照时间、错误类型或者关键字段检索信息时会不会有种醍醐灌顶、菊花一紧的错觉。文中介绍的方法不管是GoAccess还是sed/awk虽然可以解决一时的问题但未必能够治本,也许ELK(Logstash+ElasticSearch+Kibana)对我们大多数人来说是更合理的集中化日志管理解决方案。

    日志固然重要,但努力建设适合业务发展的集中化日志管理平台才是基础核心


    更新历史

    2015年07月16日 - 初稿

    阅读原文 - http://wsgzao.github.io/post/goaccess/

    扩展阅读

    GoAccess - http://goaccess.io/
    用GoAccess分析Nginx的日志 - http://www.fancycoding.com/log-analyse-using-goaccess/
    sed 简明教程 - http://coolshell.cn/articles/9104.html
    AWK 简明教程 - http://coolshell.cn/articles/9070.html


    安装GoAccess

    各平台都有灰常简单的部署方案 - http://goaccess.io/download

    wget http://tar.goaccess.io/goaccess-0.9.2.tar.gz
    tar -xzvf goaccess-0.9.2.tar.gz
    cd goaccess-0.9.2/
    ./configure --enable-utf8
    make
    make install
    

    使用方式

    更多常见问题请参考官方FAQ - http://goaccess.io/faq

    
    #直接打开
    goaccess -f access.log
    
    #选择日志格式
    NCSA Combined Log Format
    
    #剩下的操作都蛮简单的,参考扩展阅读和官方文档吧
    
    #导出HTML报告会遇到的问题
    goaccess -f time_access.log -a > report.html
    
    GoAccess - version 0.9.2 - Jul 15 2015 16:23:20
    Config file: /usr/local/etc/goaccess.conf
    
    Fatal error has occurred
    Error occured at: src/parser.c - verify_formats - 1691
    No time format was found on your conf file.
    
    #添加配置文件
    vi ~/.goaccessrc
    
    time-format %T
    date-format %d/%b/%Y
    log-format %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
    
    #重新指定配置文件后执行
    goaccess -f time_access.log -p ~/.goaccessrc -a > report.html
    
    

    使用bash/sed/awk手动查找Nginx日志

    更多技巧可以参考扩展阅读,Python的处理效率或者更优

    #按日期查找时间段
    sed -n "/14\/Jul\/2015:00:00:00/,/15\/Jul\/2015:15:00:00/"p access.log > time_access.log
    
    #查找504错误的页面和数量
    awk '($9 ~ /504/)' time_access.log | awk '{print $7}' | sort | uniq -c | sort -rn > 504.log
    
    #查找访问最多的20个IP及访问次数
    awk '{print $1}' time_access.log | sort | uniq -c | sort -n -k 1 -r | head -n 20 > top.log
    
    

    相关文章

      网友评论

        本文标题:使用GoAccess分析Nginx日志以及sed/awk手动分析

        本文链接:https://www.haomeiwen.com/subject/qmfpqttx.html