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

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

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

#perl /usr/local/awstats/tools/logresolvemerge.pl -dnslookup= -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= -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/'.$'/'\0 "-" "-"'/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/'.$'/'\0 "-" "-"'/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下使用正则表达式处理,需要将末尾的 \r\n 替换为 \n.可以使用 dos2unix命令,但如果日志中有二进制数据,会失败。这时需要使用 sed命令。

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

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

-e 表示使用正则表达式

筛选日志中的源IP列表

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

与攻击IP进行碰撞

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

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

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

参数说明:

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

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

-x 表示全行匹配

awstats 日志分析工具linux下的安装和使用的更多相关文章

  1. Linux 日志分析工具(logwatch)安装及使用

    Linux 日志分析工具(logwatch)安装及使用 日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态.但是日志管理又是一项非常枯燥的工作,如果需要管理 ...

  2. Linux 日志分析工具之awstats

    一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...

  3. 可视化日志分析工具Gltail的安装与使用

    可视化日志分析工具Gltail的安装与使用      GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...

  4. PostgreSQL日志分析工具

    PostgreSQL日志分析工具 postgresqllinux PostgreSQL日志审计可以配合 pgbench.jmeter...测试工具制定测试计划测试性能,由于日志审计比较影响性能,在不需 ...

  5. 日志分析工具ELK配置详解

    日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...

  6. GoAccess日志分析工具使用文档

    ----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...

  7. 强大的日志分析工具 -- NSLogger

    转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...

  8. Log Parser 微软强大的日志分析工具

    Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件.XML 文件.CSV(逗号分隔符)文件,以及操作系统的事件日志.注册表.文件系统.A ...

  9. linux下MySQL安装登录及操作

    linux下MySQL安装登录及操作 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.16-0.i386.rpm MySQL-cl ...

随机推荐

  1. Asp.Net Web API 2第一课——入门

    详情请查看http://aehyok.com/Blog/Detail/68.html 个人网站地址:aehyok.com QQ 技术群号:206058845,验证码为:aehyok 本文文章链接:ht ...

  2. 说说ABP项目中的AutoMapper,Castle Windsor(痛并快乐着)

    这篇博客要说的东西跟ABP,AutoMapper和Castle Windsor都有关系,而且也是我在项目中遇到的问题,最终解决了,现在的感受就是“痛并快乐着”. 首先,这篇博客不是讲什么新的知识点,而 ...

  3. [stm32] 利用uC-BmpCvt软件生成uc-gui可调用的bmp图片

    >_<:学习贴图[bmp图]:首先找一张bmp格式的图片,然后下载uC-BmpCvt软件,打开改图片 >_<:然后点击Image-Conver-Into-Best Palatt ...

  4. iOS——Command-Line 查看当前SDK版本并修改默认SDK版本

    在工作中可能会碰到用命令行编译.打包iOS应用程序的情况(xcodebuild相关命令). 但是由于SDK版本问题,会报错,说某SDK版本不对,可能是因为升级Xcode导致的SDK版本升级,为了避免高 ...

  5. 如何真正重写window对象的方法

    重写window对象的方法不是一件新奇的事,比如我们可能需要改变默认alert的行为,如何安全的重写呢? 小菜看到某知名IT网站是这样的写法: window.alert = function(){}; ...

  6. jenkins2 插件安装

    文章来自:http://www.ciandcd.com 文中的代码来自可以从github下载: https://github.com/ciandcd Jenkins的安装包和插件在7个国家有20多个镜 ...

  7. javascript 函数详解2 -- arguments

    今天我们接着上篇文章来继续javascript函数这个主题.今天要讲的是函数对像中一个很重要的属性--arguments. 相关阅读: javascript 函数详解1 -- 概述 javascrip ...

  8. Django MVC simple

  9. atitit.泛型编程总结最佳实践 vO99 java c++ c#.net php

    atitit.泛型编程总结最佳实践 vO99 java c++ c#.net php \ 1. 泛型历史 1 由来 1 2. 泛型的机制编辑 1 机制 1 编译机制 2 3. 泛型方法定义1::前定义 ...

  10. atitit.web 推送实现方案集合

    atitit.web 推送实现方案集合 1. 俩中模式 Push/Pull 1 2. 需要实现的特性 2 2.1. 推送消息广播. 2 2.2. 推送定向消息. 2 2.3. 提供连接上线前.上线.下 ...