Squid服务日志分析
Squid服务日志分析
Apache 和 Squid 是两种著名的代理缓存软件,但Squid 较 Apache 而言是专门的代理缓存服务器软件,其代理缓存的功能强大,支持 HTTP/1.1 协议,其缓存对象也较多;并且 Squid 的缓存管理模块和访问控制模块功能很强大。它们有一定的相似之处,所以在分析完Apache日志后再看Squid日志就容易多了。
1 Squid日志分类
Squid的日志系统相对比较完善,常用日志分为如下两个:分别是access.log 和cache.log。
作用:
access.log;客户端使用代理服务器的记录文件,访问日志位置在squid.conf中修改;
cache.log; 缓存在运行时的状态信息和调试信息,一般情况下容量不大。缓存日志位置在squid.conf中修改。
当代理服务器运行时,所有客户提出的请求,以及Squid处理的结果都会被记录在/var/log/squid/access.log文件里,使得access.log文件的增长速度很快,通常会mount一个比较大的磁盘作为存储空间。
注意:squid下还有一类日志,store.log它记录每个进入和离开缓存的目标信息,参考价值不大,这里不做介绍。
2典型Squid访问日志分析
下面给出一条典型的Squid访问日志:
对这条日志的分析见表1。
结果/状态码 TCP_MISS 表示没有命中缓存,TCP_HIT 表示命中。
下面通过一个实用的Shell命令获取比较详细的命中情况:
# cat access.log|awk '{print$4}'|sort|uniq -c|sort -nr
33 TCP_MISS/200
2 TCP_MISS/302
2 TCP_MEM_HIT/302
1 TCP_MISS/503
当然状态信息(TCP_MISS、TCP_MEM等)不止这几个。总的来说,HIT表示命中,而TCP_MISS表示未命中。
下列标签可能出现在access.log文件的第四个域。
TCP_HIT :Squid发现请求资源最新的拷贝,并立即发送到客户端。
TCP_MISS :Squid没有请求资源的cache拷贝。
TCP_REFERSH_HIT :Squid发现请求资源旧拷贝,并发送确认请求到原始服务器。
TCP_IMS_HIT:客户端发送确认请求,Squid发送更新的内容到客户端,而不联系原始服务器。
TCP_NEGATIVE_HIT:在对原始服务器的请求导致HTTP错误时,Squid会缓存这个响应。在短时间内对这些资源的重复请求,导致了是否命中。negative_ttl指令控制这些错误被Cache的时间数量。
TCP_MEM_HIT :Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。
TCP_DENIED :因为http_access或http_reply_access规则,客户端的请求被拒绝了。
TCP_REDIRECT :重定向程序告诉Squid产生一个HTTP重定向到新的URI,这一功能比较常见,例如可以用来实现访问控制、移除广告、本地镜像等,用个实例来说,某个用户请求http://www.example.com/a.htm重定向程序将请求改变成另一个URI,http://www.example.com/b.htm。以下是重定向日志的实例:
TCP_REDIRECT/301 277 GET http://redirector.you.com/videoplayback?3257|0|3|8 HIER_NONE comp3
3 Squid时间戳转换
(1).Squid 时间戳(1356693954.014)看起来有点别扭,下面通过脚本将时间戳换算成我们认识的时间:
#perl -pe's/^\d+\.\d+/localtime($&)/e;' access.log
经过Perl程序变化后的的时间直观的显示出来,便于查看。
(2).将Squid输出日志格式变形的脚本
有时需要动态显示squid日志的第3、8、7列内容,以便更符合我们日常浏览习惯,就可以使用如下命令:
# tail -f /var/log/squid/access.log |awk'{print$3 "" $8""$7}'
192.168.150.148-http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGMPiDyDM4g8yBkPxAwD_Aw
192.168.150.148-http://safebrowsing-cache.google.com/safebrowsing/rd/ChFnb29nLXBoaXNoLXNoYXZhchAAGM3iDyDg4g8qB1DxAwD__wEyBU3xAwAH
192.168.150.148-http://en-us.fxfeeds.mozilla.com/en-US/firefox/headlines.xml
192.168.150.148-http://fxfeeds.mozilla.com/firefox/headlines.xml
192.168.150.148-http://newsrss.bbc.co.uk/rss/newsonline_world_edition/front_page/rss.xm
(3).可以将一个squid日志记录行分割成多个字段,使用参数传回需要的字段。
# tail -f/var/log/squid/access.log | awk '{print$3 " " $8 " " $7}'
这里选择的是客户IP及取回内容字段,显示如下:
192.168.150.146-http://jump.qq.com/clienturl_simp_80192.168.150.147- http://mm.china.com/zh_cn/images/tit_liangzhuang.gif192.168.150.148 -http://ly.zzip.com.cn/movie/list.aspx?
(4).还可以根据日志分析缓存命中率:
#cat access.log|awk ‘{print$4}’|sort|uniq -c|sort -nr
9568 TCP_IMS_HIT/304
6313 TCP_HIT/200
2133 TCP_MISS/200
1568 TCP_MISS/206
587 TCP_MEM_HIT/200
4 Squid日志位置:
Squid的配置文件位于/etc/squid/squid.conf,可在这个文件加入如下一行内容,以定义日志文件的存储位置。
Access_log/var/log/squid/access.log squid
下面以RHEL5为例,/var/log/squid/access.log
除了命令行方式以外,采用Squid报告分析产生器(SARG)也是一种更直观的方法。
1)使用Scalar脚本分析squid日志
scalar脚本使用简单,速度快,报告详细,免去手工分析的麻烦。分析功能包括:每小时流量、文件大小比例、文件扩展名比例、状态码比例、命中率比例等。其格式与流量统计报告分别如图2、图3所示。Scalar的下载地址是ftp://ftp.ulak.net.tr/pub/mirrors/www.squid.org/Scripts/scalar.awk
下载该脚本并赋予执行权限。接下来看个实际执行的例子。
# ./scalar.awk access.log
awk: ./scalar.awk:132: warning: escape sequence `\/' treated as plain `/'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~ SCALAR (Squid Cache Advanced Log Analyzer & Reporter), Version 0.91 ~~~~
~~~~ ~~~~
~~~~ (C) 2003 by Yuri N. Fominov, YuriF@risk.az, http://scalar.risk.az ~~~~
~~~~ SCALAR has no warranty and it is completely free, so you are welcome ~~~~
~~~~ to re-distribute this pretty useful piece of software. Good Luck2All ~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~ Analysis Headlines ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Log Start Time [15-10-2015 20:29:07]
Log End Time [16-10-2015 12:39:17]
Lines Analysed 5.469K
Unique Hosts: 1
In Traffic: 18.413 MB
Out Traffic: 18.413 MB
------------------------------------
Saved Traffic: 0 B 0.00 %
~~~ Requests By Hours ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3.2K ==
3.0K ==
2.9K ==
2.7K ==
2.6K ==
2.4K ==
2.2K ==
2.1K ==
1.9K == ==
1.8K == ==
1.6K == ==
1.4K == ==
1.3K == ==
1.1K == ==
960 == ==
800 == ==
640 == ==
480 == ==
320 == ==
160 == ==
_______________________________________________________________________________
Hours: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Maximum Requests: 3.217K/hour, 53 /min, 0.9/sec.
Average Requests: 227 /hour, 4 /min, 0.1/sec.
Minimum Requests: 0 /hour, 0 /min, 0.0/sec.
~~~ Traffic by Hours ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10.9MB ==
10.3MB ==
9.8MB ==
9.3MB ==
8.7MB ==
8.2MB ==
7.6MB ==
7.1MB ==
6.5MB == ==
6.0MB == ==
5.4MB == ==
4.9MB == ==
4.4MB == ==
3.8MB == ==
3.3MB == ==
2.7MB == ==
2.2MB == ==
1.6MB == ==
1.1MB == ==
557.4KB == ==
_______________________________________________________________________________
Hours: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
Maximum Xfers: 10.886 MB/hour, 185.783 KB/min, 3.096 KB/sec [ 25 kbps]
Average Xfers: 785.618 KB/hour, 13.094 KB/min, 223 B/sec [ 2 kbps]
Minimum Xfers: 0 B/hour, 0 B/min, 0 B/sec [ 0 kbps]
~~~ File Extensions Report ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-------|------ R E Q U E S T S --------|----------- T R A F F I C -----------|
Ext. | total | misses | hits |hit% | total | misses | hits |hit%|
-------|--------|--------|--------|-----|----------|----------|----------|----|
/ 24 24 0 0% 0 B 0 B 0 B 100%
================|========|========|=====|==========|==========|==========|====|
TOTALS: 24 24 0 0% 0 B 0 B 0 B awk: ./scalar.awk:1085: (FILENAME=access.log FNR=5469) fatal: division by zero attempted
5 图形化日志分析工具
SARG是一款Squid日志分析工具,它采用html格式输出,详细列出了每一位用户访问Internet的站点信息、时间占用信息、排名、连接次数及访问量等。
实验:
下面在OSSIM环境下安装SARG工具
1)更改源
在/etc/apt/sources.list配置文件最后添加一行内容:
deb http://backports.debian.org/debian-backports squeeze-backports main
2) 更新源
#apt-get update
VirtualUSMAllInOne:~# apt-get update
Hit http://data.alienvault.com squeeze Release.gpg
Ign http://data.alienvault.com/mirror/squeeze/ squeeze/contrib Translation-en
Ign http://data.alienvault.com/mirror/squeeze/ squeeze/main Translation-en
Hit http://data.alienvault.com squeeze/updates Release.gpg
Ign http://data.alienvault.com/mirror/squeeze_security/ squeeze/updates/contrib Translation-en
Ign http://data.alienvault.com/mirror/squeeze_security/ squeeze/updates/main Translation-en
Hit http://data.alienvault.com squeeze-lts Release.gpg
Ign http://data.alienvault.com/mirror/squeeze_lts/ squeeze-lts/contrib Translation-en
Ign http://data.alienvault.com/mirror/squeeze_lts/ squeeze-lts/main Translation-en
Hit http://data.alienvault.com binary/ Release.gpg
Get:1 http://download.webmin.com sarge Release.gpg [189 B]
Hit http://backports.debian.org squeeze-backports Release.gpg
Hit http://backports.debian.org/debian-backports/ squeeze-backports/main Translation-en
Ign http://data.alienvault.com/plugins-feed/ binary/ Translation-en
Hit http://data.alienvault.com squeeze Release
Hit http://data.alienvault.com squeeze/updates Release
Hit http://data.alienvault.com squeeze-lts Release
Hit http://backports.debian.org squeeze-backports Release
3)安装SARG
#apt-get install sarg
4)squid访问日志文件位于:/var/log/squid3/access.log
5)下面开始配置sarg.conf
#vi /etc/sarg/sarg.conf
找到#TAG:access_log file一行,这里定义访问日志的位置,改成如下内容:
access_log /var/log/squid3/access.log
接着修改输出文件的目录位置,这里我们把文件输出目录设定在/usr/share/ossim/www/目录
output_dir /usr/share/ossim/www/squid-resports
新建目录:
#mkdir /usr/share/ossim/www/squid-resports/
输出目录定义之后下面还有日期显示格式问题,这里有两种方式一种是 欧洲标准,一种是美洲标准,我们选择前者。
date_format e
6)自动生成报告
#crontab -e
* */1 * * * /usr/bin/sarg -x
7)运行sarg
#sarg -x
SARG: Init
SARG: Loading configuration from /etc/sarg/sarg.conf
SARG: Loading exclude host file from: /etc/sarg/exclude_hosts
SARG: Loading exclude file from: /etc/sarg/exclude_users
SARG: Parameters:
SARG: Hostname or IP address (-a) =
SARG: Useragent log (-b) =
SARG: Exclude file (-c) = /etc/sarg/exclude_hosts
SARG: Date from-until (-d) =
SARG: Email address to send reports (-e) =
SARG: Config file (-f) = /etc/sarg/sarg.conf
SARG: Date format (-g) = Europe (dd/mm/yyyy)
SARG: IP report (-i) = No
SARG: Input log (-l) = /var/log/squid3/access.log
SARG: Resolve IP Address (-n) = No
SARG: Output dir (-o) = /usr/share/ossim/www/squid-resports/
SARG: Use Ip Address instead of userid (-p) = Yes
SARG: Accessed site (-s) =
SARG: Time (-t) =
SARG: User (-u) =
SARG: Temporary dir (-w) = /tmp/sarg
SARG: Debug messages (-x) = Yes
SARG: Process messages (-z) = No
SARG:
SARG: sarg version: 2.3.1 Sep-18-2010
SARG: Loading User table: /etc/sarg/usertab
SARG: Reading access log file: /var/log/squid3/access.log
SARG: Records read: 5469, written: 35, excluded: 5434
SARG: Squid log format
SARG: Period: 14 Sep 2015
SARG: pre-sorting files
SARG: Making file: /tmp/sarg/192_168_11_150
SARG: Sorting file: /tmp/sarg/192_168_11_150
SARG: Making report: 192.168.11.150
SARG: Making index.html
SARG: Purging temporary file sarg-general
SARG: End
7)Web访问
https://yourIP/ossim/squid-resports/
扩展内容在webmin中设置sarg
为了以apt-get 方式安装webmin,下面还是要修改源
在/etc/apt/source.list文件最后添加如下内容:
deb http://download.webmin.com/download/repository sarge contrib
接着更新源,接着开始安装webmin
#apt-get install webmin
完成后就可以登录webmin,https://yourip:10000/ 用户名和密码是你系统的root用户,以及它的密码。
更改sarg配置文件路径
sarg报告生成管理界面
在Webmin中集成SARG的效果
Firewall Analyzer是另一个分析Squid日志工具,如图5所示。图中显示了Squid Cache的使用情况,TCP_HIT表示发现请求资源的拷贝,而TCP_MISS表示没有请求资源的缓存拷贝,TCP_MISS达到了76.79%,正常情况下TCP_HIT的数值要远大于TCP_MISS的值如果反过来那么说明代理服务器出现故障应立即检查。
图 5用FirewallAnalyzer分析Squid日志
在access.log文件当前路径下输入以下命令也可以输出统计信息:
#cat access.log|gawk ‘{print $4}’|sort|uniq -c|sort-nr
此外,还有几款squid专用日志分析工具也比较易用,例如LightSquid、Calamari、Squid-Graph以及Squid Analyzer。不过它们最近已不升级这里就不做介绍,感兴趣的读者可以去网上查阅资料。最后,统一利用OSSIM分析日志大家可以参阅《UNIX/Linux网络日志分析与流量监控》一书。
Squid服务日志分析相关推荐
- squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理
缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 作为应用层的代理服务器软件,Sqiod主要提 ...
- 《Unix/Linux网络日志分析与流量监控》2014年11月底出版
2014年11月 <Unix/Linux网络日志分析与流量监控>重磅新书出版 近日,历时3年创作的75万字书稿已完成,本书目前正在出版社清样阶段即将出版发行.本书紧紧围绕网络安全的主题,对 ...
- 《Unix/Linux日志分析与流量监控》书稿完成
<Unix/Linux日志分析与流量监控>书稿完成 近日,历时3年创作的75万字书稿已完成,本书紧紧围绕网络安全的主题,对各种Unix/Linux系统及网络服务日志进行了全面系统的讲解,从 ...
- linux取整个日志文件,高效日志分析 - 人人必学的awk
作为每一个Linux发行版本都会内置的文本处理程序,awk是快速分析日志的不二之选. 服务日志分析是对了解服务状况.发现问题的最有效的手段.最近发现很多同学在分析服务日志的时候走了弯路:选择使用编程( ...
- 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)
标题 一.Squid 代理服务器 代理的工作机制 Squid 代理的类型 二.安装 Squid 服务 1.编译安装 Squid 2.修改 Squid 的配置文件 3.Squid 的运行控制 4.创建 ...
- Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制
Squid代理(传统代理.透明代理.反向代理).日志分析.ACL访问控制 一.Squid代理服务器 1.代理的工作机制 2.代理的类型 二.安装Squid服务 1.编译安装Squid 2.修改Squi ...
- Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)
文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...
- Squid 代理服务之日志分析 --- sarg 软件的安装及应用
文章目录 1. sarg 简述 2. 安装图像处理软件包 3. 源码编译安装 sarg 4. 修改配置文件 /etc/sarg/sarg.conf 5. 创建不计入站点文件,添加的域名将不被显示在排序 ...
- Squid代理(ACL过滤模块、日志分析、反向代理)!
文章目录 一:squid的ACL访问控制 1.1:ACL访问控制的步骤: 二:ACL设置的两种方式 2.2:创建新文件,在配置文件里声明文件位置 三:sarg日志分析 3.1:sarg安装 3.2:创 ...
最新文章
- extra加ing_英语词汇学各个章节的内容
- Servlet Mapping 中/ 和 /*的区别
- #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
- modelMapper.map的一个使用例子
- ideatomcat老是运行以前的项目_日“吞”150吨垃圾,禅城集中式餐厨垃圾处理项目启用...
- 卡耐基梅隆大学计算机工程录取率,热点:卡内基梅隆大学爆出2020年新生数据,计算机学院录取率堪比藤校...
- UVA10738 Riemann vs Mertens【欧拉筛法】
- 有indexPath获取到cell对象
- [面试]synchronized
- CSDN-markdown编辑器语法说明
- MFC的API函数大全
- PHP短视频无水印解析源码
- 放大镜拾色器vue+typescript+canvas
- 计算机密码忘了 开不了机怎么办,开机密码忘了怎么办
- java ftp 250状态码_FTP状态码
- html js css 简明教程,HTML+CSS+JavaScript网页制作简明教程
- 支配树dominator tree学习笔记
- BFS(宽度优先搜索、广度优先搜索)
- 新手入坑:strapi官网教程的简单示例学习
- 大数据常见函数及案例实战
热门文章
- php 面向对象 特性,PHP面向对象三大特点学习
- 清理垃圾代码bat_来买个小内存u盘么咯?盘内带电脑垃圾清理.bat那种丨heibai.org...
- 怎么知道自己是否适合计算机专业,事实:我怎么知道我的旧计算机是否适合win7或win10?...
- oracle查同比增长_天眼查:目前我国今年新增2.3万家充电桩相关企业,同比增长16.94%...
- python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)
- android .9编译,在Ubuntu 9.04下编译Android源码
- fcm 服务器接入 golang_Golang 写的即时通讯服务器 im(服务组件形式)
- python中与label类似的控件是_python中tkinter的使用(控件整理)(一)
- 《软件项目管理(第二版)》第 3 章——项目计划 重点部分总结
- c/c++多线程模拟系统资源分配(并通过银行家算法避免死锁产生)