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. PAT 1004 To Fill or Not to Fill (25)

    题目描写叙述 With highways available, driving a car from Hangzhou to any other city is easy. But since the ...

  2. Vue.js 基本语法

    插值 Html 使用 v-html 指令用于输出 html 代码: <div id="app"> <div v-html="message"& ...

  3. 「mysql优化专题」优化之路高级进阶——表的设计及优化(6)

    正文:表的设计及优化(真技术文) 优化①:创建规范化表,消除数据冗余 数据库范式是确保数据库结构合理,满足各种查询需要.避免数据库操作异常的数据库设计方式.满足范式要求的表,称为规范化表,范式产生于2 ...

  4. gcc编译相关tips

    http://blog.csdn.net/benpaobagzb/article/details/51364005 静态库链接时搜索路径顺序: ld会去找GCC命令中的参数-L 再找gcc的环境变量L ...

  5. 【java】读取资源文件key->value,java.util.ResourceBundle

    package 国际化; import java.util.ResourceBundle; public class TestResource { public static void main(St ...

  6. 如何给动态添加的form表单控件添加表单验证

    最近使用jQuery Validate做表单验证很方便,api地址为http://www.runoob.com/jquery/jquery-plugin-validate.html 但是在使用的时候也 ...

  7. ArcGIS API for JavaScript 4.2学习笔记[24] 【IdentifyTask类】的使用(结合IdentifyParameters类)(第七章完结)

    好吧,我都要吐了. 接连三个例子都是类似的套路,使用某个查询参数类的实例,结合对应的Task类,对返回值进行取值.显示. 这个例子是Identify识别,使用了TileLayer这种图层,数据来自Se ...

  8. [Maximize ∑arr[i]*i of an Array]

    Given an array of N integers. Your task is to write a program to find the maximum value of ∑arr[i]*i ...

  9. js垃圾回收机制

    垃圾回收机制,简称GC(garbage collection),会定期(周期性)地回收那些不再使用的变量,然后释放其内存. 而内存占用的情况有很多: 1.变量 2.字面量对象声明:var obj = ...

  10. Linux(CentOS6.5)下编译安装Nginx官方最新稳定版(nginx-1.10.0)

    注:此文已经更新为新版:http://comexchan.cnblogs.com/p/5815753.html ,请直接查看新版,谢谢! 本文地址http://comexchan.cnblogs.co ...