Como posso monitorar o que o logrotate está fazendo?

51

Como posso monitorar o que o logrotate está fazendo no Ubuntu? A atividade do logrotate pode ser monitorada?

w5m
fonte
bem, você pode ver quais descritores de arquivo o processo abriu ... Talvez tente explicar qual é o problema exato? Você está tentando depurar seus próprios scripts? Desempenho de scripts padrão / de terceiros?
Hubert Kario

Respostas:

55
cat /var/lib/logrotate/status 

Para verificar se um log específico está realmente girando ou não e para verificar a última data e hora de sua rotação, verifique o arquivo / var / lib / logrotate / status. Este é um arquivo formatado corretamente que contém o nome do arquivo de log e a data em que foi rotacionada pela última vez.

Tirado de:

https://www.digitalocean.com/community/articles/how-to-manage-log-files-with-logrotate-on-ubuntu-12-10

Camilo Sanchez
fonte
16
Você encontrará esse arquivo como /var/lib/logrotate.statusnos sistemas Red Hat.
Michael Hampton
11
aqui está um guia completo para solução de problemas de logrotate nos sistemas Red Hat: access.redhat.com/solutions/32831
Gaia
Considerando o Ubuntu, cat /var/lib/logrotate/status mostra apenas a atividade de logrotate iniciada pelo usuário root . Os cronjobs de outros usuários podem acionar sua própria atividade de rotação de log, por exemplo, quando seu crontab inclui uma entrada como 0 0 * * * /usr/sbin/logrotate $HOME/logrotate/logrotate.conf --state $HOME/logrotate/logrotate-state. Essa atividade de rotação de log seria gravada em arquivo $HOME/logrotate/logrotate-state, $HOMEsendo o diretório inicial desse usuário.
Abdull
Em sistemas RedHat ainda mais recentes (pelo menos no RHEL 7.6), o arquivo de status está agora em /var/lib/logrotate/logrotate.status.
Richlv
13

Você pode tentar executar o logrotate no modo de depuração ou detalhado:

-d     Turns  on  debug mode and implies -v.  In debug mode, no changes
          will be made to the logs or to the logrotate state file.

-v, --verbose
          Display messages during rotation.
kernelpanic
fonte
Isso ajuda isso quando o logrotate é iniciado como cron? Quero dizer, existe a possibilidade de registrar o comportamento do logrotate em um arquivo de log?
2
/ usr / sbin / logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log
kernelpanic
sudo logrotate -v /etc/logrotate.conf &> /var/log/logrotate.log bash: /var/log/logrotate.log: permissão negada
11
@ cara: Se você está tentando fazer isso na linha de comando e está recebendo esse erro, precisará fazer o seguinte: sudo logrotate -v /etc/logrotate.conf 2>&1 | sudo tee -a /var/log/logrotate.log >/dev/null(verifique se possui o -a).
Dennis Williamson
@ Dennis quando tento que, embora eu crie o logrotate.log, mas ele tenha 0 KB e o processo não pare no terminal e aguarde com um cursor piscando.
9

Nas distribuições do Suse Linux, é assim:

cat /var/lib/logrotate.status
gugol
fonte
AWS AMI Linux tem estrutura mesmo estatuto do logrotate
Victor Perov
5

Vários logs são rotacionados em várias frequências com base no arquivo de configuração (/etc/logrotate.conf) e / ou diretório (/etc/logrotate.d). Os nomes podem variar em diferentes distribuições. A configuração pode especificar ações de pré e / ou pós-rotação. Os nomes dos arquivos rotacionados e a data da última rotação estão no arquivo de estado (/ var / lib / logrotate / state).

O logrotate não possui recursos de log. As ações de recarregamento / reinicialização iniciadas serão registradas de acordo com o registro do programa em que está sendo realizado.

A maneira mais fácil de fazer isso seria editando /etc/cron.daily/logrotatepara incluir a -vopção. Detalhes sobre a configuração e opções logrotate pode ser encontrado com o comando man logrotate.

BillThor
fonte
3

Cara, você pode verificar as configurações de logrotate, geralmente em /etc/logrotate.conf.

As distribuições modernas têm um logrotatearquivo de configuração específico no /etc/logrotate.ddiretório

por exemplo, para nginx

  /var/log/nginx/*.log {
    weekly
    missingok
    rotate 52

Ele manterá o arquivo por 52 semanas (um ano). A rotação é semanal.


Nota: user56548 costumava ser "Cara"

insira a descrição da imagem aqui

Anel Ø
fonte
Provavelmente, você quis dizer rotate 365ou weekly. A rotação diária rotate 52manterá 52 dias de logs, obviamente.
temoto
@temoto, obrigado, na verdade era #weekly
Ring Ø