统计Apache日志中独立IP地址方法
11/25/2012
Kaijia今天偶尔查了一下DNSPod的解析量记录,发现某一天的解析量比正常时多了8倍多,估计可能被DDoS了,虽然一点都没感觉。于是想提取一下Apache日志中的独立IP验证一下猜想。
由于需要获得的IP地址不能有重复,用PHP写比较复杂,于是Google了一下后找到了Ben Buckman提供的方法。在Ubuntu下Apache日志的开头一般是:
1 |
www.kaijia.me:80 IP地址 - - [时间] "GET 网址 HTTP/1.1"...... |
由于IP地址在日志的第二部分,所以在Shell中运行:
1 |
cat /var/log/apache2/access.log | awk '{print $2}' | sort | uniq > /var/log/apache2/unique-ips.log |
在RedHat/CentOS中,IP地址在Apache日志的第一部分,因此需要运行:
1 |
cat /var/log/httpd/access_log | awk '{print $1}' | sort | uniq > /var/log/httpd/unique-ips.log |
运行完成后所有的独立IP就会被存放在/var/log/apache2/unique-ips.log中了,可以在Shell中运行:
1 |
cat /var/log/httpd/unique-ips.log | wc -l |
查看独立IP个数。
dnspod是做域名解析的,很牛
DNSPod附带的解析量统计做的也不错,就是有时候据反映有时候会抽风。。