zoukankan      html  css  js  c++  java
  • squid日志分析

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

    1.SARG介绍

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

    2、安装

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

    #tar zxvf sarg-sarg-2.2.5..tar.gz
    #cd sarg-sarg-2.2.5
    #./configure
    #make
    #make install


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

    3、配置

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

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

     

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

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

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

    # 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小时生成报表

    #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

    记的加入上可以执行

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


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

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


    sarg日报表:

    #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

    记的加入上可以执行

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


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

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


    sarg周报告:

    #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
    

      

    记的加入上可以执行

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


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

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


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

  • 相关阅读:
    20145124陈威名《java程序设计》 寒假学习总结
    20145124 《Java程序设计》第1 周学习总结
    20145124陈威名《java程序设计》 第二周学习总结·
    20145124陈威名 《Java程序设计》第3周学习总结
    20145124《Java程序设计》第5周学习总结
    C/C++拾遗(三)
    c#或js url传参中文乱码解决方案
    Java设计模式之代理模式
    关于Docker&kubernetes的一些问题
    前端存储之indexedDB
  • 原文地址:https://www.cnblogs.com/nshgo/p/8270708.html
Copyright © 2011-2022 走看看