Logrotate - como alterá-lo para que nunca exclua logs e crie um .gz a cada 6 meses?

1

Eu li o man logrotate , mas ainda não está claro para mim. Minhas perguntas estão relacionadas principalmente com os registros do servidor web NGINX.

Este é o meu logrotate.conf atual:

# 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
}

e em /etc/logrotate.d eu tenho entre os outros também: nginx:

/var/log/nginx/*log {
    create 0644 nginx nginx
    daily
    rotate 10
    missingok
    notifempty
    compress
    sharedscripts
    postrotate
        /bin/kill -USR1 'cat /run/nginx.pid 2>/dev/null' 2>/dev/null || true
    endscript
}

E estes são alguns dos .gz que eu posso ver:

access.log-20150430.gz
access.log-20150509.gz (created after ~10 days)
access.log-20150524.gz (created after ~15 days)
access.log-20150528.gz (created after ~4 days)
  1. Por que os logs .gz são criados com tanta frequência e em intervalos de tempo "aleatórios"?
  2. O que devo mudar para ter o novo .gz criado a cada 6 meses e / ou após um arquivo .log ser maior que 100MB?
  3. Com rotate 10 , significa que se eu já tiver 10 arquivos .gz, quando ele compactar o 11, excluirá automaticamente o arquivo .gz mais antigo? Se sim, como posso evitar a exclusão de arquivos de registro? Eu devo mantê-los todos, mesmo que sejam muito velhos.
  4. Qual é a diferença entre diariamente e girar 10 ?
  5. A permissão de criação desses arquivos está correta?
  6. Depois de alterar algo no logrotate.conf, devo reiniciar algum serviço ou as alterações devem ser aplicadas imediatamente?
por Pikk 28.05.2015 / 10:56

1 resposta

2

Eu acho que o manual logrotate é claro sobre a maioria dos seus pontos. Aqui estão minhas respostas:

  1. Usar daily faz com que a rotação do log aconteça todos os dias. Então, você precisa verificar por que isso não está acontecendo diariamente. Por exemplo, isso pode ser causado pela outra opção notifempty se o arquivo de log estiver vazio por alguns dias.
  2. Não consigo encontrar uma opção para fazer isso a cada 6 meses, mas você tem monthly e yearly . Para as confições de tamanho, você pode usar size 100M .
  3. Sim. Para mantê-los todos, você pode escolher um valor muito grande.
  4. daily especifica com que frequência rodar enquanto rotate especifica o número de arquivos de log mantidos.
  5. Se o log não contiver informações confidenciais (outras podem ler), tudo bem.
  6. Não, você não precisa reiniciar nada.
por 28.05.2015 / 11:37