合并日志文件可以使用 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. Neo4j 2.0 M4 发布

    Neo4j 发布了 2.0 的第四个里程碑版本,该版本要求 Java 7 的支持.详细的改进记录请看发行通知. Neo是一个网络——面向网络的数据库——也就是说,它是一个嵌入式的.基于磁盘的.具备完全 ...

  2. QSS总结以及最近做的Qt项目

    什么是QSS QSS称为Qt Style Sheets也就是Qt样式表,它是Qt提供的一种用来自定义控件外观的机制.QSS大量参考了CSS的内容,只不过QSS的功能比CSS要弱很多,体现在选择器要少, ...

  3. http://www.cnbeta.com/articles/306769.htm

    事实上,很少有方法可以帮你做到.有些人可能会想到试着把Vim打造成C语言IDE的,比如c.vim:也有把Vim集成到Eclipse里的Eclim .但是我想要告诉你的是一个更加通用的,只用插件实现的方 ...

  4. Hive性能优化

    1.概述 继续<那些年使用Hive踩过的坑>一文中的剩余部分,本篇博客赘述了在工作中总结Hive的常用优化手段和在工作中使用Hive出现的问题.下面开始本篇文章的优化介绍. 2.介绍 首先 ...

  5. Linux:目录&文件基本操作

    - 表示上一次所在目录,- 通常表示当前用户的"home"目录.使用 pwd 命令可以获取当前所在路径(绝对路径). 新建文件:touch test创建目录:mkdir -p fa ...

  6. 你应该知道的RPC原理

    你应该知道的RPC原理 在学校期间大家都写过不少程序,比如写个hello world服务类,然后本地调用下,如下所示.这些程序的特点是服务消费方和服务提供方是本地调用关系. 而一旦踏入公司尤其是大型互 ...

  7. 记一次https访问握手失败(handshake failure)

    文章作者:luxianghao 文章来源:http://www.cnblogs.com/luxianghao/p/6239518.html  转载请注明,谢谢合作. 免责声明:文章内容仅代表个人观点, ...

  8. C++ Primer中文版(第5版)(顶级畅销书重磅升级全面采用最新 C++ 11标准)

    C++ Primer中文版(第5版)(顶级畅销书重磅升级全面采用最新 C++ 11标准) [美]Stanley B. Lippman( 斯坦利李普曼)  Josee Lajoie(约瑟拉乔伊 )  B ...

  9. iOS开发-UITableView滑动视差

    视差滚动是指让多层背景以不同的速度移动,形成立体的运动效果,在Web上应用的比较多,App中倒是见的相对比较少,主要在UITableView中的应用的比较多,尤其是当整个UITableViewCell ...

  10. 【Android】Android 移动应用数据到SD

    [Android]Android 移动应用数据到SD 在应用的menifest文件中指定就可以了,在 <manifest> 元素中包含android:installLocation 属性, ...