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网络日志分析与流量监控》一书。

本文转自 李晨光 51CTO博客,原文链接:http://blog.51cto.com/chenguang/1607385,如需转载请自行联系原作者

Squid服务日志分析相关推荐

  1. squid缓存服务器 ACL访问控制 传统代理 透明代理 squid日志分析 反向代理

    缓存代理概述 Squid提供了强大的代理控制机制,通过合理的设置ACL,并进行限制,可以针对源地址.目标地址.访问的URL路径.访问的时间等条件进行过滤. 作为应用层的代理服务器软件,Sqiod主要提 ...

  2. 《Unix/Linux网络日志分析与流量监控》2014年11月底出版

    2014年11月 <Unix/Linux网络日志分析与流量监控>重磅新书出版 近日,历时3年创作的75万字书稿已完成,本书目前正在出版社清样阶段即将出版发行.本书紧紧围绕网络安全的主题,对 ...

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

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

  4. linux取整个日志文件,高效日志分析 - 人人必学的awk

    作为每一个Linux发行版本都会内置的文本处理程序,awk是快速分析日志的不二之选. 服务日志分析是对了解服务状况.发现问题的最有效的手段.最近发现很多同学在分析服务日志的时候走了弯路:选择使用编程( ...

  5. 部署Squid 代理服务器(内含传统、透明代理服务器的配置、ACL访问控制、日志分析、反向代理)

    标题 一.Squid 代理服务器 代理的工作机制 Squid 代理的类型 二.安装 Squid 服务 1.编译安装 Squid 2.修改 Squid 的配置文件 3.Squid 的运行控制 4.创建 ...

  6. Squid代理(传统代理、透明代理、反向代理)、日志分析、ACL访问控制

    Squid代理(传统代理.透明代理.反向代理).日志分析.ACL访问控制 一.Squid代理服务器 1.代理的工作机制 2.代理的类型 二.安装Squid服务 1.编译安装Squid 2.修改Squi ...

  7. Squid服务器应用(Squid传统代理、Squid透明代理、ACL访问控制、Squid日志分析、Squid反向代理)

    文章目录 一.缓存代理概述 二.Squid代理服务器 三.代理的工作机制 四.Squid代理的类型 五.部署Squid代理服务器步骤 (一).安装Squid服务 (二).构建传统代理服务器 (三).构 ...

  8. Squid 代理服务之日志分析 --- sarg 软件的安装及应用

    文章目录 1. sarg 简述 2. 安装图像处理软件包 3. 源码编译安装 sarg 4. 修改配置文件 /etc/sarg/sarg.conf 5. 创建不计入站点文件,添加的域名将不被显示在排序 ...

  9. Squid代理(ACL过滤模块、日志分析、反向代理)!

    文章目录 一:squid的ACL访问控制 1.1:ACL访问控制的步骤: 二:ACL设置的两种方式 2.2:创建新文件,在配置文件里声明文件位置 三:sarg日志分析 3.1:sarg安装 3.2:创 ...

最新文章

  1. extra加ing_英语词汇学各个章节的内容
  2. Servlet Mapping 中/ 和 /*的区别
  3. #一周五# VS2015 CTP6, TFS2015 CTP1更新,老衣的开发工具汇总,2015 MVP 社区巡讲
  4. modelMapper.map的一个使用例子
  5. ideatomcat老是运行以前的项目_日“吞”150吨垃圾,禅城集中式餐厨垃圾处理项目启用...
  6. 卡耐基梅隆大学计算机工程录取率,热点:卡内基梅隆大学爆出2020年新生数据,计算机学院录取率堪比藤校...
  7. UVA10738 Riemann vs Mertens【欧拉筛法】
  8. 有indexPath获取到cell对象
  9. [面试]synchronized
  10. CSDN-markdown编辑器语法说明
  11. MFC的API函数大全
  12. PHP短视频无水印解析源码
  13. 放大镜拾色器vue+typescript+canvas
  14. 计算机密码忘了 开不了机怎么办,开机密码忘了怎么办
  15. java ftp 250状态码_FTP状态码
  16. html js css 简明教程,HTML+CSS+JavaScript网页制作简明教程
  17. 支配树dominator tree学习笔记
  18. BFS(宽度优先搜索、广度优先搜索)
  19. 新手入坑:strapi官网教程的简单示例学习
  20. 大数据常见函数及案例实战

热门文章

  1. php 面向对象 特性,PHP面向对象三大特点学习
  2. 清理垃圾代码bat_来买个小内存u盘么咯?盘内带电脑垃圾清理.bat那种丨heibai.org...
  3. 怎么知道自己是否适合计算机专业,事实:我怎么知道我的旧计算机是否适合win7或win10?...
  4. oracle查同比增长_天眼查:目前我国今年新增2.3万家充电桩相关企业,同比增长16.94%...
  5. python图像人类检测_OpenCV人类行为识别(3D卷积神经网络)
  6. android .9编译,在Ubuntu 9.04下编译Android源码
  7. fcm 服务器接入 golang_Golang 写的即时通讯服务器 im(服务组件形式)
  8. python中与label类似的控件是_python中tkinter的使用(控件整理)(一)
  9. 《软件项目管理(第二版)》第 3 章——项目计划 重点部分总结
  10. c/c++多线程模拟系统资源分配(并通过银行家算法避免死锁产生)