WEB日志的一般性分析
随着网站正式运行,我们可以通过通用的免费日志分析工具比如awstats获得一些实际访问网站的信息,例如每天ip量,pv量,用户所用的的浏览器,用户所用的操作系统等,但是有时候希望通过手工方式从WEB日志文件中获得一些信息,下面列出了一些最近一段时间我经常在用的命令
获得访问前10位的ip地址
-
cat access.log|gawk '{print $1}' |sort|uniq -c|sort -nr |head -10
访问次数最多的文件或页面
-
cat access.log|gawk '{print $11}'|sort|uniq -c|sort -nr
通过子域名访问次数,依据referer来计算,稍有不准
-
cat access.log | awk '{print $11}' | sed -e ' s/http:\/\///' -e ' s/\/.*//' | sort | uniq -c | sort -rn | head -20
列出传输大小最大的几个文件
-
cat www.access.log |awk '($7~/\.php/){print $10 " " $1 " " $4 " " $7}'|sort -nr|head -100
列出输出大于200000byte(约200kb)的页面以及对应页面发生次数
-
cat www.access.log |awk '($10 > 200000 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
如果日志最后一列记录的是页面文件传输时间,则有列出到客户端最耗时的页面
-
cat www.access.log |awk '($7~/\.php/){print $NF " " $1 " " $4 " " $7}'|sort -nr|head -100
列出最最耗时的页面(超过60秒的)的以及对应页面发生次数
-
cat www.access.log |awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100
列出传输时间超过 30 秒的文件
-
cat www.access.log |awk '($NF > 30){print $7}'|sort -n|uniq -c|sort -nr|head -20
列出当前服务器每一进程运行的数量,倒序排
-
ps -ef | awk -F ' ' '{print $8 " " $9}' |sort | uniq -c |sort -nr |head -20
Popularity: 3% [?]
Related
通过网站日志做网络爬虫和恶意访问分析
今天公司网站系统发生短暂的访问中断,虽然临时性的通过重启网站服务达到正常运作的目的,但是后续的分析工作还是要做的。
首先使用命令
-
cat www.access.log |grep spider -c
和
-
cat www.access.log |wc
分别查看有爬虫标志的访问次数和合计的总页面访问次数,发现还有爬虫标志的访问次数超过总访问次数的 10%, 访问显得有些不正常。
使用
-
cat www.access.log |grep spider|awk '{print $1}'|sort -n|uniq -c|sort -nr
命令查看爬虫来ip地址来源,发现主要来至于 124.115.4.*和124.115.0.* 这两个地址段。
在防火墙上对其地址做限制。
/etc/sysconfig/iptables 中添加规则
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.0.1/24 -j REJECT
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 80 -s 124.115.4.1/24 -j REJECT
service iptables restart 使限制生效
一些已知的爬虫可以在 http://www.wangzhongyuan.com/archives/367.html 看到。可以针对自己的情况做一下分析处理,有选择性的让一些爬虫来访问。当然这个地址列出的都是一些比较有名的爬虫,如Googlebot, Baiduspider,Sogo,Yahoo等都是比较上规矩的,对他们可以通过robots.txt进行爬虫访问规则的设置,而那些较稀奇的比如这里列出的 Sosospider等就没有被列出,所以更多的小爬虫和恶意的访问还是要自己来具体分析处理的。
从网站日志文件中找出爬虫和恶意访问
一般可以对网站访问日志做分析,通过分析单位时间里面某个ip访问服务器的次数等信息来找出爬虫的来源地址和恶意访问的来源地址,比如通过
-
cat www.access.log |awk '{print $1 " " substr($4,14,5)}'|sort -n|uniq -c|sort -nr|head -20
这么一个命令就可以列出在一分钟内访问网站次数最多的前20位ip地址。
而通过
-
cat www.access.log |grep 60.190.128.6 |awk '{print $1 " " substr($4,14,5)}'|sort -n|uniq -c|sort -nr|head -20
这个命令则可以查看一天中某个ip地址对网站服务器的访问时间分段情况。
对这些命令中表现出的数量比较突出的一些ip地址,一般来说就是有问题的ip了,在配合
-
cat www.access.log |grep ip地址
可以看看这些高强度的地址访问都在干些什么。是不是正常访问,如果不是就要考虑是否要做限制了。
Popularity: 3% [?]