Apache registra em um arquivo para múltiplos domínios com logrotate

1

Eu gostaria de uma solução para o meu problema, onde tenho centenas de domínios em um servidor Apache. Eu não quero um arquivo de log separado para cada domínio que eu quero compartilhar um arquivo de log. Isso é bastante fácil se eu não precisar girá-los. Por exemplo eu posso usar

CustomLog "/var/log/apache2/access_log" "%h %v %l %u %t \"%r\" %>s %b"
ErrorLog "/var/log/apache2/error_log"

Isso funciona bem, mas eu usei isso e percebi que meu arquivo de log é 6GB . Então eu quero que os arquivos de log sejam rotacionados com os rotatelogs do programa Apache. Então, tentei adicionar uma rotação em um dos meus hosts virtuais.

CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log" 604800 0' "%h %v %l %u %t \"%r\" %>s %b"

O problema foi que ele adicionou alguns números após o access_log para que os outros domínios não gravassem no mesmo arquivo que o rotacionado. Existe alguma maneira de ter todos os domínios gravados no mesmo arquivo e ter o arquivo girado? se eu colocar o log em rotação para todos os hosts virtuais, ele usará o mesmo arquivo ou todos os domínios substituirão o arquivo? O que devo fazer com o 6GB access_log?

    
por Tim Golding 16.07.2012 / 13:28

1 resposta

3

A resposta no final foi ...

Para usar o registro global em vez do registro por host virtual. Eu comentei todos os logs personalizados e logs de erro dos hosts virtuais, em seguida, no httpd.conf eu adicionei

CustomLog '|/usr/sbin/rotatelogs "/var/log/apache2/access_log.%Y-%m-%d" 604800 0' "%h %v %l %u %t \"%r\" %>s %b"

ErrorLog '|/usr/sbin/rotatelogs "/var/log/apache2/error_log.%Y-%m-%d" 604800 0'

Isso fez o truque

    
por 14.11.2012 / 12:11