我需要一种方式来衡量不同的文件已被访问多less次,什么时候。 我的设置由几台低容量的服务器组成,分布在全球各地,运行在Nginx之后的Varnish(用于SSL支持)。 没有内容实际存储在服务器上,它从中央存储点加载并caching在光油中长达一个小时。
我需要的是衡量每天访问某个文件的次数。 我想这应该是很容易做的访问日志,但我需要一些方法来将日志数据聚合到一个共同的数据库。
我不知道如何最好地解决这个问题。 如果需要,我可以使用PHP或Python编写聚合器,并且已经考虑在Nginx的FIFO文件或pipe道上使用它,但是不知道如何远程工作。
您可以使用syslog-ng将日志文件发送到中央日志服务器。
在清漆机器上做这样的事情:
source s_varnish { file("/var/log/varnish.log" flags(no-parse) program_override("varnish")); }; destination d_logserver { tcp("123.456.789.012"); }; log { source(s_varnish); destination(d_logserver); };
其中123.456.789.012是您的中央日志服务器。
在你的日志服务器上,如果你喜欢这样的东西,你可以把所有的日志写到一个文件中:
source s_all { syslog(0.0.0.0); }; destination d_all { file("/var/log/all.log", create_dirs(yes)); } log { source(s_all); destination(d_all); };