工作,学习,生活,这里将会有一些记录. 备用域名:http://meisw.wdlinux.cn 注册 | 登陆

基于Squid日志文件进行网络流量分析

实验室一直使用Squid来做代理服务器,今天突发奇想希望统计一下大家的上网情况。故写了一个简单的网络流量分析脚本。拿来和大家分享一下。

首先得打开Squid的access_log功能:
access_log /usr/local/squid/var/logs/access.log squid

默认的日志格式如下:

access.log中的日志规则:time elapsed remotehost code/status bytes method URL rfc931 peerstatus/peerhost type
1    time          表示客户端访问的时间,毫秒,从1970/0101开始
2    elapsed        客户请求所花费的时间,毫秒
3    remotedhost    客户机的IP地址
4    code/status    客户请求类型/HTTP返回码
5    bytes            客户请求的数据大小
6    method        客户请求的方法
7    URL            客户请求的URL
8    rfc931        客户认证信息
9    peerstatus/peerhost    缓冲/目的IP
10    type            客户请求对象类型

查看活跃的客户端

cat access.log | awk '{print$3}' | sort > sortresult.log
cat access.log | awk '{print$3}' | sort -u > iplist.log
sortresult.log中存储就是每次访问来源的IP地址,iplist.log中存储的是sortresult中不重复的IP,也就是客户端IP列表。
查看总的链接请求个数:
cat sortlist.log | wc -l
查看某个IP发出了多少次链接请求:
cat sortlist.log | grep 210.45.***.*** |wc -l

流量统计

统计总的数据流量大小(以M为单位):cat access.log |awk '{print $5}'|awk '{m+=$1}END{print m/1024/1024}'

查看各种请求方式的数量(以POST为例):

cat access.log | awk '{print $6}'|grep "POST"|wc -l

查看有多少链接来自腾讯QQ:cat access.log |grep ".qq.com" |wc -l



最后将希望特别关注的信息写入了一个shell脚本,以日志文件名为参数,产生自己关心的数据。



#!/bin/bash

echo -n "总的网络链接数:"
cat $1 | wc -l

echo -n "访问数据总流量(单位:M)"

cat $1 |awk '{print $5}'|awk '{m+=$1}END{print m/1024/1024}'

echo -n "访问 renren.com的链接数:"

cat $1 | grep ".renren."|wc -l
echo -n "访问 xiaonei.com的链接数:"
cat $1 | grep ".xiaonei."|wc -l
echo -n "访问 qq.com的链接数:"
cat $1 |grep ".qq."|wc -l
echo -n "访问 taobao.com的链接数:"
cat $1 | grep ".taobao."|wc -l
echo -n "访问 youku.com的链接数:"
cat $1 | grep ".youku."|wc -l
echo -n "访问 ykimg.com(youku的镜像站点)的链接数:"
cat $1 | grep ".ykimg."|wc -l
echo -n "访问 ku6.com的链接数:"
cat $1 |grep ".ku6."|wc -l
echo -n "访问 tudou.com的链接数:"
cat $1 |grep ".tudou."|wc -l
echo -n "访问 paipai.com的链接数:"
cat $1 |grep ".paipai."|wc -l
echo -n "访问 sina.com的链接数:"
cat $1 | grep ".sina."|wc -l
echo -n "访问 163.com的链接数:"
cat $1 | grep ".163."|wc -l
echo -n "访问 sohu.com的链接数:"
cat $1 | grep ".sohu."|wc -l
echo -n "访问 xunlei.com的链接数:"
cat $1 |grep ".xunlei."|wc -l
echo -n "访问 baidu.com的链接数:"
cat $1 |grep ".baidu."|wc -l
echo -n "访问 google.com的链接数:"
cat $1 |grep ".google."|wc -l
echo -n "访问 neu6.edu的链接数:"
cat $1 |grep ".neu6."|wc -l

对下午4个小时的网络日志进行分析的结果是:
总的网络链接数:48441
访问数据总流量(单位:M)1587.98
访问 renren.com的链接数:1253
访问 xiaonei.com的链接数:94
访问 qq.com的链接数:6461
访问 taobao.com的链接数:3544
访问 youku.com的链接数:1610
访问 ykimg.com(youku的镜像站点)的链接数:953
访问 ku6.com的链接数:54
访问 tudou.com的链接数:113
访问 paipai.com的链接数:1349
访问 sina.com的链接数:1602
访问 163.com的链接数:1692
访问 sohu.com的链接数:501
访问 xunlei.com的链接数:58
访问 baidu.com的链接数:2375
访问 google.com的链接数:1464
访问 neu6.edu的链接数:388

« 上一篇 | 下一篇 »

Trackbacks

点击获得Trackback地址,Encode: UTF-8

发表评论

评论内容 (必填):