awstats 日志分析工具linux下的安装和使用
合并日志文件可以使用 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下的安装和使用的更多相关文章
- Linux 日志分析工具(logwatch)安装及使用
Linux 日志分析工具(logwatch)安装及使用 日志是非常重要的系统文件,管理员每天的重要工作就是分析和查看服务器的日志,判断服务器的健康状态.但是日志管理又是一项非常枯燥的工作,如果需要管理 ...
- Linux 日志分析工具之awstats
一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...
- 可视化日志分析工具Gltail的安装与使用
可视化日志分析工具Gltail的安装与使用 GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...
- PostgreSQL日志分析工具
PostgreSQL日志分析工具 postgresqllinux PostgreSQL日志审计可以配合 pgbench.jmeter...测试工具制定测试计划测试性能,由于日志审计比较影响性能,在不需 ...
- 日志分析工具ELK配置详解
日志分析工具ELK配置详解 一.ELK介绍 1.1 elasticsearch 1.1.1 elasticsearch介绍 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分 ...
- GoAccess日志分析工具使用文档
----Sevck 2016/3/4 17:24:13 #1软件说明: GoAccess是一款开源.实时,运行在命令行终端下的web日志分析工具.该工具提供快速.多样的HTTP状态统计,可以令管理员不 ...
- 强大的日志分析工具 -- NSLogger
转:http://www.cnblogs.com/yingkong1987/p/3329945.html 强大的日志分析工具 -- NSLogger 源码:https://github.com/fpi ...
- Log Parser 微软强大的日志分析工具
Log Parser(微软网站下载)是微软公司出品的日志分析工具,它功能强大,使用简单,可以分析基于文本的日志文件.XML 文件.CSV(逗号分隔符)文件,以及操作系统的事件日志.注册表.文件系统.A ...
- linux下MySQL安装登录及操作
linux下MySQL安装登录及操作 二.安装Mysql 1.下载MySQL的安装文件 安装MySQL需要下面两个文件: MySQL-server-4.0.16-0.i386.rpm MySQL-cl ...
随机推荐
- Semantic-UI和其他几个前端框架
本来是想介绍Semantic-UI的,但如果只介绍这个框架,没什么内容,框架相关feature站点上有不需要说,所以干脆列出自己常用的几个前端框架,算是做个阶段性总结. 本文的核心是侧重于HTML/C ...
- Swift闭包概念与常见使用场景总结
·Swift 闭包 闭包(Closures)是自包含的功能代码块,可以在代码中使用或者用来作为参数传值. Swift 中的闭包与 C 和 Objective-C 中的代码块(blocks)以及其他一些 ...
- 深入理解java虚拟机【内存溢出实例】
通过简单的小例子程序,演示java虚拟机各部分内存溢出情况: (1).java堆溢出: Java堆用于存储实例对象,只要不断创建对象,并且保证GC Roots到对象之间有引用的可达,避免垃圾收集器回收 ...
- Openstack Murano(kilo)二次开发之添加Volume
Openstack Murano(kilo)二次开发之添加Volume 欢迎转载,转载请注明出处:http://www.cnblogs.com/fmnisme/p/openstack_murano_a ...
- 教你轻松看懂 iOS9 新功能
2015苹果全球开发者大会在6月9日凌晨,美国旧金山举行,fir.im 整理了一部分的资料,帮助了解 iOS9 的新特性与功能,感兴趣的可以看下. 关于iOS9新增功能 在WWDC 2015上苹果介绍 ...
- JAVA开发工具eclipse中@author怎么改
1:JAVA开发工具eclipse中@author怎么改,开发的时候为了注明版权信息. 用eclipse开发工具默认的是系统用户,那么怎么修改呢 示例如图所示 首先打开Eclipse--->然后 ...
- java生成竖排文字图片
package com.kadang.designer.web.action;import java.awt.Color;import java.awt.Font;import java.awt.Fo ...
- 通过MSSQl作业定时执行批处理BAT文件
前言 有些时候,我们可能会需要定时执行一下批处理来达到一定的目的,比如Oracle数据库的定时备份,当然Oracle也可以通过Rman实现定时备份.我们大多数的时候是通过操作系统的计划任务实现定时执行 ...
- 重学JAVA基础(八):锁的基本知识
1.线程状态 如上图,当我们新建一个线程,并start后,其实不一定会马上执行,因为只有操作系统调度了我们的线程,才能真正进行执行,而操作系统也随时可以运行其他线程,这时线程又回到可运行状态.这个过程 ...
- lamper技能树