squid 的配置详解 (转)--SeriesIII

来源:互联网 发布:cyc指标源码dzh 编辑:程序博客网 时间:2024/06/05 16:06

SQUID LOG 文件处理

/var/log/squid目录下面,有三个非常重要的文件,access.log stroe.logcache.log 这三个文件的说明在前面的小节已经讲过,在这里再做一些简单的说明

access.log;客户端使用代理服务器的记录文件

store.log;存储缓冲对象的状态记录文件

cache.log;CACHE的启动以及各类状态的记录文件

 

当代理服务器运行的时候,所有客户提出的请求,以及SQUID处理的结果都会被记录在/VAR/LOG/SQUID/ACCESS.LOG文件里,使得ACCESS.LOG文件的增长速度惊人,因此如果此目录的容量不够大,经常会因为日志文件占满空间,而造成系统的死机,这也是初学者架设SQUID服务器,以及一些书籍容易胡略的问题

 

此类问题的彻底解决方法不是清楚LOG文件,而是做一个LOG轮换,也就是将ACCESS.LOG,CACHE.LOG,STORE.LOG清理出来存成另外一个文件例如ACCESS.LOG0,CACHE.LOG0,等等,而让原来的LOG文件继续做记录

(在新版本的SQUID里面,这个问题已经得到解决,初学者基本不需要多做任何配置,就可以有日志轮换)

 

为什么不清楚这个log文件呢?因为就的LOG文件里面记录着客户提出的请求以及SQUID处理的信息和结果,用这个文件,可以对代理服务器的使用情况作出流量分析,统计。例如:命中率,最长访问的URL地址排名,被访问的国家URL地址统计等等,因此保存旧的LOG文件是非常必要的。

 

SQUID默认的log文件非常多,其中最重要的LOG文件就是上面提到的三个日志文件,在SQUID.CONF里面分别由CACHE_ACCESS_LOG,CACHE_STORE_LOG,CACHE_LOG三个命令定义他们的路径,如下所示:

 

#用法:cache_access_log路径

#说明:记录目前代理服务器的活动情况包含所有的HTTP请求,和ICP查询结果

 

CACHE_ACCESS_LOG /var/log/squid/access.log;squid默认值

 

#用法:cache_log路径[NONE]

#说明:此文件记录SQUID PROXY启动,关闭以及代理服务器系统的相关的信息包括系统活动记录

 

cache_log /var/log/squid/cache.log;squid默认值

 

#用法:cache_store_log路径[NONE]

#说明:此记录文件用来记录缓冲对象的添加,删除情况

 

cache_store_log /var/log/squid/store.log

 

由于store.log的用处不大,一般可设置为:cache_store_log none,来降低日志文件占用的磁盘空间,这一点请特别注意。

 

一般LOG文件“轮换”,都是手动执行SQUID -K ROTATE 每当执行此命令时SQUID会根据SQUID.CONF里面的logfile_rotate命令所定义的值,为轮换除的文件名编号,默认是log_rotate 10. logfile_rotat命令的用法如下:

 

#用法:logfile_rotate 0~10

logfile_rotate 10

 

如果设置为 0即永不做轮换,如果设置为LOG_ROTATE 10以及ACCESS.LOG为例,表示轮换出来的就LOG文件名依次为:access.log0,......就这个轮换过程来说:第一次轮换出来的就文件SQUID为其改名为ACCESS.LOG0;其后的也可以依次类推。

这个参数,建议小型的网络设置为10,中型网络设置为4-5;而大型的网络设置为1-2设置如下:

logfile_roate 1;仅仅保留一份最新的LOG轮换备份

 

对大型的网络而言,应该每天做一次LOG文件轮换,轮换出的文件不需要保留长时间,只需要保留1-2天的LOG就可以了

 

要注意的是,并不是调整这个参数重新启动SQUID就可以做LOG文件轮换了,还需要执行SQUID -K ROTATE 命令才行(在新的版本里面,似乎不需要了),为了每天都能自动做LOG文件轮换,必须在CRONTAB自动执行程序表里明确定义做LOG轮换的时间,才能自动执行,例如每天清晨两点五十五做log文件轮换,可以按下面的进行操作

 

#crontab -u root -e

使用VI编辑CRONTAB,在最后一行加入

55 2 * * * /usr/sbin/squid -k rotate

 

这里面就不去解释CRONTAB命令的格式了,(可以网络上搜索一下)

 

那么以后,每天清晨2:55crondeamon就会自动执行轮换命令了。

 

【新版本的SQUID日志的轮换似乎已经集成在系统里面了,不需要太多配置,而且SQUID还会将您过大的LOG文件打为压缩包】