sarg对squid的日志流量分析报表(按小时,天,周生成)

Mar 20th, 2008

转载本站文章请注明,转载自:扶凯[http://www.php-oa.com]

本文链接: http://www.php-oa.com/2008/03/20/sarg-squid-hour.html

 

1.SARG介绍

SARG的全称是:Squid Analysis Report Generator
SARG非常好用的Squid日志分析工具,它输出html格式,可以详细列出了每一位用户访问internet的站点信息,时间占用信息,排名,连接次数,访问量,访问量等。
软件的主页:http://sarg.sourceforge.net/sarg.php 目前最新的版本是sarg-2.2.5

2、安装

下载了sarg的最新安装包执行以下的操作进行安装:
解压缩安装软件包

  1. #tar zxvf sarg-sarg-2.2.5..tar.gz
  2. #cd sarg-sarg-2.2.5
  3. #./configure
  4. #make
  5. #make install

这样,就完成了sarg的安装编译前一定要有相关的开发库哦,如gcc。
安装完可执行文件是/usr/bin/sarg,配置文件是/usr/local/sarg/sarg.conf,在 /usr/local/sarg目录下还有一些其他的文件和目录。

3、配置

安装成功后,在/usr/local/sarg/目录中,有一个配置文件为sarg.conf,我们通过修改配置文件的参数,来达到对日志进行有规则的分析。也可以通过命令行参数实现。
我的相关配置如下
 

  1. language english             指定网页报告文件的语言类型,不支持中文网页。
  2. access_log /var/logs/squid/access.log  指定squid日志文件绝对路径。
  3. title "squid user access reports"              指定网页标题
  4. output_dir /var/www/html/sarg                  指定网页报告文件输出路径
  5. overwrite_report no          是否覆盖报告,当那个日期的报告已经存在时是否覆盖掉
  6. mail_utility mail
  7. topsites_num 100
  8. exclude_codes /usr/local/sarg/exclude_codes
  9. max_elapsed 28800000
  10. charset UTF-8
  11. exclude_hosts /usr/local/sarg/norecords
  12. resolve_ip no
  13. usertab /etc/squid/sarg.usertab     IP和用户的映射表(报表中可以显示用户名哦)
  14. user_ip no                          使用用户名显示
  15.  

指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端 访问的这些站点,将不会被top排序中,norecords文件样本:
google.com
microsoft.com
baidu.com

至此,sarg.conf文件的配置基本可以了

附:
sarg的命令行解释如下:

  1. # sarg -h

sarg: usage [options...]
-a hostname or ip address   指定不计入排序的主机名称或地址
-b useragent log            用户代理日志文件输出
-c exclude file             指定不计入排序的站点列表文件名为/usr/local/sarg/norecords,对于客户端访问的这
些站点,将不会被top排序中
-d date from-until dd/mm/yyyy-dd/mm/yyyy   指定日期范围
-e email address to send reports (stdout for console)   指定报告接收者邮件
-f config file (/usr/local/sarg/sarg.conf)  指定配置文件
-g date format [e=europe -> dd/mm/yy, u=usa -> mm/dd/yy] 指定输入的日期格式
-i reports by user and ip address          指定客户端排序采用用户名或者ip地址
-l input log                指定squid日志文件绝对路径。
-o output dir               指定网页报告文件输出路径,推荐使用webmaster或其他非admin用户运行
sarg。
-p use ip address instead userid (reports)  使用ip地址作为userid域
-w temporary dir            指定临时文件目录,请确认该目录所在的分区足够大先,1g以上。

4、运行
一般来说,我们希望系统可以自动生成日志分析以后的结果。在这里,我们利用cron来实现,把以下的相应脚本放到cron里面去执行即可
下面是我写的一些脚本.
sarg小时生成报表
 

  1. #vim /root/sarg-hour.sh

————————————-

#!/bin/bash
Date=$(date -d "1 hours ago " +"%y%m%d%H")
/usr/sbin/squid -k rotate
sleep 10
Squiddir=’/var/log/squid/’
Access=’access.log.*’
/bin/mv  ${Squiddir}${Access}  ${Squiddir}access${Date}.log
/usr/bin/sarg -o /var/www/html/hours  -l  ${Squiddir}access${Date}.log

记的加入上可以执行

  1. #chmod a+x /root/sarg-hour.sh

写进crontab中吧,我们只上班时间记录

  1. 0 9,10,11,12,13,14,15,16,17,18,19 * * * /root/sarg-hour.sh

sarg日报表:

  1. #vim /root/sarg-day.sh

————————————-
#!/bin/bash
#day
Squiddir=’/var/log/squid/’
Date=$(date -d "1 day ago " +"%y%m%d")
/bin/sort -m -t " " -k 1 -o $Squiddir${Date}log_all.log ${Squiddir}access${Date}*.log
/bin/rm access${Date}*.log -rf
/usr/bin/sarg -o /var/www/html/days  -l  ${Squiddir}${Date}log_all.log

记的加入上可以执行

  1. #chmod a+x /root/sarg-day.sh

写进crontab中吧,每天1点20运行统计昨天的内容

  1. 20 1 * * * /root/sarg-day.sh

sarg周报告:

  1. #vim /root/sarg-week.sh

————————————-
#!/bin/bash
#week
Date=$(date -d "1 week ago " +"%y%m%d")
YESTERDAY=$(date –date "1 week ago" +%d/%m/%Y)
/bin/sort -m -t " " -k 1 -o $Squiddir${Date}weeklog_all.log   ${Squiddir}*log_all.log
/usr/bin/sarg -o /var/www/html/week  -l  ${Squiddir}${Date}weeklog_all.log

记的加入上可以执行

  1. #chmod a+x /root/sarg-week.sh

写进crontab中吧,每周5晚上统计一周的流量

  1. 40 * * * 5 /root/sarg-week.sh

3月21日更新:修改天,周统计的路径问题

 

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪 ViVi 365Key 网摘 天极网摘 和讯网摘 博拉网 POCO 网摘 饭否 QQ 书签 Digbuzz 我挖网 Mister Wong
  1. root
    Oct 23rd, 2008 at 12:10
    Reply | Quote | #1

    [root@3843228 192.168.2.66]# sarg -o /var/www/html/housr -l /var/log/squid/access.log
    SARG: Records in file: 2542, reading: 100.00%
    SARG: (download) Cannot open file: /var/www/html/housr/2008Oct21-2008Oct22/period

    第一次执行成功 ,以后再也不行了,卸了重装也不行,