自cacti 开启通过mod_status对apache 的监控后,apache多了很多监控的访问日志, 对手动分析apache日志,或用awstats分析日志时都需要先对日志进行过滤,一是对监控固定的ip进行日志址滤掉,二是监控访问的固定URL,(awstats也可以过滤掉)先是cat.再grep 然后又是sed ,费时,日志大了还很耗资源.

     以关键词"dontlog special ip apache" 找到"setenvif"指令  apache果然可以对特定的url 和或访问IP 不进行日志记录, 详细了解请看:apache 中文手册 (chinaunix)

实现
         apache需要装载mod_setenvif模块,可用apachectl -M 命令确认apache是否已装载此模块.如果没有则需要手动编绎一下.可用下面的指令来进行编绎

         cd   apache_source/modules/metadata
         /usr/local/apache2/bin/apxs -a -i -c mod_setenvif.c

如下:apachectl -M 已看到apache已成功装载 mod_setenvif

userdir_module (static)
 alias_module (static)
 so_module (static)
setenvif_module (shared)

打开httpd.conf 文件在合适的位置添加如下内容,

   #SetEnvIf Remote_Addr "10\.11\.10\.254" dontlog
   SetEnvIf Remote_Addr "::1" dontlog
   SetEnvIf Request_URI "server-status" dontlog

然后修改CustomLog "logs/access_log" combined 为

CustomLog "logs/access_log" combined env=!dontlog

重启apache

可以用tail -f ../logs/access_log 已看不到监控访问的日志了