不要在Apache access.log中记录某些请求

时间:2016-10-23 17:11:44

标签: apache matomo

我最近通过自托管分析工具Piwik取代了Google Analytics。

这意味着,每当有人连接我的网站http://www.mywebsite.com时,都会在客户端上执行Javascript跟踪代码,该代码会调用我的Piwik服务器http://www.mywebsite.com/piwik/piwik.php

结果:

  1. 在我的服务器的Apache access.log上,有一行关于http://www.mywebsite.com,这是正常的
  2. 在我的Piwik数据库中,存储了有关此次访问的信息,这是正常的
  3. 在我的服务器的Apache access.log上,有一条关于我的Piwik服务器收到跟踪请求(由客户端用JS执行)的事实
  4. 记录部分3.显然太多了! 从现在起,自从安装了Piwik后,我的access.log就是双倍大小了!

    如何删除Apache登录access.log与http://www.mywebsite.com/piwik/piwik.php的连接这一事实?即客户端JS跟踪代码< - > Piwik服务器?

3 个答案:

答案 0 :(得分:3)

Apache手册包含有关条件记录的部分

https://httpd.apache.org/docs/2.4/logs.html

您需要做的是在满足条件时设置环境变量(路径是piwik / piwik.php)?然后,您可以在apache日志文件配置中使用该环境变量。

答案 1 :(得分:2)

解决方案是禁用某些请求的记录(例如,在 /etc/apache2/sites-available/000-default.conf与Debian 8):

<VirtualHost *:80>
  ServerName www.mywebsite.com
  DocumentRoot /home/www/mywebsite
  ...
  SetEnvIf Request_URI "^/piwik(.*)$" dontlog
  CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined env=!dontlog
</VirtualHost>

答案 2 :(得分:0)

在Apache日志文件中禁用跟踪日志并不是最好的选择。如果您的Piwik因某些原因而崩溃,或者您的跟踪在一段时间内无效(例如周末),您将丢失数据。

Apache日志可以将您保存在此处,然后您可以使用LogAnalytics重播您的流量:http://piwik.org/log-analytics/#logfile

最好有合理的日志文件存储策略,然后从日志中删除数据。