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日更新:修改天,周统计的路径问题

squid日志分析的更多相关文章

  1. Squid服务日志分析

    Squid服务日志分析 Apache 和 Squid 是两种著名的代理缓存软件,但Squid 较 Apache 而言是专门的代理缓存服务器软件,其代理缓存的功能强大,支持 HTTP/1.1 协议,其缓 ...

  2. Samba日志分析

    Samba日志分析 随着我们文件共享安全级别的提高,越来越多的情况下需要对日志进行记录并审计.Linux平台下的Samba服务的配置文件是smb.conf,有不少图形化配置工具例如Webmin.smb ...

  3. 《UNIX/Linux网络日志分析与流量监控》新书发布

    本书从UNIX/Linux系统的原始日志(Raw Log)采集与分析讲起,逐步深入到日志审计与计算机取证环节.书中提供了多个案例,每个案例都以一种生动的记事手法讲述了网络遭到入侵之后,管理人员开展系统 ...

  4. Apache日志分析

    Apache日志统计举例 加些来了解一下如何统计Apache的访问日志,一般可以用tail命令来实时查看日志文件变化,但是各种的应用系统中的日志会非常复杂,一堆长度超过你浏览极限的日志出现在你眼前时, ...

  5. 可视化日志分析工具Gltail的安装与使用

    可视化日志分析工具Gltail的安装与使用      GlTail.rb 是一款带有浓郁的 Geek 风格的可视化日志分析工具,它采用 Ruby 技术构建,并利用 OpenGL 图形技术进行渲染,呈现 ...

  6. 《Unix/Linux日志分析与流量监控》书稿完成

    <Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...

  7. Linux 日志分析工具之awstats

    一.awstats 是什么 官方网站:AWStats is a free powerful and featureful tool that generates advanced web, strea ...

  8. 【Linux】日志分析及管理

    日志的作用   用于记录系统.程序运行中发生的各种事件   eg: [root@localhost ~]# yum install -y httpd [root@localhost ~]# tail ...

  9. linux文件系统和日志分析

    一.Linux文件系统 1.inode与block 1.概述: (1)文件数据包括元信息与实际信息 (2)文件存储在硬盘上,硬盘最小存储单位是"扇区",每个扇区存储512字节 (3 ...

随机推荐

  1. HDOJ 1507 Uncle Tom&#39;s Inherited Land*

    直接对每一个格子进行dfs结果除以2能够得到答案可是有大量反复的结果,不好输出答案. 能够仅仅对横纵坐标相加是奇数的格子dfs.... Uncle Tom's Inherited Land* Time ...

  2. gsp页面标签

    gsp--Groovy Servers Pages <g:actionSubmit value=""/> 提交button <g:actionSubmit act ...

  3. hdu 4939

    题意: 长度为n个单位的map,每一个单位须要时间t来走完. 每一个单位能够放置一个塔.一共同拥有三种塔,每种塔的作用不同: 1.仅仅能攻击当前单位.每秒x点伤害(红塔) 2.攻击当前单位之后的全部单 ...

  4. 01_GIT基础、安装

     1 为什么选择GIT 分布式,强调个体 公共server压力和数据量都不会太大 速度快.灵活 随意两个开发人员之间能够非常easy的解决冲突 离线工作 每日工作备份 能够吃懊悔药 2  GIT基 ...

  5. web常见效果之轮播图

    轮播图的展示效果是显而易见: HTML代码如下 <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...

  6. 通过路由url携带参数进行参数传递

    一.url解析参数 在路由中写入,同一个控制器,同一个页面模板,可以写多个路由,不同的路由对应相同的页面,只是在这种传参数的状态下的特定页面. .state("OrderRecord&quo ...

  7. Shell编程中的变量作用域

    有两个shell脚本文件: a.sh name=Tom echo $name ./b.sh b.sh echo "name in b.sh:"$name 运行./a.sh时输出结果 ...

  8. Intellij Idea配置MapReduce编程环境

    原文参考地址:http://www点w2bc点com/article/229178 增加内容:question1: Hadoop2以上版本时,在Hadoop2的bin目录下没有winutils.exe ...

  9. 小白的Python之路 day4 装饰器前奏

    装饰器前奏: 一.定义: 1.装饰器本质是函数,语法都是用def去定义的 (函数的目的:他需要完成特定的功能) 2.装饰器的功能:就是装饰其他函数(就是为其他函数添加附加功能) 二.原则: 1. 不能 ...

  10. 【java】用HashMap计数,用TreeSet排序

    package com.tn.hashMap; import java.util.HashMap; import java.util.TreeSet; public class HashMapDemo ...