Logrotate daily + maxsize não está girando

0

Eu tenho o CentOS 7.4 com o logrotate 3.8.6 instalado. Tenho um arquivo de logrotate personalizado em /etc/logrotate.d/ para rotacionar alguns logs em um Tomcat (por exemplo, catalina.out) que é instalado na mesma máquina.

/opt/test/apache-tomcat-8.5.15-client/logs/catalina.out {
copytruncate
daily
rotate 30 
olddir /opt/test/apache-tomcat-8.5.15-client/logs/backup
compress
missingok
maxsize 50M
dateext
dateformat .%Y-%m-%d
}

Eu quero que o log seja rotacionado diariamente ou se o tamanho atingir 50MB. Quando isso acontece, os arquivos de log são compactados e copiados para uma pasta de backup e são mantidos por 30 dias antes de serem excluídos.

Já executei logrotate manualmente no modo de depuração com o seguinte comando e nenhum erro foi exibido (e os arquivos de log compactados esperados foram criados):

/usr/sbin/logrotate -d /etc/logrotate.d/openncp-tomcat-backoffice 2> /tmp/logrotate.debug

Em /var/lib/logrotate/logrotate.status não há problemas, os arquivos são exibidos como girados, mas não são de fato:

"/var/log/yum.log" 2017-11-27-19:0:0
"/opt/test/apache-tomcat-8.5.15-server/logs/catalina.out" 2017-12-15-3:41:1
"/var/log/boot.log" 2017-12-15-3:41:1
"/var/log/up2date" 2017-11-27-19:0:0

Eu tenho o padrão /etc/logrotate.conf :

# see "man logrotate" for details
# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here
/var/log/wtmp {
    monthly
    create 0664 root utmp
        minsize 1M
    rotate 1
}

/var/log/btmp {
    missingok
    monthly
    create 0600 root utmp
    rotate 1
}

# system-specific logs may be also be configured here.

Eu também tenho o padrão /etc/cron.daily/logrotate :

#!/bin/sh

/usr/sbin/logrotate -s /var/lib/logrotate/logrotate.status /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
    /usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0

De acordo com a página de manual do logrotate :

maxsize size
    Log files are rotated when they grow bigger than size bytes even before the additionally specified time interval ( daily, weekly, monthly, or yearly). The related size option is similar except that it is mutually exclusive with the time interval options, and it causes log files to be rotated without regard for the last rotation time. When maxsize is used, both the size and timestamp of a log file are considered. 

Percebi que até agora os logs não atingiram 50MB e vários dias se passaram sem nenhuma rotação.

Eu peço sua orientação sobre como configurar isso apropriadamente.

    
por Baderous 17.12.2017 / 19:11

1 resposta

0

O problema estava relacionado ao tipo de arquivo SELinux dos arquivos de log, que estavam localizados em um diretório diferente de / var / log, significando que o processo logrotate não tinha acesso para executar suas tarefas. Eu encontrei este outro SO thread , bem como este Redhat page que ajudou a resolver o problema. Eu achei a documentação do Redhat muito útil, então eu forneço aqui 2 links:

por 11.01.2018 / 16:38