Uma alternativa seria configurar os servidores da Web para transmitir seus logs de acesso por meio do syslog para o seu servidor awstats.
Isso significaria uma mudança de configuração zero na configuração do awstats quando você trouxesse servidores da Web para cima e para baixo.
Em um servidor web Apache, você pode ter algo como:
ErrorLog "/var/log/www/error.log"
CustomLog "/var/log/www/access.log" combined
Substitua por um pipe para logger
(um utilitário padrão que converte stdin para mensagens syslog) e, opcionalmente, use tee
para duplicar as mensagens de log para que o arquivo de log existente também seja mantido:
ErrorLog "|/bin/sh -c '/usr/bin/tee -a /var/log/www/error.log | /usr/bin/logger -thttpd -plocal6'"
CustomLog "|/usr/bin/logger -thttpd -plocal7" combined
Em seguida, instrua o daemon syslog em cada servidor da Web para enviar arquivos de log para o seu servidor awstats:
# syslog.conf
local6.* @192.168.0.1
local7.* @192.168.0.1
Onde as mensagens recebidas podem ser coletadas e armazenadas para processamento posterior por awstats.
Se você tiver vários hosts virtuais diferentes, convém adicionar um % co_de adicional % diretiva que também registra o VirtualHost:
LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined-with-vhost
e use
CustomLog "|/usr/bin/logger -thttpd -plocal7" combined-with-vhost
Você pode fazer alguns registros pré-processados e divididos para cada VirtualHost em seu próprio arquivo de registro ou alterar seu configuração awstats para lidar com esses registros com LogFormat
e criar estatísticas corretas.