Estou tentando fazer com que o logrotate funcione no meu VPS para girar meus arquivos apache semanalmente. Atualmente, o conteúdo do arquivo de configuração apache2 é como tal.
"/var/www/user/site.com/logs/*.log" {
weekly
missingok
rotate 8
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}
Deixei-o por duas semanas agora e nada mudou, tanto quanto posso dizer. Quando simulo na linha de comando, recebo a seguinte saída.
user@geneva:/var/lib/logrotate$ /usr/sbin/logrotate -d /etc/logrotate.d/apache2
reading config file /etc/logrotate.d/apache2
reading config info for "/var/www/user/site.com/logs/*.log"
Handling 1 logs
rotating pattern: "/var/www/user/site.com/logs/*.log" weekly (8 rotations)
empty log files are not rotated, old logs are removed
considering log /var/www/user/site.com/logs/access.log
log does not need rotating
considering log /var/www/user/site.com/logs/error.log
log does not need rotating
not running postrotate script, since no logs were rotated
Alguma idéia do que Iv'e configurou de errado?
Meu arquivo de status também está vazio :(
user@geneva:~$ cat /var/lib/logrotate/status
logrotate state -- version 2
Atualizar
Excluí o arquivo de status e fiz uma execução forçada de logrotate e agora os logs parecem ter sido rotacionados e o arquivo de status parece mais promissor!
sudo rm /var/lib/logrotate/status
sudo /usr/sbin/logrotate -f /etc/logrotate.conf
/var/lib/logrotate.status
com uma data de pelo menos uma semana. Eu atualizei a resposta com um exemplo ...Isso pode ocorrer porque os arquivos de log estão vazios.
Essa situação pode ocorrer porque o apache ainda grava em um arquivo de log anterior, que foi renomeado sem reiniciar o apache. Então, access.log se tornou access.log.1 e o apache escreve nele.
Ou você tem um problema com o horário de criação do log:
fonte
notifempty
linha para lidar com os logs de 0 byte que não estão girando. Em seguida, você desejarátouch
um novo arquivo de log antes de cada teste, para que o logrotate tenha algo para girar.Eu enfrentei o problema semelhante, exceto por nenhuma dessas respostas me ajudar. Meu arquivo de log era enorme e antigo, minha configuração era 100% aprovada e válida, remover o arquivo de status não ajudou.
Acabou que o problema estava nas entradas duplicadas de logrotate . Quando executo o logrotate manualmente no meu arquivo de configuração, é assim:
não mostrou nenhum erro, apenas disse:
Ainda não sei por que, na verdade. Mas quando executo um comando logrotate completo como esse:
Eu tenho a seguinte linha:
Aconteceu que o arquivo de configuração logrotate para o meu serviço continha as entradas para girar os logs de acesso ao nginx, bem como os próprios logs de serviço. E isso entrou em conflito com a configuração do ngnix logrotate, que possui uma regra para todas as entradas do nginx:
Portanto, a solução para o meu caso é bem simples: eu apenas tive que excluir a regra de rotação de logs nginx conflitantes da minha configuração .
Suponho que o logrotate tenha começado a abortar o processamento do arquivo em conflitos de regras apenas de uma das versões mais recentes. Eu recebo esse erro na v.3.8.7, mas na v.3.7.8 com a mesma configuração conflitante, ela grava o mesmo erro, mas gira bem. Embora eu não tenha encontrado nenhum registro disso no log de alterações do logrotate.
fonte
Tente executar
sudo logrotate -f --verbose /etc/logrotate.d/apache2
Veja o que está escrito no console e corrija tudo o que estiver errado.fonte
Eu tinha uma máquina Debian 7 que, após uma atualização do sistema, não girava mais os logs de correio. Todos os outros logs, exceto os de correio, foram rotacionados corretamente. Eu descobri que os logs de email haviam crescido vários gigabytes. Eu sempre gerenciava a rotação de logs via Webmin. Em seguida, executando
logrotate -d /etc/logrotate.conf
, vi a seguinte mensagem:Ignoring rsyslog.dpkg-old, because of .dpkg-old ending
Verificou-se que minhas entradas de rotação de e-mail foram listadas
/etc/logrotate.d/rsyslog.dpkg-old
, o que foi ignorado! Renomear o arquivo corrigiu a rotação do arquivo de log :-)fonte