Isso realmente parece funcionar, existe alguma desvantagem?
CustomLog "|cat >> /shared/log/apache2/'hostname'-access.log" "%h %l %u %t \"%r\" %>s %b %D"
Estamos trabalhando no balanceamento de carga de nossos servidores web amazon ec2 executando o apache2. Até que tenhamos um sistema de registro melhor, gostaríamos que cada instância simplesmente escrevesse seus logs de servidor para um volume compartilhado (compartilhado usando sshfs atm)
O problema que encontramos é que, se duas instâncias estão gravando no mesmo arquivo de log compartilhado (/shared-volume/access.log), alguns de nossos logs são corrompidos devido à falta de bloqueio de arquivo por sshfs
Como queremos que as instâncias sejam idênticas umas às outras, a solução de curto prazo que pensamos era ter o log do apache em /shared/log/apache2/[instance-ip]-access.log
Isso é possível?
Tentei essa e outras variantes, mas parece que o arquivo de log é sempre interpretado estaticamente.
CustomLog /shared/log/apache2/%{SERVER_ADDR}-access.log "%h %l %u %t \"%r\" %>s %b %D"
Seria possível mover a interpretação de volta um passo, talvez para o comando mount? O Bash transformará "$ HOSTNAME" no nome do host. Em vez de fazer login em / shared / log / apache2 /, efetue login em / shared / log, mas certifique-se de que / shared / log seja, na verdade, ssh-host:/var/log/apache/$HOSTNAME/
. Dessa forma, você pode manter suas configurações idênticas.
Tags amazon-ec2 logging apache-2.2