zoukankan      html  css  js  c++  java
  • awstats 日志分析工具linux下的安装和使用

    合并日志文件可以使用 bash 的sort命令:

    #sort -m -t " " -k 4 -o log_all access*.log

    也可以使用  awstats 提供的 logresolvemerge.pl

    #perl /usr/local/awstats/tools/logresolvemerge.pl -dnslookup=100 -showsteps access*.log >log_all
    -showsteps 表示每8192行显示一次进度。
    -dnslookup=100 表示用100个线程对 访问 IP进行dns解析。
    优先使用 logresolvemerge.pl。因为在日志中时间混乱的情况下,使用 sort命令合并文件可能会在后面操作中报"Corrupted record"错误。

    Corrupted record (date 20161210101739 lower than 20170109235927-20000)

    以上命令,将需要分析的日志合并成一个 log_all文件

    #perl awstats_configure.pl
    #perl awstats.pl -config=www.mysite.com -update  -showdropped  -showcorrupted
    #perl awstats_buildstaticpages.pl -config=www.mysite.com -month=05 -year=2016 -dir=/usr/local/awstats/wwwroot/

    如果后期在日志中添加了其它列,例如添加了 referance 或user-agent, awstats会因为前后的列不匹配,而不能显示。这时需要在之前的日志中行尾添加 -

    先找到添加了referance的第一行的行号

    [root@iZ62jhlmsymZ tomcat_log]# grep -m 2 -n -C 2 '" " -' log_all
    2027122-180.97.106.162 - - [24/May/2016:13:15:37 +0800] "GET /res/jqueryForm/jqueryForm.tar.bz2 HTTP/1.0" 404 -
    2027123-125.35.62.66 - - [24/May/2016:13:15:38 +0800] "GET /xwzxBmdt/237575.jhtml HTTP/1.1" 200 10320
    2027124:223.12.179.216 - - [24/May/2016:13:15:58 +0800] "GET /r/cms/taiyuan/red/images/wm_6.jpg HTTP/1.1" 200 - "http://www.mysite.com/" "Mozilla/5.0 (iPad; U; CPU OS 9_3 like Mac OS X; zh-CN; iPad4,2) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/2.9.5.735 U3/ Mobile/10A403 Safari/7543.48.3" " -
    2027125:223.12.179.216 - - [24/May/2016:13:15:58 +0800] "GET /r/cms/taiyuan/red/images/wm_4.jpg HTTP/1.1" 200 - "http://www.mysite.com/" "Mozilla/5.0 (iPad; U; CPU OS 9_3 like Mac OS X; zh-CN; iPad4,2) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/2.9.5.735 U3/ Mobile/10A403 Safari/7543.48.3" " -
    [root@iZ62jhlmsymZ tomcat_log]# sed -i 1,2027123s/'.$'/' "-" "-"'/g log_all
    [root@iZ62jhlmsymZ tomcat_log]# sed -n '2027121,2027124p' log_all
    180.97.106.37 - - [24/May/2016:13:15:37 +0800] "GET /r/cms/www.bz2 HTTP/1.0" 404 - "-" "-"
    180.97.106.162 - - [24/May/2016:13:15:37 +0800] "GET /res/jqueryForm/jqueryForm.tar.bz2 HTTP/1.0" 404 - "-" "-"
    125.35.62.66 - - [24/May/2016:13:15:38 +0800] "GET /xwzxBmdt/237575.jhtml HTTP/1.1" 200 10320 "-" "-"
    223.12.179.216 - - [24/May/2016:13:15:58 +0800] "GET /r/cms/taiyuan/red/images/wm_6.jpg HTTP/1.1" 200 - "http://www.mysite.com/" "Mozilla/5.0 (iPad; U; CPU OS 9_3 like Mac OS X; zh-CN; iPad4,2) AppleWebKit/534.46 (KHTML, like Gecko) UCBrowser/2.9.5.735 U3/ Mobile/10A403 Safari/7543.48.3" " -
    [root@iZ62jhlmsymZ tomcat_log]#

     第一个指令 grep '"$' log_all表示查找 log_all 中以双引号结尾的行,并显示行号( -n ) 。为便于观察,我们使用 "-m 2 -C 2"参数使结果显示前后两行。结果显示,第2027124行开始,记录中含有 referance字段和 user-agent字段。

    第二个指令 sed -i 1,2027123s/'.$'/' "-" "-"'/g log_all 表示自第1行至第2027123行,在行尾加上“  "-" "-"”。 参数"-i"表示直接将修改的结果写入文件。

    第三个指令是查看修改后的结果。

    对以上日志格式,配置文件awastats.www.mysite.com.conf 中,LogFormat 的配置的值如下:

    [root@iZ62jhlmsymZ tomcat_log]# grep ^LogFormat /etc/awstats/awstats.www.mysite.com.conf
    LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot" [root@iZ62jhlmsymZ tomcat_log]#

     需要关注的参数:
    Not viewed traffic * 里面包含了ua 为爬虫的数据,以及应答码为404错误等信息。

    awstats是用于统计分析的,一些指标不能分析到,一些时候我们需要查相关的原始日志。这些情况可以考虑使用正则表达式工具直接对日志进行分析。

    如果是 windows下的 log文件,在unix下使用正则表达式处理,需要将末尾的 替换为 .可以使用 dos2unix命令,但如果日志中有二进制数据,会失败。这时需要使用 sed命令。

    #sed -i -e 's/^M$/
    /g' log_all

    -i 表示修改结果直接写入到文件。

    -e 表示使用正则表达式

     筛选日志中的源IP列表

    [root@iZ62jhlmsymZ tomcat_log]# grep -o ^[0-9.]* log_all | sort -u >log_ip_uniq.list

     与攻击IP进行碰撞

    [root@iZ62jhlmsymZ tomcat_log]# grep -x -F -f log_ip_uniq.list 0518.sip.quchong.txt > crash.ip
    [root@iZ62jhlmsymZ tomcat_log]# wc -l crash.ip
    234 crash.ip

    一共碰撞出234个IP.看看这234个IP访问频率。

     grep -o ^[0-9.]* 234ip |sort | uniq -c

    参数说明:

    -f  要匹配的内容所在文件

    -F 指示要匹配的内容以换行符分隔

    -x 表示全行匹配

  • 相关阅读:
    .net core入门
    编码之Base64编码
    C++ 实现十大排序算法
    C++11 智能指针
    Object Pool 对象池的C++11使用(转)
    mac pro 1.5T内存是如何实现的
    Linux C/C++开发
    mac Chrome 快捷键
    C++11多线程
    Java项目压力测试(待补)
  • 原文地址:https://www.cnblogs.com/diylab/p/5814054.html
Copyright © 2011-2022 走看看