Primeiro, você precisa alterar seu formato de log para que o host virtual seja registrado em cada entrada de log. Algo parecido com o seguinte, você obterá um formato Combinado / Expandido com o bônus de% v, que é o nome do host virtual:
LogFormat "%h %v %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" \"%{Cookie}i\"" LogServerName
Em seguida, quando você deve informar ao apache para usar esse formato de log. Algo como o seguinte pode ser adicionado globalmente ou para os hosts virtuais individuais (mais fácil globalmente). Na verdade, eu geralmente tenho a linha acima e esta em um único arquivo chamado /etc/httpd/conf.d/access_logging.conf:
CustomLog /var/log/httpd/global_access.log LogServerName
Uma vez feito isso, você poderá pelo menos desativar os diferentes Hosts Virtuais. Então você pode usar algo como petit ou uniq para fazer o seguinte.
cat /var/log/httpd/global_access.log | awk '{print $ 2}' | petit - hash
Além disso, você poderia usar racecar para fazer análise de largura de banda com algo parecido com isto. Pode ser um pouco lento em arquivos grandes, mas é rápido e sujo.
for i in 'cat /var/log/httpd/global_access.log | awk '{print $2}''; do cat /var/log/httpd/global_access.log | grep $i | racecar; done
Link: link
Link: link