跳至主要内容

squid日志分析

最近在测试安装通过squid进行流量监控和计费的工具,网上找了很多类似的,但是发觉并不如意,比如网上的1.Squid代理服务器的计费与流量控制2.sarg的安装和使用,目前用到的技术都是对squid的access.log进行分析和实用,网上看到的都是以redhat为平台的实用软件,而且相对来说版本都是比较陈旧,在这里你会找到很多squid官方推出的一些类似的scripts。
那我在这里就基于目前实现的两种方法在我的机子上进行下评论:(到目前为止我还没完全测试完成,仅鉴于参考)
安装环境:Ubuntu7.04
基于第一种apache2+php+mysql+mysar的使用,掠过前面的部分,着重开始mysar,其实你在网上找到的那个文章比较完整,但是似乎到后面做下去发现很难,该有的图也没有,而且PHP也没有,关于PHP,本人目前没有学过,所以放弃了对于mysar的实用。
阐述第二种:
sarg的实用和安装
在cn99源里面你使用apt-get install sarg以后所下载到的程序是sarg-2.2.2的,目前的最新版本是2.2.3的,但是我编译了一下用make install命令安装失败,貌似是c语言环境失败,算咯,就用cn99里的好了。
(起初我找不到sarg已经安装好的目录,安装以往的思维一般新的soft都安装在/etc目录下,然后死命的找,搞的我头大,到后面没办法只能find -name sarg* 了一下,发觉它其实被默认为squid的一个服务套件,sarg.conf在/etc/squid目录下。着实为自己汗一个-_____-)
然后在是sarg.conf进行配置,由于输出是以web方式进行输出的,所以有对图片大小和font的设置,但是关系不是很大。
以下是一些关键字的配置
language english"
指定网页报告文件的语言类型,很可惜不支持中文网页。
"access_log /var/log/squid/access.log"
指定squid日志文件绝对路径。
"title "squid 使用报告"
指定网页标题。
"temporary_dir /var/tmp"
指定临时文件目录,请确认该目录所在的分区足够大先,1g以上。
"output_dir /var/www/html/sarg" (默认目录为/var/www/squid-reports)
指定网页报告文件输出路径。
"topuser_sort_field connect reverse bytes reverse"
在top排序中,指定连接次数(connect),访问字节数(bytes)采用降序排列,升序请使用normal替代reverse
"user_sort_field connect reverse"
对于每个用户的访问纪录,连接次数按降序排列
"exclude_hosts /usr/local/sarg/norecords"
指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端 访问的这些站点,将不会被top排序中,norecords文件样本:
google.com
csdn.net
microsoft.com
"date_format e"
启动sarg进程是如果使用日期参数-d时,请使用和配置文件一致的日期格:
e (europe=dd/mm/yy),
u (usa=mm/dd/yy),
w (weekly=yy.ww)
"topuser_fields num date_time userid connect bytes %bytes in-cache-out used_time milisec %time total average"
指定top排序的域,可以取掉一些不关紧要的域:in-cache-out used_time等
"weekdays 1-5"
指定top排序星期周期为星期一到星期五,0表示星期天
"hours 9-11,13-16"
指定top排序的时间周期为9:00-11:59,13:00-16:59,


其他似乎也没有太大的配置。后面的设置待续,因为还在研究 =。=

sudo sarg [options] options=daily,weekly,monthly,today这些目前测试可用

评论

此博客中的热门博文

Python学习笔记20100117

映射list   Dictionary 是用{}. list 是一那个[]. turple是用() 当你定义过dictionary后,你可以使用d.keys(), d.values(),d.items()将定义后的时候分别显示出来 当然可以将list里的值加减乘除,也可以如一般的定义直接重新复制这个list. 链接与分割字符串的 li=";", join(li) 则显示的就是 分隔符为;的数 如果使用li=li.split(";")则将刚刚;的分隔符删除,而split里也可定义域,如li.split(";",1)   自省 <---这是啥 之前在使用的时候发觉有些书本上的模块不能调用,很多是py脚本定义过的函数。 下载该脚本s,然后上传至指定位置。 >>>import sys >>>sys.path >>>sys.path.append("绝对位置")然后就能调用这些脚本和参数了。 删除 >>>sys.path.pop() 定义一个参数是 def info(test, test1=10.test2=12): info是函数名,test是必备参数,因为没有定义值,test1和test2是可选参数,定义了初始值   以上是外部函数的调用,下面转到内部函数 内部函数有type,str,dir及其他   ---type 返回任意字符的类型,模块也可以。types模块 >>> type(1) <type 'int'> >>> li=[] >>> type(li) <type 'list'> >>> import odbchelper >>> type(odbchelper) <type 'module'> >>> type(sys) <type 'module'> >>> import types ...

Python学习笔记20100128

methodList = [method for method in dir(object) if callable(getattr(object, method))] ###插一句, ifconfig pcn0 unplumb 去禁solaris的网卡plumb起网卡   and, or  已经and-or一起用。 and 两者为真,print第二个数,一个为假一个为真返回假,三者为真返回最后一个真。 or 两个为真,返回第一个, 一个为假一个为真返回真,三者为假返回最后一个假   lambda可快速定义最小值函数   g = lambda x:x*2 g(3) 6 (lambda x:x*2)(3)   doc string print getattr(object,mothod).__doc__   ljust ljust 用空格填充字符串以符合指定的长度。info 函数使用它生成了两列输出并将所有在第二列的 doc string 纵向对齐。 如果小于的话不会从中截断   -----面向对象 首先导入,你可以选择import module or from module import module 如果你要经常访问模块的属性和方法,且不想一遍又一遍地敲入模块名,使用 from module import。 如果你想要有选择地导入某些属性和方法,而不想要其它的,使用 from module import。 如果模块包含的属性和方法与你的某个模块同名,你必须使用 import module 来避免名字冲突   -----类的定义 class Lofs    pass   这个类的名字是 Loaf,它没有从其它类继承。 类名通常是第一个字母大写,如:EachWordLikeThis,但这只是一个习惯,不是一个必要条件。   这个类没有定义任何方法或属性,但是从语法上,需要在定义中有些东西,所以你使用 pass。这是一个 Python 保留字,仅仅表示 “向前走,不要往这看”。它是一条什么都不做的语句,当你删空函数或类时,它是一个很好的占位符。   你可能猜...

Back to Blog again

     My last blog was almost 6 years again.  lots of things happening those years. like marriage, and move to another country, simply relocation, something is very big in my life.      Back to now,  I guess it is a very good time to start with the blog again. no matter daily life or the tech parts.      These blog may or will contains various languages, Chinese, English or Few Japanese. The first thing, I change the profile to Kamata life, Kamata is Japanese words. "鎌田"  as Kanji. why this change happened, due to we will move from Tamagawa "玉川" to Kamata very soon. I hope I can start to write this not daily, but I hope I can do this continuously.