ToughLog $Id$ +--------+ 1 2 +-----------+ 3 4 +--------------+ | Apache |---+ +--->| toughlogd |---+ +--->| http present | +--------+ | | +-----------+ | | +--------------+ v | v | +----------+ +------------+ | /var/log | | PostgreSQL | +----------+ +------------+ 1. Apache writes a special crafted log file to /var/log/apache2/toughlog.log. When the log file is located at the same server as where Apache is running, we know that it will not be a bottleneck. The file could be located on another server and transported with NFS or the like. It could also be piped directly into toughlogd but if PostgreSQL can not catch up with the amount of data comming from toughlogd, then toughlogd will stop, and then Apache will stop serving pages. 2. toughlogd reads data from the log file. This is done with a simulated "tail -f" command. toughlogd does not have to run at the same server as Apache does. toughlogd just need to get access to log file in one way or another, i.e. it could be copied with ssh from the Apache server. 3. toughlogd sends data with a SQL link to PostgreSQL. This could be on another server, which is reccommended. The PostgreSQL server could be heavily stressed by end users and then Apache will suffer with CPU resources.