wordpress视频网站采集器,网站制作工具,个人的网站建设的目的,北京网站制作团队Squid服务日志分析 Apache 和 Squid 是两种著名的代理缓存软件#xff0c;但Squid 较 Apache 而言是专门的代理缓存服务器软件#xff0c;其代理缓存的功能强大#xff0c;支持 HTTP/1.1 协议#xff0c;其缓存对象也较多#xff1b;并且 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重定向程序将请求改变成另一个URIhttp://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 -pes/^\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, YuriFrisk.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: (FILENAMEaccess.log FNR5469) 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 4squid访问日志文件位于/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如需转载请自行联系原作者