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访问日志:

wKiom1TB5JrgyXlYAAE6JX1EUlw104.jpg

对这条日志的分析见表1。

wKiom1TB5LeSPfsYAAL1UWvRqA8178.jpg

结果/状态码 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

wKioL1TB5c-h7ws6AAKrMMBkKLg730.jpg

经过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

图形化日志分析工具


    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用户,以及它的密码。

wKioL1X5XHHCTOCWAAGef-FWBdI978.jpg

更改sarg配置文件路径

wKiom1X5WjryFJDpAALTdPzKoSQ193.jpg

sarg报告生成管理界面

wKioL1X5XHHRX0soAAJrzfk-efY802.jpg

在Webmin中集成SARG的效果     

Firewall Analyzer是另一个分析Squid日志工具,如图5所示。图中显示了Squid Cache的使用情况,TCP_HIT表示发现请求资源的拷贝,而TCP_MISS表示没有请求资源的缓存拷贝,TCP_MISS达到了76.79%,正常情况下TCP_HIT的数值要远大于TCP_MISS的值如果反过来那么说明代理服务器出现故障应立即检查。

wKioL1TB5sPjtGqrAAVvNlajUHE137.jpg

 5FirewallAnalyzer分析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,如需转载请自行联系原作者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540401.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

云时代 揭开性能监测战略的隐秘优势

云时代的性能监测战略 能够对各种变化做出快速响应而不偏离重心和企业发展动力,正逐渐成为各行各业、各种规模企业的奋斗目标。业务敏捷性通常是运营良好,可实现盈利的企业标志。实现这一目标意味着公司已经成功地利用业务关键型技术来提高生产率&#x…

聊聊全站HTTPS带来的技术挑战

日前写的文章里了讨论了数据传输的安全性的问题,最后一部分提到了通过HTTPS解决数据传输安全性的方案。那么一个新问题又来了,实施全站HTTPS的过程中,我们可能会遇到哪些技术问题?所以我今天和大家一起来算一下这个账,将技术成本…

4.3/4.4 磁盘分区

2019独角兽企业重金招聘Python工程师标准>>> 添加虚拟磁盘 第一步,选择虚拟机中的“设置” 第二步,选择“添加硬盘” 第三步,选择_SCSI (推荐) # 保持默认 第四步,选择“创建新的虚拟磁盘…

RoboMaster 2017:机器人版的「王者农药」,工程师们的竞技时代

8月6日晚,第十六届全国大学生机器人大赛 RoboMaster 2017机甲大师赛在华润深圳湾体育中心“春茧”体育馆举行,关于这个比赛的盛况已经无需赘述,去年雷锋网参加上届比赛时,报道的是「像看了一场演唱会」,如果用演唱会来…

【初学者必读】:前端工程师的知识体系

下图是前端工程师图解: 前端开发的核心是HTML CSS JavaScript。本质上它们构成一个MVC框架,即HTML作为信息模型(Model),CSS控制样式(View),JavaScript负责调度数据和实现某种展现逻…

使用Prometheus监控Cloudflare的全球网络

Matt Bostock在SRECON 2017欧洲大会的演讲中,介绍了如何使用Prometheus实现对CloudFlare分布于全球的架构和网络的监控。Prometheus是一种基于度量进行监控的工具,CloudFlare是一家CDN、DNS和DDoS防御(Mitigation)服务提供商。\\基…

开始吧

2019独角兽企业重金招聘Python工程师标准>>> 写C三年有余,在技术方面也算小有所成。准备在这里分享一些C进阶、Python、Golang技术文章。 CSDN博客地址: http://blog.csdn.net/godmaycry 以后博客同步更新。 转载于:https://my.oschina.net/u…

Exchange server 2013(十四)WSUS部署及组策略设置(2)

我们继续上一节未完的博客,继续我们的WSUS设置。[上一章节标题:Exchange server 2013(十四)WSUS部署及组策略设置(1) 网址:http://1183839.blog.51cto.com/blog/1173839/1182366] 首先单击自动审批,来修改审批规则,也就是说当wsus侦测到新的更…

用MATLAB结合四种方法搜寻罗马尼亚度假问题

选修了cs的AI课,开始有点不适应,只能用matlab硬着头皮上了,不过matlab代码全网仅此一份,倒有点小自豪。 一、练习题目 分别用宽度优先、深度优先、贪婪算法和 A*算法求解“罗马利亚度假问题”。具体地图我这里不给出了&#xff0c…

[转]Paul Adams:为社交设计

为社交设计 Strong, Weak, and Temporary Ties by Paul Adams on 2010/04/09 PS:作者Paul Adams Facebook全球品牌体验总监 电话和手机聚集十亿用户用了15年的时间,而Facebook只用了9个月。我们看到越来越多的人开始用在线社交网络,这种网络好…

Android Framework中的Application Framework层介绍

Android的四层架构相比大家都很清楚,老生常谈的说一下分别为: Linux2.6内核层,核心库层,应用框架层,应用层。我今天重点介绍一下应用框架层Framework。 Framework层为我们开发应用程序提供了非常多的API,我…

ORACLE中创建如何创建表,并设置结构和默认值

使用select语句查看EMP表,根据COMM排序 默认情况下,空值会自动排列在尾部。 利用nulls last排序时将空值置底 利用nulls first排序时将空值置顶 例 创建一张出版社表 使用语句 create table 表名(列名1 类型,列名2 类型&#xff0…

暴风TV请来中国人工智能first lady冯雁教授任首席科学家

今日下午,暴风AI无屏电视发布会现场,暴风TV宣布邀请号称“中国人工智能first lady”、于香港科技大学任教的冯雁教授,担任暴风TV人工智能首席科学顾问。 冯雁教授于现场表示,选择暴风TV合作的重要原因,一方面在于其个人…

gulp之gulp.watch报错

gulpfile.js如下: 问题: 第一次改动文件,监听正常。再次改动,报错,如下: 解决: 总结: 意思,gulpsequence这玩意儿返回的thunk只能执行一次 转载于:https://www.cnblogs.c…

.NET深入学习笔记(4):深拷贝与浅拷贝(Deep Copy and Shallow Copy)

今天继续利用准备WSE安全开发文章的空闲时间,完善《.NET深入学习笔记》系列(基本都是.Net重要的知识点,我都做了详细的总结,是什么、为什么、和怎么实现)。想必很多人也接触过这两个概念。做过C的人对深浅拷贝的概念一…

VIM一般模式操作

2019独角兽企业重金招聘Python工程师标准>>> vim介绍 vim和vi几乎是一样的,唯一的区别就是当编辑一个文本时,使用vi不会显示颜色,而使用vim会显示颜色。 vim有三个模式:一般模式,编辑模式,命令模…

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了,就是没有时间写,遗憾啊。! 这几天做了个排序的自定义控件,在listbox item里放是button 并支持图标的交替变换 效果如下: 把代码贴上:1using System; 2using System.Collections.…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式:mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

mdm.Dialogs.promptModal()使用

这是prompt的扩展,提供了更多的功能,比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…